diff --git a/Docs/Configuration.md5 b/Docs/Configuration.md5 index 43ffe88261d479d8ea77f907a675fd30095c6960..a4e9122bc745ef95e2530a28f7bade9f04dccbc2 100644 --- a/Docs/Configuration.md5 +++ b/Docs/Configuration.md5 @@ -1 +1 @@ -c212d98f13003514ecd4afdf0542a1a7 +bda7048f34f36e8526aee8e8c44100e7 diff --git a/Docs/Configuration.pdf b/Docs/Configuration.pdf index 677f5471dcd634ce89920307d71360c556b5346a..1cd1daacfa879c397e07ebccdbdcb0d938b2bed8 100644 Binary files a/Docs/Configuration.pdf and b/Docs/Configuration.pdf differ diff --git a/Docs/Differences/Differences.pdf b/Docs/Differences/Differences.pdf index 3aefa1fe4a9c75b011aab4f32ddbef3aeaaf0d78..e8f06e71cc64126a7bc22630bd413c9a569e5c6d 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 19318acb00631e11d7ff05e749daadc78b7d1724..33d1acd8706945d9c1a0a239b020f78f2a026640 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 Wed Dec 8 21:04:04 2021 -%DIF ADD ../Configuration.tex Fri Dec 10 14:56:58 2021 +%DIF DEL PreviousConfiguration.tex Sun Dec 12 09:04:19 2021 +%DIF ADD ../Configuration.tex Sun Dec 19 11:00:50 2021 \usepackage{lmodern} \usepackage{amssymb,amsmath} @@ -2763,18 +2763,18 @@ blocking. \tightlist \item \DIFadd{For Microsoft Hyper-V it }\DIFaddend provides the correct TSC and FSB values to the kernel, as well as disables CPU topology validation \DIFdelbegin \DIFdel{. -}%DIFDELCMD < - -%DIFDELCMD < %%% -\emph{\DIFdel{Note}}%DIFAUXCMD -\DIFdel{: These patches currently target Microsoft Hyper-V and may need to be extended for other purposes.}\DIFdelend \DIFaddbegin \DIFadd{(10.8+). +}\DIFdelend \DIFaddbegin \DIFadd{(10.8+). }\item \DIFadd{For Intel CPUs it adds support for asymmetrical SMP systems (e.g. Intel Alder Lake) by patching core count to thread count along with the supplemental required changes (10.14+). }\end{itemize} \DIFaddend -\item +\DIFdelbegin \emph{\DIFdel{Note}}%DIFAUXCMD +\DIFdel{: These patches currently target Microsoft Hyper-V and may need to be extended for other purposes.}%DIFDELCMD < + +%DIFDELCMD < %%% +\DIFdelend \item \texttt{SetApfsTrimTimeout}\\ \textbf{Type}: \texttt{plist\ integer}\\ \textbf{Failsafe}: \texttt{-1}\\ @@ -6549,8 +6549,13 @@ with the boot menu. \textbf{Description}: Configure audio backend support described in the \hyperref[uefiaudioprops]{Audio Properties} section below. - Audio support provides a way for upstream protocols to interact with the - selected hardware and audio resources. All audio resources should reside + \DIFdelbegin \DIFdel{Audio support }\DIFdelend \DIFaddbegin \DIFadd{Unless documented otherwise (e.g. }\texttt{\DIFadd{ResetTrafficClass}}\DIFadd{) settings in this section + are for UEFI audio support only (e.g. OpenCore generated boot chime and audio assist) and are + unrelated to any configuration needed for OS audio support (e.g. }\texttt{\DIFadd{AppleALC}}\DIFadd{). +} + + \DIFadd{UEFI audio support }\DIFaddend provides a way for upstream protocols to interact with the + selected \DIFdelbegin \DIFdel{hardware and audio }\DIFdelend \DIFaddbegin \DIFadd{audio hardware and }\DIFaddend resources. All audio resources should reside in \texttt{\textbackslash EFI\textbackslash OC\textbackslash Resources\textbackslash Audio} directory. Currently the supported audio file formats are MP3 and WAVE PCM. While it is driver-dependent which audio stream format is supported, most common audio cards @@ -6957,33 +6962,78 @@ with the boot menu. \texttt{OCAU: 2/3 \textit{\textbf{PciRoot(0x0)/Pci(0x3,0x0)}}/VenMsg(,00000000) (1 outputs)}\\ \texttt{OCAU: 3/3 \textit{\textbf{PciRoot(0x0)/Pci(0x1B,0x0)}}/VenMsg(,02000000) (7 outputs)} - As an alternative, \texttt{gfxutil -f HDEF} command can be used in macOS. Specifying an empty device - path will result in the first available audio controller being used. + \DIFdelbegin \DIFdel{As an alternative, }\DIFdelend \DIFaddbegin \DIFadd{If using using }\texttt{\DIFadd{AudioDxe}}\DIFadd{, the required device path is also output as: +} + + \texttt{\DIFadd{HDA: Connecting controller }\textit{\textbf{\DIFadd{PciRoot(0x0)/Pci(0x1B,0x0)}}}} + + \DIFadd{Finally, }\DIFaddend \texttt{gfxutil -f HDEF} command can be used in macOS \DIFdelbegin \DIFdel{. }\DIFdelend \DIFaddbegin \DIFadd{to obtain the device path. + } + + \DIFaddend Specifying an empty device path will result in the first available audio controller being used\DIFaddbegin \DIFadd{, and can + be a convenient option to get UEFI audio working if only one audio controller is present}\DIFaddend . \item - \texttt{AudioOut}\\ + \texttt{\DIFdelbegin \DIFdel{AudioOut}\DIFdelend \DIFaddbegin \DIFadd{AudioOutMask}\DIFaddend }\\ \textbf{Type}: \texttt{plist\ integer}\\ \textbf{Failsafe}: \texttt{0}\\ - \textbf{Description}: Index of the output port of the specified codec starting from 0. + \textbf{Description}: \DIFdelbegin \DIFdel{Index of the output port of the specified codec starting from 0. +}\DIFdelend \DIFaddbegin \DIFadd{Bit field indicating which output channels to use for UEFI sound. +}\DIFaddend - This typically contains the index of the green out of the builtin analog audio controller (\texttt{HDEF}). - The number of output nodes (\texttt{N}) in the debug log (marked in bold-italic): + This \DIFdelbegin \DIFdel{typically contains the index of the }\DIFdelend \DIFaddbegin \DIFadd{should typically contain a single bit corresponding to the }\DIFaddend green out of the builtin analog audio + controller (\texttt{HDEF}). + The number of \DIFaddbegin \DIFadd{available }\DIFaddend output nodes (\texttt{N}) \DIFaddbegin \DIFadd{for each HDA codec is shown }\DIFaddend in the debug log (marked in bold-italic): \texttt{OCAU: 1/3 PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x1)/VenMsg(,00000000) (\textit{\textbf{4 outputs}})}\\ \texttt{OCAU: 2/3 PciRoot(0x0)/Pci(0x3,0x0)/VenMsg(,00000000) (\textit{\textbf{1 outputs}})}\\ \texttt{OCAU: 3/3 PciRoot(0x0)/Pci(0x1B,0x0)/VenMsg(,02000000) (\textit{\textbf{7 outputs}})} - The quickest way to find the right port is to bruteforce the values from \texttt{0} to \texttt{N - 1}. + The \DIFdelbegin \DIFdel{quickest way to find the right port is }\DIFdelend \DIFaddbegin \DIFadd{first available output node is bit 0 (value }\texttt{\DIFadd{1}}\DIFadd{), the second node is bit 1 (value }\texttt{\DIFadd{2}}\DIFadd{), etc. +} -\item + \DIFadd{When the debug version of }\texttt{\DIFadd{AudioDxe}} \DIFadd{is used, then additional information on each output channel of each codec + is logged during driver binding. Further information on the available output channels may also be found from a Linux + codec dump }\texttt{\DIFadd{cat /proc/asound/card\{n\}/codec\#\{m\}}}\DIFadd{. + } + + \DIFadd{Using }\texttt{\DIFadd{AudioOutMask}}\DIFadd{, it is possible to play sound to more than one channel (e.g. main speaker plus bass speaker; + headphones plus speakers). For example, if the main speaker is ouput 0 and the bass speaker + is output 2, then to play to both set }\texttt{\DIFadd{AudioOutMask}} \DIFaddend to \DIFdelbegin \DIFdel{bruteforce the values from }\DIFdelend \DIFaddbegin \texttt{\DIFadd{1 << 0 + 1 << 2}} \DIFadd{i.e. }\texttt{\DIFadd{5}}\DIFadd{. This + feature is supported when all chosen outputs support the sound file format in use; if any do not then no sound + will play and an error will be logged. +} + + \emph{\DIFadd{Note 1}}\DIFadd{: If all available output channels on the codec support the available sound file format, then a value + of }\DIFaddend \texttt{\DIFdelbegin \DIFdel{0}%DIFDELCMD < \MBLOCKRIGHTBRACE %%% +\DIFdel{to }\texttt{\DIFdel{N - 1}}%DIFAUXCMD +\DIFdelend \DIFaddbegin \DIFadd{-1}} \DIFadd{may be used to play to all channels simultaneously}\DIFaddend . + + \DIFaddbegin \emph{\DIFadd{Note 2}}\DIFadd{: Bits in }\texttt{\DIFadd{AudioOutMask}} \DIFadd{do not represent internal codec node ids as found in detailed codec + dumps, but rather the available output nodes as shown e.g. in the }\texttt{\DIFadd{OCAU}} \DIFadd{log lines above. +} + + \DIFaddend \item \texttt{AudioSupport}\\ \textbf{Type}: \texttt{plist\ boolean}\\ \textbf{Failsafe}: \texttt{false}\\ \textbf{Description}: Activate audio support by connecting to a backend driver. - Enabling this setting routes audio playback from builtin protocols to a dedicated - audio port (\texttt{AudioOut}) of the specified codec (\texttt{AudioCodec}) located - on the audio controller (\texttt{AudioDevice}). + Enabling this setting routes audio playback from builtin protocols to \DIFdelbegin \DIFdel{a dedicated + audio port (}\DIFdelend \DIFaddbegin \DIFadd{specified + (}\DIFaddend \texttt{\DIFdelbegin \DIFdel{AudioOut}\DIFdelend \DIFaddbegin \DIFadd{AudioOutMask}\DIFaddend }) \DIFaddbegin \DIFadd{dedicated audio ports }\DIFaddend of the specified codec (\texttt{AudioCodec})\DIFaddbegin \DIFadd{, + }\DIFaddend located on the \DIFaddbegin \DIFadd{specified }\DIFaddend audio controller (\texttt{AudioDevice})\DIFaddbegin \DIFadd{. +} + + \item + \texttt{\DIFadd{DisconnectHda}}\\ + \textbf{\DIFadd{Type}}\DIFadd{: }\texttt{\DIFadd{plist\ boolean}}\\ + \textbf{\DIFadd{Failsafe}}\DIFadd{: }\texttt{\DIFadd{false}}\\ + \textbf{\DIFadd{Description}}\DIFadd{: Disconnect HDA controller before loading drivers. +} + + \DIFadd{May be required on some systems (e.g. Apple hardware, VMware Fusion guest) to allow + a UEFI sound driver (such as }\texttt{\DIFadd{AudioDxe}}\DIFadd{) to take control of the audio hardware}\DIFaddend . \item \texttt{MinimumVolume}\\ diff --git a/Docs/Errata/Errata.pdf b/Docs/Errata/Errata.pdf index c0d4e177f44bbf20563f5506206e7c4ac6dc4866..dd0df31cb775e886e12d9c92f56e9a85cc4d251b 100644 Binary files a/Docs/Errata/Errata.pdf and b/Docs/Errata/Errata.pdf differ