diff --git a/Docs/Configuration.md5 b/Docs/Configuration.md5 index 183ce023..1e01ea99 100644 --- a/Docs/Configuration.md5 +++ b/Docs/Configuration.md5 @@ -1 +1 @@ -014fa74cb2fc3a23e82968eb6eb8cdfa +a45f9d1860a42d2384833f8a577feef5 diff --git a/Docs/Configuration.pdf b/Docs/Configuration.pdf index 0421818e..5ecf80f0 100644 Binary files a/Docs/Configuration.pdf and b/Docs/Configuration.pdf differ diff --git a/Docs/Configuration.tex b/Docs/Configuration.tex index 7e15262c..c21dbab1 100755 --- a/Docs/Configuration.tex +++ b/Docs/Configuration.tex @@ -1875,7 +1875,9 @@ To view their current state, use the \texttt{pmset -g} command in Terminal. performing early boot identity mapping of assigned virtual addresses to physical memory. - \emph{Note}: The need for this quirk is determined by early boot failures. + \emph{Note 1}: The need for this quirk is determined by early boot failures. + + \emph{Note 2}: This quirk is not compatible with 32-bit kernels. \item \texttt{SignalAppleOS}\\ diff --git a/Docs/Differences/Differences.pdf b/Docs/Differences/Differences.pdf index 7fb5b8f7..2eb5f869 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 812877fd..03c35396 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 Fri Jul 25 15:05:13 2025 -%DIF ADD ../Configuration.tex Sat Aug 2 22:19:00 2025 +%DIF DEL PreviousConfiguration.tex Sat Aug 2 20:24:53 2025 +%DIF ADD ../Configuration.tex Thu Aug 7 01:36:34 2025 \usepackage{lmodern} \usepackage{amssymb,amsmath} @@ -118,7 +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 COLORLISTINGS PREAMBLE %DIF PREAMBLE +%DIF LISTINGS PREAMBLE %DIF PREAMBLE \RequirePackage{listings} %DIF PREAMBLE \RequirePackage{color} %DIF PREAMBLE \lstdefinelanguage{DIFcode}{ %DIF PREAMBLE @@ -646,7 +646,7 @@ Available entries include: \end{itemize} \emph{Note}: It is not guaranteed that paths longer than -\texttt{OC\_STORAGE\_SAFE\_PATH\_MAX} (128 characters including +\texttt{OC\_STORAGE\_SAFE\_PATH\_MAX} (\DIFdelbegin \DIFdel{128 }\DIFdelend \DIFaddbegin \DIFadd{192 }\DIFaddend characters including the \texttt{\\0}-terminator) will be accessible within OpenCore. \subsection{Installation and Upgrade}\label{configuration-install} @@ -1935,9 +1935,12 @@ To view their current state, use the \texttt{pmset -g} command in Terminal. performing early boot identity mapping of assigned virtual addresses to physical memory. - \emph{Note}: The need for this quirk is determined by early boot failures. + \emph{Note \DIFaddbegin \DIFadd{1}\DIFaddend }: The need for this quirk is determined by early boot failures. -\item + \DIFaddbegin \emph{\DIFadd{Note 2}}\DIFadd{: This quirk is not compatible with 32-bit kernels. +} + +\DIFaddend \item \texttt{SignalAppleOS}\\ \textbf{Type}: \texttt{plist\ boolean}\\ \textbf{Failsafe}: \texttt{false}\\ diff --git a/Docs/Errata/Errata.pdf b/Docs/Errata/Errata.pdf index 0436a4dc..7ff14645 100644 Binary files a/Docs/Errata/Errata.pdf and b/Docs/Errata/Errata.pdf differ diff --git a/Library/OcAfterBootCompatLib/KernelSupport.c b/Library/OcAfterBootCompatLib/KernelSupport.c index 82e49684..53ca61ad 100644 --- a/Library/OcAfterBootCompatLib/KernelSupport.c +++ b/Library/OcAfterBootCompatLib/KernelSupport.c @@ -191,10 +191,11 @@ PerformRtMemoryVirtualMapping ( // Intel HD3000 or HD4000 is used. For example, on GA-H81N-D2H there is a single 1 GB descriptor: // 000000009F800000-00000000DF9FFFFF 0000000000040200 8000000000000000 // - // All known boot.efi starting from at least 10.5.8 properly handle this flag and do not assign - // virtual addresses to reserved descriptors. However, our legacy code had a bug, and did not - // check for EfiReservedMemoryType. Therefore it replaced such entries by EfiMemoryMappedIO - // to "prevent" boot.efi relocations. + // Older EfiBoot (from 10.4.x) assigns virtual addresses to all descriptors containing + // EFI_MEMORY_RUNTIME flag, including ones with EfiReservedMemoryType. Starting with 10.5 + // this is fixed, and virtual addresses are not assigned to reserved descriptors. + // We might eventually need to add some workaround to prevent exceeding virtual address space + // in EfiBoot from 10.4 by dropping the EFI_MEMORY_RUNTIME flag. // // The relevant discussion and the original fix can be found here: // http://web.archive.org/web/20141111124211/http://www.projectosx.com:80/forum/lofiversion/index.php/t2428-450.html @@ -582,6 +583,8 @@ AppleMapPrepareBooterState ( return; } + DEBUG ((DEBUG_VERBOSE, "OCABC: Allocated SysTableRtArea %p\n", BootCompat->KernelState.SysTableRtArea)); + // // Copy UEFI system table to the new location. //