diff --git a/Docs/Configuration.md5 b/Docs/Configuration.md5 index 0f68042b..255ff252 100644 --- a/Docs/Configuration.md5 +++ b/Docs/Configuration.md5 @@ -1 +1 @@ -42f83ed3c3cf33918b838b381cbb29e4 +acf401d82534ccdab968f900d687f049 diff --git a/Docs/Configuration.pdf b/Docs/Configuration.pdf index 9a284078..972966ad 100644 Binary files a/Docs/Configuration.pdf and b/Docs/Configuration.pdf differ diff --git a/Docs/Configuration.tex b/Docs/Configuration.tex index 5176af0c..d253328e 100755 --- a/Docs/Configuration.tex +++ b/Docs/Configuration.tex @@ -94,7 +94,7 @@ \vspace{0.2in} - Reference Manual (1.0.4) + Reference Manual (1.0.5) \vspace{0.2in} diff --git a/Docs/Differences/Differences.pdf b/Docs/Differences/Differences.pdf index d452cc0f..e21b7184 100644 Binary files a/Docs/Differences/Differences.pdf and b/Docs/Differences/Differences.pdf differ diff --git a/Docs/Differences/Differences.tex b/Docs/Differences/Differences.tex index d49b7ef2..0c5bd1ee 100644 --- a/Docs/Differences/Differences.tex +++ b/Docs/Differences/Differences.tex @@ -1,7 +1,7 @@ \documentclass[]{article} %DIF LATEXDIFF DIFFERENCE FILE -%DIF DEL PreviousConfiguration.tex Tue Dec 24 15:56:59 2024 -%DIF ADD ../Configuration.tex Sun Feb 23 10:59:10 2025 +%DIF DEL PreviousConfiguration.tex Tue Mar 4 16:49:56 2025 +%DIF ADD ../Configuration.tex Tue Mar 4 16:49:56 2025 \usepackage{lmodern} \usepackage{amssymb,amsmath} @@ -83,16 +83,16 @@ \RequirePackage[normalem]{ulem} %DIF PREAMBLE \RequirePackage{color}\definecolor{RED}{rgb}{1,0,0}\definecolor{BLUE}{rgb}{0,0,1} %DIF PREAMBLE \providecommand{\DIFaddtex}[1]{{\protect\color{blue}\uwave{#1}}} %DIF PREAMBLE -\providecommand{\DIFdeltex}[1]{{\protect\color{red}\sout{#1}}} %DIF PREAMBLE +\providecommand{\DIFdeltex}[1]{{\protect\color{red}\sout{#1}}} %DIF PREAMBLE %DIF ONLYCHANGEDPAGE PREAMBLE %DIF PREAMBLE \RequirePackage{atbegshi} %DIF PREAMBLE \RequirePackage{etoolbox} %DIF PREAMBLE \RequirePackage{zref} %DIF PREAMBLE % redefine label command to write immediately to aux file - page references will be lost %DIF PREAMBLE -\makeatletter \let\oldlabel\label% Store \label %DIF PREAMBLE -\renewcommand{\label}[1]{% Update \label to write to the .aux immediately %DIF PREAMBLE -\zref@wrapper@immediate{\oldlabel{#1}}} %DIF PREAMBLE -\makeatother %DIF PREAMBLE +\makeatletter \let\oldlabel\label% Store \label %DIF PREAMBLE +\renewcommand{\label}[1]{% Update \label to write to the .aux immediately %DIF PREAMBLE +\zref@wrapper@immediate{\oldlabel{#1}}} %DIF PREAMBLE +\makeatother %DIF PREAMBLE \newbool{DIFkeeppage} %DIF PREAMBLE \newbool{DIFchange} %DIF PREAMBLE \boolfalse{DIFkeeppage} %DIF PREAMBLE @@ -118,12 +118,7 @@ %DIF HYPERREF PREAMBLE %DIF PREAMBLE \providecommand{\DIFadd}[1]{\texorpdfstring{\DIFaddtex{#1}}{#1}} %DIF PREAMBLE \providecommand{\DIFdel}[1]{\texorpdfstring{\DIFdeltex{#1}}{}} %DIF PREAMBLE -%DIF AMSMATHULEM PREAMBLE %DIF PREAMBLE -\makeatletter %DIF PREAMBLE -\let\sout@orig\sout %DIF PREAMBLE -\renewcommand{\sout}[1]{\ifmmode\text{\sout@orig{\ensuremath{#1}}}\else\sout@orig{#1}\fi} %DIF PREAMBLE -\makeatother %DIF PREAMBLE -%DIF COLORLISTINGS PREAMBLE %DIF PREAMBLE +%DIF LISTINGS PREAMBLE %DIF PREAMBLE \RequirePackage{listings} %DIF PREAMBLE \RequirePackage{color} %DIF PREAMBLE \lstdefinelanguage{DIFcode}{ %DIF PREAMBLE @@ -139,8 +134,6 @@ } %DIF PREAMBLE \lstnewenvironment{DIFverbatim}{\lstset{style=DIFverbatimstyle}}{} %DIF PREAMBLE \lstnewenvironment{DIFverbatim*}{\lstset{style=DIFverbatimstyle,showspaces=true}}{} %DIF PREAMBLE -\lstset{extendedchars=\true,inputencoding=utf8} - %DIF END PREAMBLE EXTENSION ADDED BY LATEXDIFF \begin{document} @@ -161,7 +154,7 @@ \vspace{0.2in} - Reference Manual (1.0.4) + Reference Manual (1.0\DIFdelbegin \DIFdel{.4}\DIFdelend \DIFaddbegin \DIFadd{.5}\DIFaddend ) \vspace{0.2in} @@ -173,7 +166,7 @@ \rmfamily - Copyright \textcopyright \DIFdelbegin \DIFdel{2018-2024 }\DIFdelend \DIFaddbegin \DIFadd{2018-2025 }\DIFaddend vit9696 + Copyright \textcopyright 2018-2025 vit9696 \end{center} \end{titlepage} @@ -1585,26 +1578,23 @@ To view their current state, use the \texttt{pmset -g} command in Terminal. \emph{Note}: Most types of firmware, apart from Apple and VMware, need this quirk. \item - \DIFaddbegin \texttt{\DIFadd{ClearTaskSwitchBit}}\\ - \textbf{\DIFadd{Type}}\DIFadd{: }\texttt{\DIFadd{plist\ boolean}}\\ - \textbf{\DIFadd{Failsafe}}\DIFadd{: }\texttt{\DIFadd{false}}\\ - \textbf{\DIFadd{Description}}\DIFadd{: Clear task switch bit during UEFI runtime services calls. -} + \texttt{ClearTaskSwitchBit}\\ + \textbf{Type}: \texttt{plist\ boolean}\\ + \textbf{Failsafe}: \texttt{false}\\ + \textbf{Description}: Clear task switch bit during UEFI runtime services calls. - \DIFadd{This quirk resolves FPU-related crashes in UEFI runtime services when using either the + This quirk resolves FPU-related crashes in UEFI runtime services when using either the 32-bit kernel on a 64-bit UEFI implementation, or the 64-bit kernel on a 32-bit UEFI implementation - by removing the task switch (}\texttt{\DIFadd{TS}}\DIFadd{) bit from }\texttt{\DIFadd{CR0}} \DIFadd{register during their execution. + by removing the task switch (\texttt{TS}) bit from \texttt{CR0} register during their execution. These crashes occur if there is any FPU/SSE instruction usage in UEFI runtime services as XNU - is unable to handle exceptions from mixed-mode code. This quirk requires }\texttt{\DIFadd{OC\_FIRMWARE\_RUNTIME}} - \DIFadd{protocol implemented in }\texttt{\DIFadd{OpenRuntime.efi}}\DIFadd{. -} + is unable to handle exceptions from mixed-mode code. This quirk requires \texttt{OC\_FIRMWARE\_RUNTIME} + protocol implemented in \texttt{OpenRuntime.efi}. - \emph{\DIFadd{Note}}\DIFadd{: This quirk should only be required when running older macOS versions when the + \emph{Note}: This quirk should only be required when running older macOS versions when the 32-bit kernel is used on a 64-bit UEFI implementation, such as Microsoft Hyper-V. -} \item - \DIFaddend \texttt{DevirtualiseMmio}\\ + \texttt{DevirtualiseMmio}\\ \textbf{Type}: \texttt{plist\ boolean}\\ \textbf{Failsafe}: \texttt{false}\\ \textbf{Description}: Remove runtime attribute from certain MMIO regions. @@ -2102,8 +2092,7 @@ Some known properties include: \subsection{Introduction}\label{kernelintro} This section allows the application of different kinds of kernelspace modifications on -Apple Kernel (\DIFdelbegin %DIFDELCMD < \href{https://opensource.apple.com/source/xnu}{%%% -\DIFdelend \DIFaddbegin \href{https://github.com/apple-oss-distributions/xnu}{\DIFaddend XNU}). The modifications +Apple Kernel (\href{https://github.com/apple-oss-distributions/xnu}{XNU}). The modifications currently provide driver (kext) injection, kernel and driver patching, and driver blocking. @@ -5170,8 +5159,7 @@ improvements: \texttt{7C436110-AB2A-4BBB-A880-FE41995C9F82:csr-active-config} \break 32-bit System Integrity Protection bitmask. Declared in XNU source code in - \DIFdelbegin %DIFDELCMD < \href{https://opensource.apple.com/source/xnu/xnu-4570.71.2/bsd/sys/csr.h.auto.html}{%%% -\DIFdelend \DIFaddbegin \href{https://github.com/apple-oss-distributions/xnu/blob/main/bsd/sys/csr.h}{\DIFaddend csr.h}. + \href{https://github.com/apple-oss-distributions/xnu/blob/main/bsd/sys/csr.h}{csr.h}. \item \texttt{4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:ExtendedFirmwareFeatures} \break @@ -5213,8 +5201,7 @@ improvements: \break ASCII string defining FireWire security mode. Legacy, can be found in IOFireWireFamily source code in - \DIFdelbegin %DIFDELCMD < \href{https://opensource.apple.com/source/IOFireWireFamily/IOFireWireFamily-473/IOFireWireFamily.kmodproj/IOFireWireController.cpp.auto.html}{%%% -\DIFdelend \DIFaddbegin \href{https://github.com/apple-oss-distributions/IOFireWireFamily/blob/main/IOFireWireFamily.kmodproj/IOFireWireController.cpp}{\DIFaddend IOFireWireController.cpp}. + \href{https://github.com/apple-oss-distributions/IOFireWireFamily/blob/main/IOFireWireFamily.kmodproj/IOFireWireController.cpp}{IOFireWireController.cpp}. It is recommended not to set this variable, which may speedup system startup. Setting to \texttt{full} is equivalent to not setting the variable and \texttt{none} disables FireWire security. @@ -7296,7 +7283,7 @@ which use OpenCore argument parsing, and can be particularly convenient when mul \end{itemize} \emph{Note 1}: This option is written to NVRAM and will remain present even if the option is removed from the driver - \texttt{Arguments}, unless \DIFdelbegin \DIFdel{NVRAM is cleared or }\DIFdelend an alternative value is written or the value deleted, using this option. + \texttt{Arguments}, unless an alternative value is written or the value deleted, using this option. \emph{Note 2}: This setting will normally cause a static IP to be assigned during pre-boot, even in vendor-provided network stacks. However, due to a quirk of the design of PXE and HTTP boot, any such static assignment will then be @@ -7308,7 +7295,7 @@ which use OpenCore argument parsing, and can be particularly convenient when mul (see \texttt{UEFI} \texttt{Unload} option) and the OpenCore version used instead. \emph{Note 3}: If \texttt{Ip4Dxe} is loaded before OpenCore then any setting here will only take effect after one - reboot (during which network boot is not \DIFdelbegin \DIFdel{be }\DIFdelend attempted). If \texttt{Ip4Dxe} is loaded after \texttt{OpenNetworkBoot} + reboot (during which network boot is not attempted). If \texttt{Ip4Dxe} is loaded after \texttt{OpenNetworkBoot} the setting will take effect immediately. \medskip @@ -8890,8 +8877,8 @@ OpenCore is installed, in order for the \texttt{Launchd.command} script to work (e.g. \texttt{1920x1080}) formatted string to request custom resolution from GOP if available. \item Set to \texttt{Max} to attempt using the largest - available screen resolution\DIFaddbegin \DIFadd{. When set to }\texttt{\DIFadd{Max}} \DIFadd{all available resolutions - will be listed in lines starting }\texttt{\DIFadd{OCC: Mode}} \DIFadd{in the debug log}\DIFaddend . + available screen resolution. When set to \texttt{Max} all available resolutions + will be listed in lines starting \texttt{OCC: Mode} in the debug log. \end{itemize} On HiDPI screens \texttt{APPLE\_VENDOR\_VARIABLE\_GUID} \texttt{UIScale} diff --git a/Docs/Differences/PreviousConfiguration.tex b/Docs/Differences/PreviousConfiguration.tex index 09ff08cb..5176af0c 100755 --- a/Docs/Differences/PreviousConfiguration.tex +++ b/Docs/Differences/PreviousConfiguration.tex @@ -106,7 +106,7 @@ \rmfamily - Copyright \textcopyright 2018-2024 vit9696 + Copyright \textcopyright 2018-2025 vit9696 \end{center} \end{titlepage} @@ -1517,6 +1517,22 @@ To view their current state, use the \texttt{pmset -g} command in Terminal. \emph{Note}: Most types of firmware, apart from Apple and VMware, need this quirk. +\item + \texttt{ClearTaskSwitchBit}\\ + \textbf{Type}: \texttt{plist\ boolean}\\ + \textbf{Failsafe}: \texttt{false}\\ + \textbf{Description}: Clear task switch bit during UEFI runtime services calls. + + This quirk resolves FPU-related crashes in UEFI runtime services when using either the + 32-bit kernel on a 64-bit UEFI implementation, or the 64-bit kernel on a 32-bit UEFI implementation + by removing the task switch (\texttt{TS}) bit from \texttt{CR0} register during their execution. + These crashes occur if there is any FPU/SSE instruction usage in UEFI runtime services as XNU + is unable to handle exceptions from mixed-mode code. This quirk requires \texttt{OC\_FIRMWARE\_RUNTIME} + protocol implemented in \texttt{OpenRuntime.efi}. + + \emph{Note}: This quirk should only be required when running older macOS versions when the + 32-bit kernel is used on a 64-bit UEFI implementation, such as Microsoft Hyper-V. + \item \texttt{DevirtualiseMmio}\\ \textbf{Type}: \texttt{plist\ boolean}\\ @@ -2016,7 +2032,7 @@ Some known properties include: \subsection{Introduction}\label{kernelintro} This section allows the application of different kinds of kernelspace modifications on -Apple Kernel (\href{https://opensource.apple.com/source/xnu}{XNU}). The modifications +Apple Kernel (\href{https://github.com/apple-oss-distributions/xnu}{XNU}). The modifications currently provide driver (kext) injection, kernel and driver patching, and driver blocking. @@ -5083,7 +5099,7 @@ improvements: \texttt{7C436110-AB2A-4BBB-A880-FE41995C9F82:csr-active-config} \break 32-bit System Integrity Protection bitmask. Declared in XNU source code in - \href{https://opensource.apple.com/source/xnu/xnu-4570.71.2/bsd/sys/csr.h.auto.html}{csr.h}. + \href{https://github.com/apple-oss-distributions/xnu/blob/main/bsd/sys/csr.h}{csr.h}. \item \texttt{4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:ExtendedFirmwareFeatures} \break @@ -5125,7 +5141,7 @@ improvements: \break ASCII string defining FireWire security mode. Legacy, can be found in IOFireWireFamily source code in - \href{https://opensource.apple.com/source/IOFireWireFamily/IOFireWireFamily-473/IOFireWireFamily.kmodproj/IOFireWireController.cpp.auto.html}{IOFireWireController.cpp}. + \href{https://github.com/apple-oss-distributions/IOFireWireFamily/blob/main/IOFireWireFamily.kmodproj/IOFireWireController.cpp}{IOFireWireController.cpp}. It is recommended not to set this variable, which may speedup system startup. Setting to \texttt{full} is equivalent to not setting the variable and \texttt{none} disables FireWire security. @@ -7207,7 +7223,7 @@ which use OpenCore argument parsing, and can be particularly convenient when mul \end{itemize} \emph{Note 1}: This option is written to NVRAM and will remain present even if the option is removed from the driver - \texttt{Arguments}, unless NVRAM is cleared or an alternative value is written or the value deleted, using this option. + \texttt{Arguments}, unless an alternative value is written or the value deleted, using this option. \emph{Note 2}: This setting will normally cause a static IP to be assigned during pre-boot, even in vendor-provided network stacks. However, due to a quirk of the design of PXE and HTTP boot, any such static assignment will then be @@ -7219,7 +7235,7 @@ which use OpenCore argument parsing, and can be particularly convenient when mul (see \texttt{UEFI} \texttt{Unload} option) and the OpenCore version used instead. \emph{Note 3}: If \texttt{Ip4Dxe} is loaded before OpenCore then any setting here will only take effect after one - reboot (during which network boot is not be attempted). If \texttt{Ip4Dxe} is loaded after \texttt{OpenNetworkBoot} + reboot (during which network boot is not attempted). If \texttt{Ip4Dxe} is loaded after \texttt{OpenNetworkBoot} the setting will take effect immediately. \medskip @@ -8801,7 +8817,8 @@ OpenCore is installed, in order for the \texttt{Launchd.command} script to work (e.g. \texttt{1920x1080}) formatted string to request custom resolution from GOP if available. \item Set to \texttt{Max} to attempt using the largest - available screen resolution. + available screen resolution. When set to \texttt{Max} all available resolutions + will be listed in lines starting \texttt{OCC: Mode} in the debug log. \end{itemize} On HiDPI screens \texttt{APPLE\_VENDOR\_VARIABLE\_GUID} \texttt{UIScale} diff --git a/Docs/Errata/Errata.pdf b/Docs/Errata/Errata.pdf index 1faa72b9..290c0ade 100644 Binary files a/Docs/Errata/Errata.pdf and b/Docs/Errata/Errata.pdf differ diff --git a/Include/Acidanthera/Library/OcMainLib.h b/Include/Acidanthera/Library/OcMainLib.h index c3f30335..74296dcb 100644 --- a/Include/Acidanthera/Library/OcMainLib.h +++ b/Include/Acidanthera/Library/OcMainLib.h @@ -30,7 +30,7 @@ OpenCore version reported to log and NVRAM. OPEN_CORE_VERSION must follow X.Y.Z format, where X.Y.Z are single digits. **/ -#define OPEN_CORE_VERSION "1.0.4" +#define OPEN_CORE_VERSION "1.0.5" /** OpenCore build type reported to log and NVRAM.