diff --git a/Docs/Configuration.pdf b/Docs/Configuration.pdf index af05988d..6e7e1e1d 100644 Binary files a/Docs/Configuration.pdf and b/Docs/Configuration.pdf differ diff --git a/Docs/Configuration.tex b/Docs/Configuration.tex index 3fb29071..fb2443cb 100755 --- a/Docs/Configuration.tex +++ b/Docs/Configuration.tex @@ -1790,10 +1790,36 @@ blocking. MSR modification in AppleIntelCPUPowerManagement.kext, commonly causing early kernel panic, when it is locked from writing. - \emph{Note}: This option should be avoided whenever possible. Modern firmwares provide - \texttt{CFG Lock} setting, disabling which is much cleaner. More details - about the issue can be found in - \href{https://github.com/acidanthera/AppleSupportPkg#verifymsre2}{VerifyMsrE2} notes. + Certain firmwares lock \texttt{PKG\_CST\_CONFIG\_CONTROL} MSR register. To check its + state one can use bundled \texttt{VerifyMsrE2} tool. Select firmwares have this + register locked on some cores only. + + As modern firmwares provide \texttt{CFG Lock} setting, which allows configuring + \texttt{PKG\_CST\_CONFIG\_CONTROL} MSR register lock, this option should be avoided + whenever possible. For several APTIO firmwares not displaying \texttt{CFG Lock} setting + in the GUI it is possible to access the option directly: + + \begin{enumerate} + \tightlist + \item Download \href{https://github.com/LongSoft/UEFITool/releases}{UEFITool} and + \href{https://github.com/LongSoft/Universal-IFR-Extractor/releases}{IFR-Extractor}. + \item Open your firmware image in UEFITool and find \texttt{CFG Lock} unicode string. + If it is not present, your firmware may not have this option and you should stop. + \item Extract the \texttt{Setup.bin} PE32 Image Section (the one UEFITool found) through + \texttt{Extract Body} menu option. + \item Run IFR-Extractor on the extracted file (e.g. \texttt{./ifrextract Setup.bin Setup.txt}). + \item Find \texttt{CFG Lock, VarStoreInfo (VarOffset/VarName):} in \texttt{Setup.txt} and + remember the offset right after it (e.g. \texttt{0x123}). + \item Download and run \href{http://brains.by/posts/bootx64.7z}{Modified GRUB Shell} compiled by + \href{https://geektimes.com/post/258090}{brainsucker} or use + \href{https://github.com/datasone/grub-mod-setup_var}{a newer version} by + \href{https://github.com/datasone}{datasone}. + \item Enter \texttt{setup\_var 0x123 0x00} command, where \texttt{0x123} should be replaced by + your actual offset, and reboot. + \end{enumerate} + + \textbf{WARNING}: Variable offsets are unique not only to each motherboard but even to its firmware + version. Never ever try to use an offset without checking. \item \texttt{AppleXcpmCfgLock}\\ @@ -1803,10 +1829,8 @@ blocking. MSR modification in XNU kernel, commonly causing early kernel panic, when it is locked from writing (XCPM power management). - \emph{Note}: This option should be avoided whenever possible. Modern firmwares provide - \texttt{CFG Lock} setting, disabling which is much cleaner. More details - about the issue can be found in - \href{https://github.com/acidanthera/AppleSupportPkg#verifymsre2}{VerifyMsrE2} notes. + \emph{Note}: This option should be avoided whenever possible. See \texttt{AppleCpuPmCfgLock} + description for more details. \item \texttt{AppleXcpmExtraMsrs}\\ diff --git a/Docs/Differences/Differences.pdf b/Docs/Differences/Differences.pdf index fdb78b5d..7fc72216 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 f4c1a3b4..67e15b88 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 Tue Dec 10 15:40:50 2019 -%DIF ADD ../Configuration.tex Sun Jan 12 02:58:20 2020 +%DIF ADD ../Configuration.tex Sun Jan 12 03:20:10 2020 \usepackage{lmodern} \usepackage{amssymb,amsmath} @@ -1865,23 +1865,59 @@ blocking. MSR modification in AppleIntelCPUPowerManagement.kext, commonly causing early kernel panic, when it is locked from writing. - \emph{Note}: This option should \DIFaddbegin \DIFadd{be }\DIFaddend avoided whenever possible. Modern firmwares provide - \texttt{CFG Lock} setting, disabling which is much cleaner. More details - about the issue can be found in - \href{https://github.com/acidanthera/AppleSupportPkg#verifymsre2}{VerifyMsrE2} notes. + \DIFdelbegin \emph{\DIFdel{Note}}%DIFAUXCMD +\DIFdel{: This option should }\DIFdelend \DIFaddbegin \DIFadd{Certain firmwares lock }\texttt{\DIFadd{PKG\_CST\_CONFIG\_CONTROL}} \DIFadd{MSR register. To check its + state one can use bundled }\texttt{\DIFadd{VerifyMsrE2}} \DIFadd{tool. Select firmwares have this + register locked on some cores only. +} + + \DIFadd{As modern firmwares provide }\texttt{\DIFadd{CFG Lock}} \DIFadd{setting, which allows configuring + }\texttt{\DIFadd{PKG\_CST\_CONFIG\_CONTROL}} \DIFadd{MSR register lock, this option should be }\DIFaddend avoided + whenever possible. \DIFdelbegin \DIFdel{Modern firmwares provide + }\DIFdelend \DIFaddbegin \DIFadd{For several APTIO firmwares not displaying }\DIFaddend \texttt{CFG Lock} setting + \DIFdelbegin \DIFdel{, disabling which is much cleaner. + More details + about the issue can be foundin + }%DIFDELCMD < \href{https://github.com/acidanthera/AppleSupportPkg#verifymsre2}{VerifyMsrE2} %%% +\DIFdel{notes.}\DIFdelend \DIFaddbegin \DIFadd{in the GUI it is possible to access the option directly: +}\DIFaddend + + \DIFaddbegin \begin{enumerate} + \tightlist + \DIFaddend \item \DIFaddbegin \DIFadd{Download }\href{https://github.com/LongSoft/UEFITool/releases}{UEFITool} \DIFadd{and + }\href{https://github.com/LongSoft/Universal-IFR-Extractor/releases}{IFR-Extractor}\DIFadd{. + }\item \DIFadd{Open your firmware image in UEFITool and find }\texttt{\DIFadd{CFG Lock}} \DIFadd{unicode string. + If it is not present, your firmware may not have this option and you should stop. + }\item \DIFadd{Extract the }\texttt{\DIFadd{Setup.bin}} \DIFadd{PE32 Image Section (the one UEFITool found) through + }\texttt{\DIFadd{Extract Body}} \DIFadd{menu option. + }\item \DIFadd{Run IFR-Extractor on the extracted file (e.g. }\texttt{\DIFadd{./ifrextract Setup.bin Setup.txt}}\DIFadd{). + }\item \DIFadd{Find }\texttt{\DIFadd{CFG Lock, VarStoreInfo (VarOffset/VarName):}} \DIFadd{in }\texttt{\DIFadd{Setup.txt}} \DIFadd{and + remember the offset right after it (e.g. }\texttt{\DIFadd{0x123}}\DIFadd{). + }\item \DIFadd{Download and run }\href{http://brains.by/posts/bootx64.7z}{Modified GRUB Shell} \DIFadd{compiled by + }\href{https://geektimes.com/post/258090}{brainsucker} \DIFadd{or use + }\href{https://github.com/datasone/grub-mod-setup_var}{a newer version} \DIFadd{by + }\href{https://github.com/datasone}{datasone}\DIFadd{. + }\item \DIFadd{Enter }\texttt{\DIFadd{setup\_var 0x123 0x00}} \DIFadd{command, where }\texttt{\DIFadd{0x123}} \DIFadd{should be replaced by + your actual offset, and reboot. + }\end{enumerate} + + \textbf{\DIFadd{WARNING}}\DIFadd{: Variable offsets are unique not only to each motherboard but even to its firmware + version. Never ever try to use an offset without checking. +} \item - \texttt{AppleXcpmCfgLock}\\ + \DIFaddend \texttt{AppleXcpmCfgLock}\\ \textbf{Type}: \texttt{plist\ boolean}\\ \textbf{Failsafe}: \texttt{false}\\ \textbf{Description}: Disables \texttt{PKG\_CST\_CONFIG\_CONTROL} (\texttt{0xE2}) MSR modification in XNU kernel, commonly causing early kernel panic, when it is locked from writing (XCPM power management). - \emph{Note}: This option should \DIFaddbegin \DIFadd{be }\DIFaddend avoided whenever possible. Modern firmwares provide - \texttt{CFG Lock} setting, disabling which is much cleaner. More details - about the issue can be found in - \href{https://github.com/acidanthera/AppleSupportPkg#verifymsre2}{VerifyMsrE2} notes. + \emph{Note}: This option should \DIFaddbegin \DIFadd{be }\DIFaddend avoided whenever possible. \DIFdelbegin \DIFdel{Modern firmwares provide + }\DIFdelend \DIFaddbegin \DIFadd{See }\DIFaddend \texttt{\DIFdelbegin \DIFdel{CFG Lock}\DIFdelend \DIFaddbegin \DIFadd{AppleCpuPmCfgLock}\DIFaddend } + \DIFdelbegin \DIFdel{setting, disabling which is much cleaner. More detailsabout the issue can be found in + }%DIFDELCMD < \href{https://github.com/acidanthera/AppleSupportPkg#verifymsre2}{VerifyMsrE2} %%% +\DIFdel{notes}\DIFdelend \DIFaddbegin \DIFadd{description for more details}\DIFaddend . \item \texttt{AppleXcpmExtraMsrs}\\