OcAfterBootCompatLib: Add some more debugging & info on Booter quirks

This commit is contained in:
vit9696 2025-08-07 01:30:18 +03:00
parent 2bc82850d1
commit d1ebfea100
7 changed files with 20 additions and 12 deletions

View File

@ -1 +1 @@
014fa74cb2fc3a23e82968eb6eb8cdfa
a45f9d1860a42d2384833f8a577feef5

Binary file not shown.

View File

@ -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}\\

Binary file not shown.

View File

@ -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}\\

Binary file not shown.

View File

@ -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.
//