diff --git a/Changelog.md b/Changelog.md index a7b8585b1c9..e1788833a46 100644 --- a/Changelog.md +++ b/Changelog.md @@ -13,6 +13,7 @@ OpenCore Changelog - Changed NVRAM reset not to erase `BootProtect` boot options - Improved boot performance when picker UI is disabled - Enforced the use of builtin picker when external fails +- Fixed warnings for empty NVRAM variables (e.g. rtc-blacklist) #### v0.5.8 - Fixed invalid CPU object reference in SSDT-PLUG diff --git a/Docs/Configuration.pdf b/Docs/Configuration.pdf index d2e28338691..ce715045236 100644 Binary files a/Docs/Configuration.pdf and b/Docs/Configuration.pdf differ diff --git a/Docs/Configuration.tex b/Docs/Configuration.tex index caaf626d7bf..1228ad29ea7 100755 --- a/Docs/Configuration.tex +++ b/Docs/Configuration.tex @@ -464,58 +464,57 @@ \subsection{Directory Structure}\label{directory-structure} \begin{itemize} \tightlist \item - \texttt{BOOTx64.efi} - \break - Initial booter, which loads \texttt{OpenCore.efi} unless it was - already started as a driver. -\item - \texttt{ACPI} - \break + \texttt{BOOTx64.efi} and \texttt{Bootstrap.efi} \\ + Initial bootstrap loaders, which loads \texttt{OpenCore.efi} unless it was + already started as a driver. \texttt{BOOTx64.efi} is loaded by the firmware + by default according to UEFI specification, and \texttt{Bootstrap.efi} can + be registered as a custom option to let OpenCore coexist with operating systems + using \texttt{BOOTx64.efi} as their own loaders (e.g. Windows), see + \texttt{BootProtect} for more details. +\item + \texttt{boot} \\ + Duet bootstrap loader, which initialises UEFI environment on legacy BIOS firmwares + and loads \texttt{OpenCore.efi} similarly to other bootstrap loaders. Modern Duet + bootstrap loader will default to \texttt{OpenCore.efi} on the same partition when + present. +\item + \texttt{ACPI} \\ Directory used for storing supplemental ACPI information for \hyperref[acpi]{\texttt{ACPI}} section. \item - \texttt{Drivers} - \break + \texttt{Drivers} \\ Directory used for storing supplemental \texttt{UEFI} drivers for \hyperref[uefi]{\texttt{UEFI}} section. \item - \texttt{Kexts} - \break + \texttt{Kexts} \\ Directory used for storing supplemental kernel information for \hyperref[kernel]{\texttt{Kernel}} section. \item - \texttt{Resources} - \break + \texttt{Resources} \\ Directory used for storing media resources, such as audio files for screen reader support. See \hyperref[uefiaudioprops]{\texttt{UEFI Audio Properties}} - section for more details. + section for more details. This directory also contains image files + for graphical user interface. See \hyperref[ueficanopy]{OpenCanopy} section for more details. \item - \texttt{Tools} - \break + \texttt{Tools} \\ Directory used for storing supplemental tools. \item - \texttt{OpenCore.efi} - \break + \texttt{OpenCore.efi} \\ Main booter driver responsible for operating system loading. \item - \texttt{vault.plist} - \break + \texttt{vault.plist} \\ Hashes for all files potentially loadable by \texttt{OC Config}. \item - \texttt{config.plist} - \break + \texttt{config.plist} \\ \texttt{OC Config}. \item - \texttt{vault.sig} - \break + \texttt{vault.sig} \\ Signature for \texttt{vault.plist}. \item - \texttt{nvram.plist} - \break + \texttt{nvram.plist} \\ OpenCore variable import file. \item - \texttt{opencore-YYYY-MM-DD-HHMMSS.txt} - \break + \texttt{opencore-YYYY-MM-DD-HHMMSS.txt} \\ OpenCore log file. \end{itemize} diff --git a/Docs/Differences/Differences.pdf b/Docs/Differences/Differences.pdf index f6251ab9610..db341d01cad 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 f4215ae447a..68bdf0697a6 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 May 8 00:31:52 2020 -%DIF ADD ../Configuration.tex Fri May 8 00:36:52 2020 +%DIF DEL PreviousConfiguration.tex Mon May 4 15:42:50 2020 +%DIF ADD ../Configuration.tex Sat May 9 14:02:30 2020 \usepackage{lmodern} \usepackage{amssymb,amsmath} @@ -597,59 +597,82 @@ \subsection{Directory Structure}\label{directory-structure} \begin{itemize} \tightlist \item - \texttt{BOOTx64.efi} - \break - Initial booter, which loads \texttt{OpenCore.efi} unless it was - already started as a driver. -\item - \texttt{ACPI} - \break - Directory used for storing supplemental ACPI information + \texttt{BOOTx64.efi} \DIFdelbegin %DIFDELCMD < \break +%DIFDELCMD < %%% +\DIFdel{Initial booter}\DIFdelend \DIFaddbegin \DIFadd{and }\texttt{\DIFadd{Bootstrap.efi}} \\ + \DIFadd{Initial bootstrap loaders}\DIFaddend , which loads \texttt{OpenCore.efi} unless it was + already started as a driver. \DIFaddbegin \texttt{\DIFadd{BOOTx64.efi}} \DIFadd{is loaded by the firmware + by default according to UEFI specification, and }\texttt{\DIFadd{Bootstrap.efi}} \DIFadd{can + be registered as a custom option to let OpenCore coexist with operating systems + using }\texttt{\DIFadd{BOOTx64.efi}} \DIFadd{as their own loaders (e.g. Windows), see + }\texttt{\DIFadd{BootProtect}} \DIFadd{for more details. +}\DIFaddend \item + \DIFaddbegin \texttt{\DIFadd{boot}} \\ + \DIFadd{Duet bootstrap loader, which initialises UEFI environment on legacy BIOS firmwares + and loads }\texttt{\DIFadd{OpenCore.efi}} \DIFadd{similarly to other bootstrap loaders. Modern Duet + bootstrap loader will default to }\texttt{\DIFadd{OpenCore.efi}} \DIFadd{on the same partition when + present. +}\item + \DIFaddend \texttt{ACPI} \DIFdelbegin %DIFDELCMD < \break +%DIFDELCMD < %%% +\DIFdelend \DIFaddbegin \\ + \DIFaddend Directory used for storing supplemental ACPI information for \hyperref[acpi]{\texttt{ACPI}} section. \item - \texttt{Drivers} - \break - Directory used for storing supplemental \texttt{UEFI} + \texttt{Drivers} \DIFdelbegin %DIFDELCMD < \break +%DIFDELCMD < %%% +\DIFdelend \DIFaddbegin \\ + \DIFaddend Directory used for storing supplemental \texttt{UEFI} drivers for \hyperref[uefi]{\texttt{UEFI}} section. \item - \texttt{Kexts} - \break - Directory used for storing supplemental kernel information + \texttt{Kexts} \DIFdelbegin %DIFDELCMD < \break +%DIFDELCMD < %%% +\DIFdelend \DIFaddbegin \\ + \DIFaddend Directory used for storing supplemental kernel information for \hyperref[kernel]{\texttt{Kernel}} section. \item - \texttt{Resources} - \break - Directory used for storing media resources, such as audio files + \texttt{Resources} \DIFdelbegin %DIFDELCMD < \break +%DIFDELCMD < %%% +\DIFdelend \DIFaddbegin \\ + \DIFaddend Directory used for storing media resources, such as audio files for screen reader support. See \hyperref[uefiaudioprops]{\texttt{UEFI Audio Properties}} - section for more details. -\item - \texttt{Tools} - \break - Directory used for storing supplemental tools. + section for more details. \DIFaddbegin \DIFadd{This directory also contains image files + for graphical user interface. See }\hyperref[ueficanopy]{OpenCanopy} \DIFadd{section for more details. +}\DIFaddend \item + \texttt{Tools} \DIFdelbegin %DIFDELCMD < \break +%DIFDELCMD < %%% +\DIFdelend \DIFaddbegin \\ + \DIFaddend Directory used for storing supplemental tools. \item - \texttt{OpenCore.efi} - \break - Main booter driver responsible for operating system loading. + \texttt{OpenCore.efi} \DIFdelbegin %DIFDELCMD < \break +%DIFDELCMD < %%% +\DIFdelend \DIFaddbegin \\ + \DIFaddend Main booter driver responsible for operating system loading. \item - \texttt{vault.plist} - \break - Hashes for all files potentially loadable by \texttt{OC Config}. + \texttt{vault.plist} \DIFdelbegin %DIFDELCMD < \break +%DIFDELCMD < %%% +\DIFdelend \DIFaddbegin \\ + \DIFaddend Hashes for all files potentially loadable by \texttt{OC Config}. \item - \texttt{config.plist} - \break - \texttt{OC Config}. + \texttt{config.plist} \DIFdelbegin %DIFDELCMD < \break +%DIFDELCMD < %%% +\DIFdelend \DIFaddbegin \\ + \DIFaddend \texttt{OC Config}. \item - \texttt{vault.sig} - \break - Signature for \texttt{vault.plist}. + \texttt{vault.sig} \DIFdelbegin %DIFDELCMD < \break +%DIFDELCMD < %%% +\DIFdelend \DIFaddbegin \\ + \DIFaddend Signature for \texttt{vault.plist}. \item - \texttt{nvram.plist} - \break - OpenCore variable import file. + \texttt{nvram.plist} \DIFdelbegin %DIFDELCMD < \break +%DIFDELCMD < %%% +\DIFdelend \DIFaddbegin \\ + \DIFaddend OpenCore variable import file. \item - \texttt{opencore-YYYY-MM-DD-HHMMSS.txt} - \break - OpenCore log file. + \texttt{opencore-YYYY-MM-DD-HHMMSS.txt} \DIFdelbegin %DIFDELCMD < \break +%DIFDELCMD < %%% +\DIFdelend \DIFaddbegin \\ + \DIFaddend OpenCore log file. \end{itemize} \emph{Note}: It is not guaranteed that paths longer than diff --git a/Platform/OpenCore/OpenCoreNvram.c b/Platform/OpenCore/OpenCoreNvram.c index 20854c687d3..3ffe4d5afed 100644 --- a/Platform/OpenCore/OpenCoreNvram.c +++ b/Platform/OpenCore/OpenCoreNvram.c @@ -412,6 +412,8 @@ OcBlockNvram ( SameContents = CurrentValueSize == VariableMap->Values[AddVariableIndex]->Size && CompareMem (OC_BLOB_GET (VariableMap->Values[AddVariableIndex]), CurrentValue, CurrentValueSize) == 0; FreePool (CurrentValue); + } else if (Status == EFI_NOT_FOUND && VariableMap->Values[AddVariableIndex]->Size == 0) { + SameContents = TRUE; } else { SameContents = FALSE; }