diff --git a/Docs/Configuration.pdf b/Docs/Configuration.pdf index 8b65c31591b3c5eeabea53e49fb6a7533698f258..94e8fa5e22c329d13665652aea94965e032c4368 100644 Binary files a/Docs/Configuration.pdf and b/Docs/Configuration.pdf differ diff --git a/Docs/Configuration.tex b/Docs/Configuration.tex index 80fe0f94dd94676d6e07ed65a86b9347e9ffaf3a..2ac913a04017e6e4005ccc0e977fbe6cdf3304fa 100644 --- a/Docs/Configuration.tex +++ b/Docs/Configuration.tex @@ -2464,7 +2464,8 @@ tweaks for the onboard firmware. \emph{Note}: While the option is not supposed to induce harm on unaffected firmwares, its usage is not recommended when it is not required. This option may hide - onscreen error messages. + onscreen error messages. \texttt{ProvideConsoleControl} is required to be set to + \texttt{true} for this to work. \item \texttt{ProvideConsoleControl}\\ @@ -2472,8 +2473,9 @@ tweaks for the onboard firmware. \textbf{Default value}: \texttt{NO}\\ \textbf{Description}: macOS bootloader requires console control protocol for text output, some firmwares miss it. This option is required to be set - when other console control options are used (\texttt{IgnoreTextInGraphics}, - and sometimes \texttt{ConsoleBehaviourOs} and \texttt{ConsoleBehaviourUi}). + when other console control options are used, such as \texttt{IgnoreTextInGraphics}, + \texttt{SanitiseClearScreen}, and sometimes \texttt{ConsoleBehaviourOs} with + \texttt{ConsoleBehaviourUi}). \item \texttt{ProvideConsoleGop}\\ @@ -2495,6 +2497,19 @@ tweaks for the onboard firmware. or at least have an option for, select firmwares do not. As a result, operating system may freeze upon boot. Not recommended unless required. +\item + \texttt{SanitiseClearScreen}\\ + \textbf{Type}: \texttt{plist\ boolean}\\ + \textbf{Default value}: \texttt{false}\\ + \textbf{Description}: Some firmwares reset screen resolution to a failsafe + value (like \texttt{1024x768}) on the attempts to clear screen contents + when large display (e.g. 2K or 4K) is used. This option attempts to apply + a workaround. + + \emph{Note}: \texttt{ProvideConsoleControl} is required to be set to + \texttt{true} for this to work. On all known affected systems + \texttt{ConsoleMode} had to be set to empty string for this to work. + \end{enumerate} \section{Troubleshooting}\label{troubleshooting} diff --git a/Docs/Sample.plist b/Docs/Sample.plist index 42ac0451b5bf60ede752d2d4a153df8f623a8b1e..efa034b1f8da6a483f7ddd32cbf8803cbf968e7c 100644 --- a/Docs/Sample.plist +++ b/Docs/Sample.plist @@ -600,6 +600,8 @@ ReleaseUsbOwnership + SanitiseClearScreen + diff --git a/Docs/SampleSimple.plist b/Docs/SampleSimple.plist index 7d329405c6743c00998b828b419a58f5359aab48..417c3cccf23419e029ba880268637642e64eaf08 100644 --- a/Docs/SampleSimple.plist +++ b/Docs/SampleSimple.plist @@ -499,6 +499,8 @@ ReleaseUsbOwnership + SanitiseClearScreen + diff --git a/Platform/OpenCore/OpenCoreUefi.c b/Platform/OpenCore/OpenCoreUefi.c index c9fd65e5efb205c809fb579d07fc4eabd4499d93..081697f28dcdd279aaf88e811e281ba9ca8f483e 100644 --- a/Platform/OpenCore/OpenCoreUefi.c +++ b/Platform/OpenCore/OpenCoreUefi.c @@ -257,7 +257,8 @@ OcLoadUefiSupport ( if (Config->Uefi.Quirks.ProvideConsoleControl) { ConsoleControlConfigure ( - Config->Uefi.Quirks.IgnoreTextInGraphics + Config->Uefi.Quirks.IgnoreTextInGraphics, + Config->Uefi.Quirks.SanitiseClearScreen ); }