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
);
}