diff --git a/Docs/Frontpage_Includes/Frontpage_DSC_Include.md b/Docs/Frontpage_Includes/Frontpage_DSC_Include.md index a9cb0d9..1d20c97 100644 --- a/Docs/Frontpage_Includes/Frontpage_DSC_Include.md +++ b/Docs/Frontpage_Includes/Frontpage_DSC_Include.md @@ -1,468 +1,468 @@ -# DSC Include File in Detail - -This readme aims to describe FrontpageDsc.inc in detail, providing details and justification for -the libraries and components included for Frontpage. - -## Preliminaries - -### What is a DSC File - -The .dsc filetype is an EDK2 Platform Description file format. The DSC file must define all libraries, -components and/or modules that will be processed by compiler tool chains, such as the GNU C compiler. -To learn more about it, check the -[specification](https://edk2-docs.gitbook.io/edk-ii-dsc-specification/) -on the tianocore-docs github. - -### What is an INF File - -The .inf filetype is an EDK2 Platform Description file format. The INF file describes properties of a module, -how it is coded, what it provides, what it depends on, architecture specific items, features, etc. regarding -the module. To learn more about INF files, look at the -[specification](https://edk2-docs.gitbook.io/edk-ii-inf-specification/) -on the tianocore-docs github. - -### How do I Include a DSC File - -This file will be included in the DSC file for the platform being built. The syntax for including a file -is: - - !include path/to/dsc/include/file - -### What are NULL Libs - -A NULL lib is one which satisfies a dependency but doesn't implement the required functions. -They're used when a package requires the definition of a library but the way in which the package -is being used does not actually necessitate that library. Instead of reworking the package to remove -dependencies on the unused library, a NULL version of that -libraray can be created which fits the specification but returns the trivial result when called. - -### What is DFCI - -From the [feature document](https://microsoft.github.io/mu/dyn/mu_plus/DfciPkg/Docs/Dfci_Feature/): -*The Device Firmware Configuration Interface (DFCI) brings new levels of security and usability to -PC configuration management. It is a new feature of UEFI that enables secure programmatic configuration -of hardware settings that are typically configured within a BIOS menu.* - -## Libraries included - -**NOTE:** Three libraries (MsPlatformDevicesLib, DfciDeviceIdSupportLib, PlatformThemeLib) will need -to be implemented per platform and included either here or in the main DSC file. An example can -be found in the -[NXP iMX8 platform](https://github.com/ms-iot/MU_SILICON_NXP/tree/master/iMX8Pkg). -in the Library/ directory. - -### Shell libraries - -From the frontpage, the shell can be loaded from frontpage using the boot menu. **ShellLib** provides -the main functionality for shell commands and applications. **ShellCommandLib** provides the internal -support for ShellLib. **ShellCEntryLib** enables a C-style main function with traditional argc and argv -parameters. **HandleParsingLib** supports the parsing the handle and protocol database from the shell. -**BcfgCommandLib** enables the usage of the bcfg command in the shell. Information about bcfg can be found -in the [UEFI Shell Specification v2.2](https://uefi.org/sites/default/files/resources/UEFI_Shell_2_2.pdf) -on page 96. **NetLib** provides basic network functionality. - - ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf - ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf - ShellCEntryLib|ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf - HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf - BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf - NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf - -### Intrinsics for crypto operations - -IntrinsicLib is an intrinsic memory routines wrapper implementation for an [OpenSSL](#OpenSSL-Library) --based cryptographic library. - - IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf - -### [NULL](#what-are-null-libs?) routines to support [DFCI](#what-is-dfci) UI operations - -Info on **DfciUiSupportLib** can be found -[here](https://microsoft.github.io/mu/dyn/mu_plus/DfciPkg/Docs/PlatformIntegration/DfciUiSupportLib/) - - DfciUiSupportLib|DfciPkg/Library/DfciUiSupportLibNull/DfciUiSupportLibNull.inf - -### Crypto support functions for the [DFCI](#what-is-dfci) recovery feature - -Info on **DfciRecoveryLib** can be found -[here](https://microsoft.github.io/mu/dyn/mu_plus/DfciPkg/Docs/PlatformIntegration/DfciUiSupportLib/) - - DfciRecoveryLib|DfciPkg/Library/DfciRecoveryLib/DfciRecoveryLib.inf - -### OpenSSL Library - -**OpensslLib** is an open-source implementation of the -[SSL and TLS](https://en.wikipedia.org/wiki/Transport_Layer_Security) protocols. -This library is used by BaseCryptLib. - - OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf - -### Stub functions that should contain base logic for querying, setting, and verifying user passwords - -**BaseCryptLib** provides basic library functions for cryptographic primitives. - - BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf - -### Supports [DFCI](#what-is-dfci) Groups - -**DfciGroupLib** allows settings managers to keep separate configurations depending upon the devices -group membership. More on DfciGroupLib can be found -[here](https://microsoft.github.io/mu/dyn/mu_plus/DfciPkg/Docs/PlatformIntegration/DfciGroups/#dfcigrouplib). - -**XmlTreeQueryLib** and **XmlTreeLib** introduce some xml support into UEFI. Info on the -Xml Support Package can be found -[here](https://microsoft.github.io/mu/dyn/mu_plus/XmlSupportPkg/ReadMe/). - - DfciGroupLib|DfciPkg/Library/DfciGroupLibNull/DfciGroups.inf - XmlTreeQueryLib|XmlSupportPkg/Library/XmlTreeQueryLib/XmlTreeQueryLib.inf - XmlTreeLib|XmlSupportPkg/Library/XmlTreeLib/XmlTreeLib.inf - -### Backwards compatibility with [DFCI](#what-is-dfci) V1 functions - -**DfciV1SupportLib** (or rather its [NULL](#what-are-null-libs?) instance) translates V1 DFCI strings -into V2 DFCI strings. - -**FltUsedLib** provides a global (fltused) that needs to be defined anywhere floating point operations -are used. - - DfciV1SupportLib|DfciPkg/Library/DfciV1SupportLibNull/DfciV1SupportLibNull.inf - FltUsedLib|MdePkg/Library/FltUsedLib/FltUsedLib.inf - -### Library instances which understand the MsXml Settings Schema - -**DfciXmlSettingSchemaSupportLib** supports the xml schema used to store/define settings in -[DFCI](#what-is-dfci). - -**DfciXmlPermissionSchemaSupportLib** supports the xml format used to store permissions. More information -on DFCI Permissions can be found -[here](https://microsoft.github.io/mu/dyn/mu_plus/DfciPkg/Docs/Internals/DfciInternals/#permission-packet-formats). - -**DfciXmlDeviceIdSchemaSupportLib** and **DfciXmlIdentitySchemaSupportLib** support the xml format used -to store Device Identities.More info on the DFCI Identity Manager can be found -[here](https://microsoft.github.io/mu/dyn/mu_plus/DfciPkg/Docs/Internals/DfciInternals/#identity-manager) - - DfciXmlSettingSchemaSupportLib|DfciPkg/Library/DfciXmlSettingSchemaSupportLib/DfciXmlSettingSchemaSupportLib.inf - DfciXmlPermissionSchemaSupportLib|DfciPkg/Library/DfciXmlPermissionSchemaSupportLib/DfciXmlPermissionSchemaSupportLib.inf - DfciXmlDeviceIdSchemaSupportLib|DfciPkg/Library/DfciXmlDeviceIdSchemaSupportLib/DfciXmlDeviceIdSchemaSupportLib.inf - DfciXmlIdentitySchemaSupportLib|DfciPkg/Library/DfciXmlIdentitySchemaSupportLib/DfciXmlIdentitySchemaSupportLib.inf - -### Support for Zero Touch - -The term Zero Touch is used in [DFCI](#what-is-dfci) to describe managing device settings remotely. -**ZeroTouchSettingsLib** is a library instance for ZeroTouch to support enabling, display, -and deleting the Zero Touch Certificate. - -**SafeIntLib** is a simple integer mathematics library which guards against -[integer overflow](https://en.wikipedia.org/wiki/Integer_overflow). - -**BmpSupportLib** supports the use of [bitmap](https://en.wikipedia.org/wiki/BMP_file_format) files. - - ZeroTouchSettingsLib|ZeroTouchPkg/Library/ZeroTouchSettings/ZeroTouchSettings.inf - SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf - BmpSupportLib|MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSupportLib.inf - -### [NULL](#what-are-null-libs?) library for displaying device state - -**DisplayDeviceStateLib** usually supplies a function to display all active device states. This NULL -implementation satisfies dependencies on this function, but no non-null -version of this lib exists in Project Mu. - - DisplayDeviceStateLib|MsGraphicsPkg/Library/DisplayDeviceStateLibNull/DisplayDeviceStateLibNull.inf - -### Libraries supporting boot graphics - -**BootGraphicsLib** is used by -[BDS](https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#BDS_-_Boot_Device_Select) to -draw and the main boot graphics to the screen. In the case of Microsoft Surface products, this is -usually the Windows logo. - -**BootGraphicsProviderLib** enables the retrieval of the boot graphics used by BootGraphicsLib from -a Firmware Volume. - - BootGraphicsLib|MsGraphicsPkg/Library/BootGraphicsLib/BootGraphicsLib.inf - BootGraphicsProviderLib|OemPkg/Library/BootGraphicsProviderLib/BootGraphicsProviderLib.inf - -### Support libary for MS_UI_THEME - -The MS_UI_THEME is the theme used by our FrontPage. **MsUiThemeCopyLib** is used by the graphics package to -copy the stored theme into a buffer. - - MsUiThemeCopyLib|MsGraphicsPkg/Library/MsUiThemeCopyLib/MsUiThemeCopyLib.inf - -### Version Support Library - -**MuUefiVersionLib** is a simple library which returns the current UEFI version. - - MuUefiVersionLib|OemPkg/Library/MuUefiVersionLib/MuUefiVersionLib.inf - -### Thermal Support - -This [NULL](#what-are-null-libs?) implementation of the **ThermalServicesLib** satisfies a dependency from -[DeviceBootManagerlib](#device-specific-boot-actions-supporting-platformbootmanagerlib). Because there -is no universal API for fetching thermal state, ThermalServicesLib requires a platform specific -implementation to function. - - ThermalServicesLib|PcBdsPkg/Library/ThermalServicesLibNull/ThermalServicesLibNull.inf - -### Platform power services - -Note that these are both [NULL](#what-are-null-libs?) implementations. - -**PowerServicesLib** supports Platforms that don't have a battery. **MsPlatformPowerCheckLib** allows -platform code to configure CPU power limits. - - PowerServicesLib|PcBdsPkg/Library/PowerServicesLibNull/PowerServicesLibNull.inf - MsPlatformPowerCheckLib|PcBdsPkg/Library/MsPlatformPowerCheckLibNull/MsPlatformPowerCheckLibNull.inf - -### Console Message Library - -**ConsoleMsgLib** offers functionality to display platform specific debug messages. Platforms are responsible -for implementing this interface (this is a [NULL](#what-are-null-libs?) implementation) - - ConsoleMsgLib|PcBdsPkg/Library/ConsoleMsgLibNull/ConsoleMsgLibNull.inf - -### Console Configuration - -**GraphicsConsoleHelperLib** enables the setting of the graphics console resolution to known values (ex. native -resolution, low resolution, etc.). - - GraphicsConsoleHelperLib|PcBdsPkg/Library/GraphicsConsoleHelperLib/GraphicsConsoleHelper.inf - -### Device State Support - -**DeviceStateLib** is a simple interface for getting and setting the device state (ex. Manufacturing Mode, -Unit Test Mode, etc.). **DisplayDeviceStateLib** uses color bards to display device states during boot. -For example, the following color bar displayed at the top of the screen implies Secure Boot is disabled - -![Colorbar](colorbar_mu.PNG) - - DeviceStateLib|MsCorePkg/Library/DeviceStateLib/DeviceStateLib.inf - DisplayDeviceStateLib|MsGraphicsPkg/Library/ColorBarDisplayDeviceStateLib/ColorBarDisplayDeviceStateLib.inf - -### Device specific boot actions supporting PlatformBootManagerLib - -**DeviceBootManagerLib** provides extensions for BdsDxe which is responsible for producing the protocol -gEfiBdsArchProtocolGuid which is used to transition between -[DXE](https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#DXE_-_Driver_Execution_Environment) and -[BDS](https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#BDS_-_Boot_Device_Select) phases. - - DeviceBootManagerLib|PcBdsPkg/Library/DeviceBootManagerLib/DeviceBootManagerLib.inf - -### Rectangle Primitives Library - -**UiRectangleLib** enables the drawing of rectangles with different fills and borders. - - UiRectangleLib|MsGraphicsPkg/Library/BaseUiRectangleLib/BaseUiRectangleLib.inf - -### Boot Management - -**MsAltBootLib** sets and gets the alternate boot variable used to specify when the user wants to boot from -a USB or other device. - -**MsBootOptionsLib** extends BdsDxe to allow booting from specific storage devices or to the shell. - - MsAltBootLib|OemPkg/Library/MsAltBootLib/MsAltBootLib.inf - MsBootOptionsLib|PcBdsPkg/Library/MsBootOptionsLib/MsBootOptionsLib.inf - -### Color Support - -**MsColorTableLib** is a simple library of colors - - MsColorTableLib|MsGraphicsPkg/Library/MsColorTableLib/MsColorTableLib.inf - -### Networking Support - -**MsNetworkDependencyLib** is used by the boot manager to start the networking stack. - - MsNetworkDependencyLib|PcBdsPkg/Library/MsNetworkDependencyLib/MsNetworkDependencyLib.inf - -### Library to access reboot reason - -**MsNVBootReasonLib** provides an interface for retrieving the reboot reason (ex. bootfail) from non-volatile variable storage. - - MsNVBootReasonLib|OemPkg/Library/MsNVBootReasonLib/MsNVBootReasonLib.inf - -### Math Library - -**MathLib** provides an architecture agnostic math library offering reasonable approximations for various -functions in software. - - MathLib|MsCorePkg/Library/MathLib/MathLib.inf - -### System Boot Graphics Support - -**BootGraphicsLib** is intended only to be used by -[BDS](https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#BDS_-_Boot_Device_Select) -to draw the main boot graphics on the screen. (ex. the Microsoft logo). - -**BootGraphicsProviderLib** uses PCDs to retrieve BMP files from firmware volumes. - - BootGraphicsLib|MsGraphicsPkg/Library/BootGraphicsLib/BootGraphicsLib.inf - BootGraphicsProviderLib|OemPkg/Library/BootGraphicsProviderLib/BootGraphicsProviderLib.inf - -### Boot Manager Settings Access - -**MsBootManagerSettingsLib** provides get and set access for boot manager settings. - - MsBootManagerSettingsLib|PcBdsPkg/Library/MsBootManagerSettingsDxeLib/MsBootManagerSettingsDxeLib.inf - -### Simple Window Manager Dialogs - -**SwmDialogsLib** enables the display of dialog boxes such as a password input box. - - SwmDialogsLib|MsGraphicsPkg/Library/SwmDialogsLib/SwmDialogs.inf - -### Platform Specific Boot Policy - -**MsBootPolicyLib** implements the desired boot behavior when no UEFI boot options are present (or they failed) -and a alternate boot has been requested (ex. booting from USB). - - MsBootPolicyLib|OemPkg/Library/MsBootPolicyLib/MsBootPolicyLib.inf - -### UI Support - -**MsUiThemeLib** Supplies the theme for this platform to the UEFI settings UI. **UIToolKitLib** initializes -toolkit required for UI display. - - MsUiThemeLib|MsGraphicsPkg/Library/MsUiThemeLib/Dxe/MsUiThemeLib.inf - UIToolKitLib|MsGraphicsPkg/Library/SimpleUIToolKit/SimpleUIToolKit.inf - -### Security Support - -**ResetUtilityLib** contains various helper functions for resetting the system. **BaseBinSecurityLib** is -a [NULL](#what-are-null-libs?) implementation of a library for initializing security cookies. -**SecurityLockAuditLib** is another NULL implementation to satisfy compilation dependencies. The implemented -version supplies necessary functions for logging hardware and software security locks. - - ResetUtilityLib|MdeModulePkg/Library/ResetUtilityLib/ResetUtilityLib.inf - BaseBinSecurityLib|MdePkg/Library/BaseBinSecurityLibNull/BaseBinSecurityLibNull.inf - SecurityLockAuditLib|MdeModulePkg/Library/SecurityLockAuditLibNull/SecurityLockAuditLibNull.inf - -## PCDs included - -Set to TRUE so Console In (ConIn. ex. keyboard) is only connected once a console input is requested -(ex. when a device is plugged). - - gEfiMdeModulePkgTokenSpaceGuid.PcdConInConnectOnDemand|TRUE - -Sets maximum printable number of characters to 16000 - - gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|16000 - -Used to control the profiles available in the shell. 0x1f sets all profiles to available. - - gEfiShellPkgTokenSpaceGuid.PcdShellProfileMask|0x1f # All profiles - -If TRUE, MsUiTheme is built in -[DXE](https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#DXE_-_Driver_Execution_Environment). -This should be TRUE for platforms that don't have a PPI -([PEI](https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#PEI_-_Pre-EFI_Initialization) -module to PEI module Interface). Otherwise, the theme will be generated in PEI and it will be located -on a HOB. - - gMsGraphicsPkgTokenSpaceGuid.PcdUiThemeInDxe|TRUE - -If TRUE, the -[Boot Manager](https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/boot-and-uefi#understanding-the-windows-boot-manager) -will be in the boot order list. - - gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerInBootOrder|TRUE - -If TRUE, the -[BDS](https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#BDS_-_Boot_Device_Select) -supports Platform Recovery - - gEfiMdeModulePkgTokenSpaceGuid.PcdPlatformRecoverySupport|FALSE - -Set to the guid associated with the Mu Frontpage. - - gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x8A, 0x70, 0x42, 0x40, 0x2D, 0x0F, 0x23, 0x48, 0xAC, 0x60, 0x0D, 0x77, 0xB3, 0x11, 0x18, 0x89 } - -## Components - -Spoofs button press to automatically boot to FrontPage. - - OemPkg/FrontpageButtonsVolumeUp/FrontpageButtonsVolumeUp.inf - -Application that presents and manages FrontPage. - - OemPkg/FrontPage/FrontPage.inf - -Application that presents & manages the Boot Menu Setup on Front Page. - - OemPkg/BootMenu/BootMenu.inf - -Enables MsBootPolicy. See the [Platform Specific Boot Policy Library](#platform-specific-boot-policy) - - PcBdsPkg/MsBootPolicy/MsBootPolicy.inf - -A module which produces Boot Manager Policy protocol. - - MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxe.inf - -A regular expression library to support Remote/IT/Admin Settings such as [DFCI](#what-is-dfci). - - MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.inf - -Main component of [DFCI](#what-is-dfci) which manages and enforces all DFCI settings - - DfciPkg/SettingsManager/SettingsManagerDxe.inf { - # Platform should add all it settings libs here - - NULL|ZeroTouchPkg/Library/ZeroTouchSettings/ZeroTouchSettings.inf - NULL|DfciPkg/Library/DfciPasswordProvider/DfciPasswordProvider.inf - NULL|DfciPkg/Library/DfciSettingsLib/DfciSettingsLib.inf - DfciSettingPermissionLib|DfciPkg/Library/DfciSettingPermissionLib/DfciSettingPermissionLib.inf - NULL|PcBdsPkg/Library/MsBootManagerSettingsDxeLib/MsBootManagerSettingsDxeLib.inf - - gDfciPkgTokenSpaceGuid.PcdSettingsManagerInstallProvider|TRUE - } - -AuthManager provides authentication for [DFCI](#what-is-dfci). - - DfciPkg/IdentityAndAuthManager/IdentityAndAuthManagerDxe.inf - -Processes ingoing and outgoing [DFCI](#what-is-dfci) settings requests - - DfciPkg/DfciManager/DfciManager.inf - -Manages windows and fonts to be drawn by the rendering engine - - MsGraphicsPkg/SimpleWindowManagerDxe/SimpleWindowManagerDxe.inf - -Produces EfiGraphicsOutputProtocol to draw graphics to the screen - - MsGraphicsPkg/RenderingEngineDxe/RenderingEngineDxe.inf - -Finds and takes ownership of gEfiGraphicsOutputProtocolGuid so RenderingEngine can use it by uninstalling -it on its current handle and reinstalling it on a new one. - - MsGraphicsPkg/GopOverrideDxe/GopOverrideDxe.inf - -Driver for On Screen Keyboard. - - MsGraphicsPkg/OnScreenKeyboardDxe/OnScreenKeyboardDxe.inf - -Installs protocol to share the UI theme. - - MsGraphicsPkg/MsUiTheme/Dxe/MsUiThemeProtocol.inf - -Produces gEdkiiFormDisplayEngineProtocolGuid protocol. Handles input, displays strings - - MsGraphicsPkg/DisplayEngineDxe/DisplayEngineDxe.inf - -Enables the Shell - - ShellPkg/Application/Shell/Shell.inf { - - NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf - NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf - NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf - NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf - NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf - NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf - NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf - NULL|ShellPkg/Library/UefiShellNetwork2CommandsLib/UefiShellNetwork2CommandsLib.inf - - gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE - } +# DSC Include File in Detail + +This readme aims to describe FrontpageDsc.inc in detail, providing details and justification for +the libraries and components included for Frontpage. + +## Preliminaries + +### What is a DSC File + +The .dsc filetype is an EDK2 Platform Description file format. The DSC file must define all libraries, +components and/or modules that will be processed by compiler tool chains, such as the GNU C compiler. +To learn more about it, check the +[specification](https://edk2-docs.gitbook.io/edk-ii-dsc-specification/) +on the tianocore-docs github. + +### What is an INF File + +The .inf filetype is an EDK2 Platform Description file format. The INF file describes properties of a module, +how it is coded, what it provides, what it depends on, architecture specific items, features, etc. regarding +the module. To learn more about INF files, look at the +[specification](https://edk2-docs.gitbook.io/edk-ii-inf-specification/) +on the tianocore-docs github. + +### How do I Include a DSC File + +This file will be included in the DSC file for the platform being built. The syntax for including a file +is: + + !include path/to/dsc/include/file + +### What are NULL Libs + +A NULL lib is one which satisfies a dependency but doesn't implement the required functions. +They're used when a package requires the definition of a library but the way in which the package +is being used does not actually necessitate that library. Instead of reworking the package to remove +dependencies on the unused library, a NULL version of that +libraray can be created which fits the specification but returns the trivial result when called. + +### What is DFCI + +From the [feature document](https://microsoft.github.io/mu/dyn/mu_plus/DfciPkg/Docs/Dfci_Feature/): +*The Device Firmware Configuration Interface (DFCI) brings new levels of security and usability to +PC configuration management. It is a new feature of UEFI that enables secure programmatic configuration +of hardware settings that are typically configured within a BIOS menu.* + +## Libraries included + +**NOTE:** Three libraries (MsPlatformDevicesLib, DfciDeviceIdSupportLib, PlatformThemeLib) will need +to be implemented per platform and included either here or in the main DSC file. An example can +be found in the +[NXP iMX8 platform](https://github.com/ms-iot/MU_SILICON_NXP/tree/master/iMX8Pkg). +in the Library/ directory. + +### Shell libraries + +From the frontpage, the shell can be loaded from frontpage using the boot menu. **ShellLib** provides +the main functionality for shell commands and applications. **ShellCommandLib** provides the internal +support for ShellLib. **ShellCEntryLib** enables a C-style main function with traditional argc and argv +parameters. **HandleParsingLib** supports the parsing the handle and protocol database from the shell. +**BcfgCommandLib** enables the usage of the bcfg command in the shell. Information about bcfg can be found +in the [UEFI Shell Specification v2.2](https://uefi.org/sites/default/files/resources/UEFI_Shell_2_2.pdf) +on page 96. **NetLib** provides basic network functionality. + + ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf + ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf + ShellCEntryLib|ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf + HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf + BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf + NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf + +### Intrinsics for crypto operations + +IntrinsicLib is an intrinsic memory routines wrapper implementation for an [OpenSSL](#OpenSSL-Library) +-based cryptographic library. + + IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf + +### [NULL](#what-are-null-libs?) routines to support [DFCI](#what-is-dfci) UI operations + +Info on **DfciUiSupportLib** can be found +[here](https://microsoft.github.io/mu/dyn/mu_plus/DfciPkg/Docs/PlatformIntegration/DfciUiSupportLib/) + + DfciUiSupportLib|DfciPkg/Library/DfciUiSupportLibNull/DfciUiSupportLibNull.inf + +### Crypto support functions for the [DFCI](#what-is-dfci) recovery feature + +Info on **DfciRecoveryLib** can be found +[here](https://microsoft.github.io/mu/dyn/mu_plus/DfciPkg/Docs/PlatformIntegration/DfciUiSupportLib/) + + DfciRecoveryLib|DfciPkg/Library/DfciRecoveryLib/DfciRecoveryLib.inf + +### OpenSSL Library + +**OpensslLib** is an open-source implementation of the +[SSL and TLS](https://en.wikipedia.org/wiki/Transport_Layer_Security) protocols. +This library is used by BaseCryptLib. + + OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf + +### Stub functions that should contain base logic for querying, setting, and verifying user passwords + +**BaseCryptLib** provides basic library functions for cryptographic primitives. + + BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf + +### Supports [DFCI](#what-is-dfci) Groups + +**DfciGroupLib** allows settings managers to keep separate configurations depending upon the devices +group membership. More on DfciGroupLib can be found +[here](https://microsoft.github.io/mu/dyn/mu_plus/DfciPkg/Docs/PlatformIntegration/DfciGroups/#dfcigrouplib). + +**XmlTreeQueryLib** and **XmlTreeLib** introduce some xml support into UEFI. Info on the +Xml Support Package can be found +[here](https://microsoft.github.io/mu/dyn/mu_plus/XmlSupportPkg/ReadMe/). + + DfciGroupLib|DfciPkg/Library/DfciGroupLibNull/DfciGroups.inf + XmlTreeQueryLib|XmlSupportPkg/Library/XmlTreeQueryLib/XmlTreeQueryLib.inf + XmlTreeLib|XmlSupportPkg/Library/XmlTreeLib/XmlTreeLib.inf + +### Backwards compatibility with [DFCI](#what-is-dfci) V1 functions + +**DfciV1SupportLib** (or rather its [NULL](#what-are-null-libs?) instance) translates V1 DFCI strings +into V2 DFCI strings. + +**FltUsedLib** provides a global (fltused) that needs to be defined anywhere floating point operations +are used. + + DfciV1SupportLib|DfciPkg/Library/DfciV1SupportLibNull/DfciV1SupportLibNull.inf + FltUsedLib|MdePkg/Library/FltUsedLib/FltUsedLib.inf + +### Library instances which understand the MsXml Settings Schema + +**DfciXmlSettingSchemaSupportLib** supports the xml schema used to store/define settings in +[DFCI](#what-is-dfci). + +**DfciXmlPermissionSchemaSupportLib** supports the xml format used to store permissions. More information +on DFCI Permissions can be found +[here](https://microsoft.github.io/mu/dyn/mu_plus/DfciPkg/Docs/Internals/DfciInternals/#permission-packet-formats). + +**DfciXmlDeviceIdSchemaSupportLib** and **DfciXmlIdentitySchemaSupportLib** support the xml format used +to store Device Identities.More info on the DFCI Identity Manager can be found +[here](https://microsoft.github.io/mu/dyn/mu_plus/DfciPkg/Docs/Internals/DfciInternals/#identity-manager) + + DfciXmlSettingSchemaSupportLib|DfciPkg/Library/DfciXmlSettingSchemaSupportLib/DfciXmlSettingSchemaSupportLib.inf + DfciXmlPermissionSchemaSupportLib|DfciPkg/Library/DfciXmlPermissionSchemaSupportLib/DfciXmlPermissionSchemaSupportLib.inf + DfciXmlDeviceIdSchemaSupportLib|DfciPkg/Library/DfciXmlDeviceIdSchemaSupportLib/DfciXmlDeviceIdSchemaSupportLib.inf + DfciXmlIdentitySchemaSupportLib|DfciPkg/Library/DfciXmlIdentitySchemaSupportLib/DfciXmlIdentitySchemaSupportLib.inf + +### Support for Zero Touch + +The term Zero Touch is used in [DFCI](#what-is-dfci) to describe managing device settings remotely. +**ZeroTouchSettingsLib** is a library instance for ZeroTouch to support enabling, display, +and deleting the Zero Touch Certificate. + +**SafeIntLib** is a simple integer mathematics library which guards against +[integer overflow](https://en.wikipedia.org/wiki/Integer_overflow). + +**BmpSupportLib** supports the use of [bitmap](https://en.wikipedia.org/wiki/BMP_file_format) files. + + ZeroTouchSettingsLib|ZeroTouchPkg/Library/ZeroTouchSettings/ZeroTouchSettings.inf + SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf + BmpSupportLib|MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSupportLib.inf + +### [NULL](#what-are-null-libs?) library for displaying device state + +**DisplayDeviceStateLib** usually supplies a function to display all active device states. This NULL +implementation satisfies dependencies on this function, but no non-null +version of this lib exists in Project Mu. + + DisplayDeviceStateLib|MsGraphicsPkg/Library/DisplayDeviceStateLibNull/DisplayDeviceStateLibNull.inf + +### Libraries supporting boot graphics + +**BootGraphicsLib** is used by +[BDS](https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#BDS_-_Boot_Device_Select) to +draw and the main boot graphics to the screen. In the case of Microsoft Surface products, this is +usually the Windows logo. + +**BootGraphicsProviderLib** enables the retrieval of the boot graphics used by BootGraphicsLib from +a Firmware Volume. + + BootGraphicsLib|MsGraphicsPkg/Library/BootGraphicsLib/BootGraphicsLib.inf + BootGraphicsProviderLib|OemPkg/Library/BootGraphicsProviderLib/BootGraphicsProviderLib.inf + +### Support libary for MS_UI_THEME + +The MS_UI_THEME is the theme used by our FrontPage. **MsUiThemeCopyLib** is used by the graphics package to +copy the stored theme into a buffer. + + MsUiThemeCopyLib|MsGraphicsPkg/Library/MsUiThemeCopyLib/MsUiThemeCopyLib.inf + +### Version Support Library + +**MuUefiVersionLib** is a simple library which returns the current UEFI version. + + MuUefiVersionLib|OemPkg/Library/MuUefiVersionLib/MuUefiVersionLib.inf + +### Thermal Support + +This [NULL](#what-are-null-libs?) implementation of the **ThermalServicesLib** satisfies a dependency from +[DeviceBootManagerlib](#device-specific-boot-actions-supporting-platformbootmanagerlib). Because there +is no universal API for fetching thermal state, ThermalServicesLib requires a platform specific +implementation to function. + + ThermalServicesLib|PcBdsPkg/Library/ThermalServicesLibNull/ThermalServicesLibNull.inf + +### Platform power services + +Note that these are both [NULL](#what-are-null-libs?) implementations. + +**PowerServicesLib** supports Platforms that don't have a battery. **MsPlatformPowerCheckLib** allows +platform code to configure CPU power limits. + + PowerServicesLib|PcBdsPkg/Library/PowerServicesLibNull/PowerServicesLibNull.inf + MsPlatformPowerCheckLib|PcBdsPkg/Library/MsPlatformPowerCheckLibNull/MsPlatformPowerCheckLibNull.inf + +### Console Message Library + +**ConsoleMsgLib** offers functionality to display platform specific debug messages. Platforms are responsible +for implementing this interface (this is a [NULL](#what-are-null-libs?) implementation) + + ConsoleMsgLib|PcBdsPkg/Library/ConsoleMsgLibNull/ConsoleMsgLibNull.inf + +### Console Configuration + +**GraphicsConsoleHelperLib** enables the setting of the graphics console resolution to known values (ex. native +resolution, low resolution, etc.). + + GraphicsConsoleHelperLib|PcBdsPkg/Library/GraphicsConsoleHelperLib/GraphicsConsoleHelper.inf + +### Device State Support + +**DeviceStateLib** is a simple interface for getting and setting the device state (ex. Manufacturing Mode, +Unit Test Mode, etc.). **DisplayDeviceStateLib** uses color bards to display device states during boot. +For example, the following color bar displayed at the top of the screen implies Secure Boot is disabled + +![Colorbar](colorbar_mu.PNG) + + DeviceStateLib|MsCorePkg/Library/DeviceStateLib/DeviceStateLib.inf + DisplayDeviceStateLib|MsGraphicsPkg/Library/ColorBarDisplayDeviceStateLib/ColorBarDisplayDeviceStateLib.inf + +### Device specific boot actions supporting PlatformBootManagerLib + +**DeviceBootManagerLib** provides extensions for BdsDxe which is responsible for producing the protocol +gEfiBdsArchProtocolGuid which is used to transition between +[DXE](https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#DXE_-_Driver_Execution_Environment) and +[BDS](https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#BDS_-_Boot_Device_Select) phases. + + DeviceBootManagerLib|PcBdsPkg/Library/DeviceBootManagerLib/DeviceBootManagerLib.inf + +### Rectangle Primitives Library + +**UiRectangleLib** enables the drawing of rectangles with different fills and borders. + + UiRectangleLib|MsGraphicsPkg/Library/BaseUiRectangleLib/BaseUiRectangleLib.inf + +### Boot Management + +**MsAltBootLib** sets and gets the alternate boot variable used to specify when the user wants to boot from +a USB or other device. + +**MsBootOptionsLib** extends BdsDxe to allow booting from specific storage devices or to the shell. + + MsAltBootLib|OemPkg/Library/MsAltBootLib/MsAltBootLib.inf + MsBootOptionsLib|PcBdsPkg/Library/MsBootOptionsLib/MsBootOptionsLib.inf + +### Color Support + +**MsColorTableLib** is a simple library of colors + + MsColorTableLib|MsGraphicsPkg/Library/MsColorTableLib/MsColorTableLib.inf + +### Networking Support + +**MsNetworkDependencyLib** is used by the boot manager to start the networking stack. + + MsNetworkDependencyLib|PcBdsPkg/Library/MsNetworkDependencyLib/MsNetworkDependencyLib.inf + +### Library to access reboot reason + +**MsNVBootReasonLib** provides an interface for retrieving the reboot reason (ex. bootfail) from non-volatile variable storage. + + MsNVBootReasonLib|OemPkg/Library/MsNVBootReasonLib/MsNVBootReasonLib.inf + +### Math Library + +**MathLib** provides an architecture agnostic math library offering reasonable approximations for various +functions in software. + + MathLib|MsCorePkg/Library/MathLib/MathLib.inf + +### System Boot Graphics Support + +**BootGraphicsLib** is intended only to be used by +[BDS](https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#BDS_-_Boot_Device_Select) +to draw the main boot graphics on the screen. (ex. the Microsoft logo). + +**BootGraphicsProviderLib** uses PCDs to retrieve BMP files from firmware volumes. + + BootGraphicsLib|MsGraphicsPkg/Library/BootGraphicsLib/BootGraphicsLib.inf + BootGraphicsProviderLib|OemPkg/Library/BootGraphicsProviderLib/BootGraphicsProviderLib.inf + +### Boot Manager Settings Access + +**MsBootManagerSettingsLib** provides get and set access for boot manager settings. + + MsBootManagerSettingsLib|PcBdsPkg/Library/MsBootManagerSettingsDxeLib/MsBootManagerSettingsDxeLib.inf + +### Simple Window Manager Dialogs + +**SwmDialogsLib** enables the display of dialog boxes such as a password input box. + + SwmDialogsLib|MsGraphicsPkg/Library/SwmDialogsLib/SwmDialogs.inf + +### Platform Specific Boot Policy + +**MsBootPolicyLib** implements the desired boot behavior when no UEFI boot options are present (or they failed) +and a alternate boot has been requested (ex. booting from USB). + + MsBootPolicyLib|OemPkg/Library/MsBootPolicyLib/MsBootPolicyLib.inf + +### UI Support + +**MsUiThemeLib** Supplies the theme for this platform to the UEFI settings UI. **UIToolKitLib** initializes +toolkit required for UI display. + + MsUiThemeLib|MsGraphicsPkg/Library/MsUiThemeLib/Dxe/MsUiThemeLib.inf + UIToolKitLib|MsGraphicsPkg/Library/SimpleUIToolKit/SimpleUIToolKit.inf + +### Security Support + +**ResetUtilityLib** contains various helper functions for resetting the system. **BaseBinSecurityLib** is +a [NULL](#what-are-null-libs?) implementation of a library for initializing security cookies. +**SecurityLockAuditLib** is another NULL implementation to satisfy compilation dependencies. The implemented +version supplies necessary functions for logging hardware and software security locks. + + ResetUtilityLib|MdeModulePkg/Library/ResetUtilityLib/ResetUtilityLib.inf + BaseBinSecurityLib|MdePkg/Library/BaseBinSecurityLibNull/BaseBinSecurityLibNull.inf + SecurityLockAuditLib|MdeModulePkg/Library/SecurityLockAuditLibNull/SecurityLockAuditLibNull.inf + +## PCDs included + +Set to TRUE so Console In (ConIn. ex. keyboard) is only connected once a console input is requested +(ex. when a device is plugged). + + gEfiMdeModulePkgTokenSpaceGuid.PcdConInConnectOnDemand|TRUE + +Sets maximum printable number of characters to 16000 + + gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|16000 + +Used to control the profiles available in the shell. 0x1f sets all profiles to available. + + gEfiShellPkgTokenSpaceGuid.PcdShellProfileMask|0x1f # All profiles + +If TRUE, MsUiTheme is built in +[DXE](https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#DXE_-_Driver_Execution_Environment). +This should be TRUE for platforms that don't have a PPI +([PEI](https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#PEI_-_Pre-EFI_Initialization) +module to PEI module Interface). Otherwise, the theme will be generated in PEI and it will be located +on a HOB. + + gMsGraphicsPkgTokenSpaceGuid.PcdUiThemeInDxe|TRUE + +If TRUE, the +[Boot Manager](https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/boot-and-uefi#understanding-the-windows-boot-manager) +will be in the boot order list. + + gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerInBootOrder|TRUE + +If TRUE, the +[BDS](https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#BDS_-_Boot_Device_Select) +supports Platform Recovery + + gEfiMdeModulePkgTokenSpaceGuid.PcdPlatformRecoverySupport|FALSE + +Set to the guid associated with the Mu Frontpage. + + gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x8A, 0x70, 0x42, 0x40, 0x2D, 0x0F, 0x23, 0x48, 0xAC, 0x60, 0x0D, 0x77, 0xB3, 0x11, 0x18, 0x89 } + +## Components + +Spoofs button press to automatically boot to FrontPage. + + OemPkg/FrontpageButtonsVolumeUp/FrontpageButtonsVolumeUp.inf + +Application that presents and manages FrontPage. + + OemPkg/FrontPage/FrontPage.inf + +Application that presents & manages the Boot Menu Setup on Front Page. + + OemPkg/BootMenu/BootMenu.inf + +Enables MsBootPolicy. See the [Platform Specific Boot Policy Library](#platform-specific-boot-policy) + + PcBdsPkg/MsBootPolicy/MsBootPolicy.inf + +A module which produces Boot Manager Policy protocol. + + MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxe.inf + +A regular expression library to support Remote/IT/Admin Settings such as [DFCI](#what-is-dfci). + + MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.inf + +Main component of [DFCI](#what-is-dfci) which manages and enforces all DFCI settings + + DfciPkg/SettingsManager/SettingsManagerDxe.inf { + # Platform should add all it settings libs here + + NULL|ZeroTouchPkg/Library/ZeroTouchSettings/ZeroTouchSettings.inf + NULL|DfciPkg/Library/DfciPasswordProvider/DfciPasswordProvider.inf + NULL|DfciPkg/Library/DfciSettingsLib/DfciSettingsLib.inf + DfciSettingPermissionLib|DfciPkg/Library/DfciSettingPermissionLib/DfciSettingPermissionLib.inf + NULL|PcBdsPkg/Library/MsBootManagerSettingsDxeLib/MsBootManagerSettingsDxeLib.inf + + gDfciPkgTokenSpaceGuid.PcdSettingsManagerInstallProvider|TRUE + } + +AuthManager provides authentication for [DFCI](#what-is-dfci). + + DfciPkg/IdentityAndAuthManager/IdentityAndAuthManagerDxe.inf + +Processes ingoing and outgoing [DFCI](#what-is-dfci) settings requests + + DfciPkg/DfciManager/DfciManager.inf + +Manages windows and fonts to be drawn by the rendering engine + + MsGraphicsPkg/SimpleWindowManagerDxe/SimpleWindowManagerDxe.inf + +Produces EfiGraphicsOutputProtocol to draw graphics to the screen + + MsGraphicsPkg/RenderingEngineDxe/RenderingEngineDxe.inf + +Finds and takes ownership of gEfiGraphicsOutputProtocolGuid so RenderingEngine can use it by uninstalling +it on its current handle and reinstalling it on a new one. + + MsGraphicsPkg/GopOverrideDxe/GopOverrideDxe.inf + +Driver for On Screen Keyboard. + + MsGraphicsPkg/OnScreenKeyboardDxe/OnScreenKeyboardDxe.inf + +Installs protocol to share the UI theme. + + MsGraphicsPkg/MsUiTheme/Dxe/MsUiThemeProtocol.inf + +Produces gEdkiiFormDisplayEngineProtocolGuid protocol. Handles input, displays strings + + MsGraphicsPkg/DisplayEngineDxe/DisplayEngineDxe.inf + +Enables the Shell + + ShellPkg/Application/Shell/Shell.inf { + + NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf + NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf + NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellNetwork2CommandsLib/UefiShellNetwork2CommandsLib.inf + + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE + } diff --git a/Docs/Frontpage_Includes/Frontpage_FDF_Include.md b/Docs/Frontpage_Includes/Frontpage_FDF_Include.md index 929695f..7a019a5 100644 --- a/Docs/Frontpage_Includes/Frontpage_FDF_Include.md +++ b/Docs/Frontpage_Includes/Frontpage_FDF_Include.md @@ -1,127 +1,127 @@ -# FDF Include File in Detail - -This readme aims to describe FrontpageDsc.inc in detail, providing details and justification for -the libraries and components included for Frontpage. - -## Preliminaries - -### What is an FDF File - -The .fdf filetype is an EDK2 Platform Description file format. The FDF file is used to describe the content and -layout of binary images. It is used in conjunction with an EDK2 DSC file to generate bootable images, -option ROM images, and update capsules for bootable images that comply with the UEFI specifications. To -learn more about FDF files, look at the -[specification](https://edk2-docs.gitbook.io/edk-ii-fdf-specification/) -on the tianocore-docs github. - -### What is an INF File - -The .inf filetype is an EDK2 Platform Description file format. The INF file describes properties of a module, -how it is coded, what it provides, what it depends on, architecture specific items, features, etc. regarding -the module. To learn more about INF files, look at the -[specification](https://edk2-docs.gitbook.io/edk-ii-inf-specification/) -on the tianocore-docs github. - -### How do I Include an FDF File - -This file will be included in the DSC file for the platform being built. The syntax for including a file -is: - - !include path/to/fdf/inc/file - -### What is DFCI - -From the [feature document](https://microsoft.github.io/mu/dyn/mu_plus/DfciPkg/Docs/Dfci_Feature/): -*The Device Firmware Configuration Interface (DFCI) brings new levels of security and usability to -PC configuration management. It is a new feature of UEFI that enables secure programmatic configuration -of hardware settings that are typically configured within a BIOS menu.* - -## FDF Breakdown - -This first line is a comment simply alerting the dev to include this file at some point under the -[FV.FvMain] section of the platform FDF file. - - # Continuation of [FV.FvMain] - -Finds and takes ownership of gEfiGraphicsOutputProtocolGuid so RenderingEngine can use it by uninstalling -it on its current handle and reinstalling it on a new one. - - INF MsGraphicsPkg/GopOverrideDxe/GopOverrideDxe.inf - -AuthManager provides authentication for [DFCI](#what-is-dfci). - - INF DfciPkg/IdentityAndAuthManager/IdentityAndAuthManagerDxe.inf - -The main component of [DFCI](#what-is-dfci) which manages and enforces all DFCI settings - - INF DfciPkg/SettingsManager/SettingsManagerDxe.inf - -Installs protocol to share the UI theme. - - INF MsGraphicsPkg/MsUiTheme/Dxe/MsUiThemeProtocol.inf - -Produces EfiGraphicsOutputProtocol to draw graphics to the screen - - INF MsGraphicsPkg/RenderingEngineDxe/RenderingEngineDxe.inf - -Produces gEdkiiFormDisplayEngineProtocolGuid protocol which handles input and displays strings - - INF MsGraphicsPkg/DisplayEngineDxe/DisplayEngineDxe.inf - -Application that presents & manages the Boot Menu Setup on Front Page. - - INF OemPkg/BootMenu/BootMenu.inf - -Application that presents and manages FrontPage. - - INF OemPkg/FrontPage/FrontPage.inf - -Enables MsBootPolicy which implements the desired boot behavior when no UEFI boot options are present (or they -failed) and a alternate boot has been requested (ex. booting from USB). - - INF PcBdsPkg/MsBootPolicy/MsBootPolicy.inf - -A module which produces Boot Manager Policy protocol. - - INF MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxe.inf - -A regular expression library to support Remote/IT/Admin Settings such as [DFCI](#what-is-dfci). - - INF MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.inf - -Processes ingoing and outgoing [DFCI](#what-is-dfci) settings requests - - INF DfciPkg/DfciManager/DfciManager.inf - -Driver for On Screen Keyboard. - - INF MsGraphicsPkg/OnScreenKeyboardDxe/OnScreenKeyboardDxe.inf - -Spoofs button press to automatically boot to FrontPage. - - INF OemPkg/FrontpageButtonsVolumeUp/FrontpageButtonsVolumeUp.inf - -Manages windows and fonts to be drawn by the rendering engine - - INF MsGraphicsPkg/SimpleWindowManagerDxe/SimpleWindowManagerDxe.inf - -This final bit places the bmp files and shell.efi file within this firmware volume so they can be -accessed by UEFI drivers. - - FILE APPLICATION=PCD(gPcBdsPkgTokenSpaceGuid.PcdShellFile) { - SECTION PE32=$(OUTPUT_DIRECTORY)/$(TARGET)_$(TOOL_CHAIN_TAG)/AARCH64/Shell.efi - SECTION UI= "EdkShell" - } - FILE FREEFORM = PCD(gOemPkgTokenSpaceGuid.PcdLogoFile) { - SECTION RAW = OemPkg/FrontPage/Resources/BootLogo.bmp - SECTION UI = "Logo" - } - FILE FREEFORM = PCD(gOemPkgTokenSpaceGuid.PcdFrontPageLogoFile) { - SECTION RAW = OemPkg/FrontPage/Resources/FrontpageLogo.bmp - } - FILE FREEFORM = PCD(gOemPkgTokenSpaceGuid.PcdLowBatteryFile) { - SECTION RAW = OemPkg/FrontPage/Resources/LBAT.bmp - } - FILE FREEFORM = PCD(gOemPkgTokenSpaceGuid.PcdThermalFile) { - SECTION RAW = OemPkg/FrontPage/Resources/THOT.bmp - } +# FDF Include File in Detail + +This readme aims to describe FrontpageDsc.inc in detail, providing details and justification for +the libraries and components included for Frontpage. + +## Preliminaries + +### What is an FDF File + +The .fdf filetype is an EDK2 Platform Description file format. The FDF file is used to describe the content and +layout of binary images. It is used in conjunction with an EDK2 DSC file to generate bootable images, +option ROM images, and update capsules for bootable images that comply with the UEFI specifications. To +learn more about FDF files, look at the +[specification](https://edk2-docs.gitbook.io/edk-ii-fdf-specification/) +on the tianocore-docs github. + +### What is an INF File + +The .inf filetype is an EDK2 Platform Description file format. The INF file describes properties of a module, +how it is coded, what it provides, what it depends on, architecture specific items, features, etc. regarding +the module. To learn more about INF files, look at the +[specification](https://edk2-docs.gitbook.io/edk-ii-inf-specification/) +on the tianocore-docs github. + +### How do I Include an FDF File + +This file will be included in the DSC file for the platform being built. The syntax for including a file +is: + + !include path/to/fdf/inc/file + +### What is DFCI + +From the [feature document](https://microsoft.github.io/mu/dyn/mu_plus/DfciPkg/Docs/Dfci_Feature/): +*The Device Firmware Configuration Interface (DFCI) brings new levels of security and usability to +PC configuration management. It is a new feature of UEFI that enables secure programmatic configuration +of hardware settings that are typically configured within a BIOS menu.* + +## FDF Breakdown + +This first line is a comment simply alerting the dev to include this file at some point under the +[FV.FvMain] section of the platform FDF file. + + # Continuation of [FV.FvMain] + +Finds and takes ownership of gEfiGraphicsOutputProtocolGuid so RenderingEngine can use it by uninstalling +it on its current handle and reinstalling it on a new one. + + INF MsGraphicsPkg/GopOverrideDxe/GopOverrideDxe.inf + +AuthManager provides authentication for [DFCI](#what-is-dfci). + + INF DfciPkg/IdentityAndAuthManager/IdentityAndAuthManagerDxe.inf + +The main component of [DFCI](#what-is-dfci) which manages and enforces all DFCI settings + + INF DfciPkg/SettingsManager/SettingsManagerDxe.inf + +Installs protocol to share the UI theme. + + INF MsGraphicsPkg/MsUiTheme/Dxe/MsUiThemeProtocol.inf + +Produces EfiGraphicsOutputProtocol to draw graphics to the screen + + INF MsGraphicsPkg/RenderingEngineDxe/RenderingEngineDxe.inf + +Produces gEdkiiFormDisplayEngineProtocolGuid protocol which handles input and displays strings + + INF MsGraphicsPkg/DisplayEngineDxe/DisplayEngineDxe.inf + +Application that presents & manages the Boot Menu Setup on Front Page. + + INF OemPkg/BootMenu/BootMenu.inf + +Application that presents and manages FrontPage. + + INF OemPkg/FrontPage/FrontPage.inf + +Enables MsBootPolicy which implements the desired boot behavior when no UEFI boot options are present (or they +failed) and a alternate boot has been requested (ex. booting from USB). + + INF PcBdsPkg/MsBootPolicy/MsBootPolicy.inf + +A module which produces Boot Manager Policy protocol. + + INF MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxe.inf + +A regular expression library to support Remote/IT/Admin Settings such as [DFCI](#what-is-dfci). + + INF MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.inf + +Processes ingoing and outgoing [DFCI](#what-is-dfci) settings requests + + INF DfciPkg/DfciManager/DfciManager.inf + +Driver for On Screen Keyboard. + + INF MsGraphicsPkg/OnScreenKeyboardDxe/OnScreenKeyboardDxe.inf + +Spoofs button press to automatically boot to FrontPage. + + INF OemPkg/FrontpageButtonsVolumeUp/FrontpageButtonsVolumeUp.inf + +Manages windows and fonts to be drawn by the rendering engine + + INF MsGraphicsPkg/SimpleWindowManagerDxe/SimpleWindowManagerDxe.inf + +This final bit places the bmp files and shell.efi file within this firmware volume so they can be +accessed by UEFI drivers. + + FILE APPLICATION=PCD(gPcBdsPkgTokenSpaceGuid.PcdShellFile) { + SECTION PE32=$(OUTPUT_DIRECTORY)/$(TARGET)_$(TOOL_CHAIN_TAG)/AARCH64/Shell.efi + SECTION UI= "EdkShell" + } + FILE FREEFORM = PCD(gOemPkgTokenSpaceGuid.PcdLogoFile) { + SECTION RAW = OemPkg/FrontPage/Resources/BootLogo.bmp + SECTION UI = "Logo" + } + FILE FREEFORM = PCD(gOemPkgTokenSpaceGuid.PcdFrontPageLogoFile) { + SECTION RAW = OemPkg/FrontPage/Resources/FrontpageLogo.bmp + } + FILE FREEFORM = PCD(gOemPkgTokenSpaceGuid.PcdLowBatteryFile) { + SECTION RAW = OemPkg/FrontPage/Resources/LBAT.bmp + } + FILE FREEFORM = PCD(gOemPkgTokenSpaceGuid.PcdThermalFile) { + SECTION RAW = OemPkg/FrontPage/Resources/THOT.bmp + } diff --git a/Docs/OemPkg.md b/Docs/OemPkg.md index c5e5da0..f28d4f6 100644 --- a/Docs/OemPkg.md +++ b/Docs/OemPkg.md @@ -1,141 +1,141 @@ -# OemPkg - -OemPkg contains the logic required to use Project Mu. Though this package should be bootable with some -extra care from a developer, the code should be fully tailored to meet the needs of the product. Below is -a short summary of each piece to the Project Mu puzzle to help jump-start the customization process. - -## FrontPage - -![FrontPage emulated through QEMU](q35_mu.gif) - -FrontPage is Project Mu's UEFI landing page. From here, the user can access items like system -information, boot menu, and -[DFCI](https://microsoft.github.io/mu/dyn/mu_plus/DfciPkg/Docs/Dfci_Feature/) management -settings. There's a significant amount of logic contained within. - -**FrontPage.c** is the actual implementation of the FrontPage. It includes all the logic required to -call, update, and populate the FrontPage with system information. Adding or removing elements from the -FrontPage can be done by editing mFormMap. - -**FrontPageConfigAccess.c** implements trivial versions of RouteConfig and ExtractConfig to satisfy -dependencies. - -**FrontPageStrings.uni** contains all static strings displayed on the UEFI FrontPage. - -**FrontPageUi.c** handles updates to the FrontPage UI including updates to the current page and info/popup -boxes. - -**FrontPageVfr.Vfr** A VFR (Visual Forms Representation) file defines the layout of a UI and, in this case, -FrontPage. **FrontPageVfr.h** contains guid definitions used in VFR files. - -**String.c** contains the logic for fetching strings using HII (Human Interface Infrastructure) protocols. -HII is detailed in the [UEFI Spec v2.8](https://uefi.org/sites/default/files/resources/UEFI_Spec_2_8_final.pdf) -on page 1731. - -## FrontpageButtonsVolumeUp - -By default, booting to UEFI requires holding down the volume up (or equivalent) button on the device. -It's unlikely that the volume up button will be appropriate or applicable to most devices, so it's -recommended to alter the trigger for booting to UEFI. This module simulates holding down the volume -up button on every boot so the UEFI FrontPage is loaded every boot. - -## BootMenu - -The BootMenu on the UEFI FrontPage is under the *Boot configuration* tab. It defines the boot order -for the device and advanced options which can potentially be managed through -[DFCI](https://microsoft.github.io/mu/dyn/mu_plus/DfciPkg/Docs/Dfci_Feature/). - -**BootMenu.c** contains all logic required by the BootMenu including changing settings (assuming they -are not locked through DFCI) and rebuilding the boot order. - -**BootMenuStrings.uni** contains all static strings displayed on the BootMenu. - -**BootMenuVfr.Vfr** defines the layout of the BootMenu UI. **BootMenu.h** contains guid definitions -used in the VFR file. - -## DeviceStatePei - -This module sets the Device State bits in the -[PEI](https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#PEI_-_Pre-EFI_Initialization) -phase so they are available prior to display in the -[DXE](https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#DXE_-_Driver_Execution_Environment) -phase. Possible Device States include Manufacturing Mode Enabled/Disabled, Unit Test Mode, Secure -Boot Enabled/Disabled, etc. - -## Include(s) - -As is standard across [EDK2](https://github.com/tianocore/edk2), the Include/ directory contains header -files for functionality under the Library/ directory (not to be confused with Include/Library/) and is -available for inclusion in other modules. - -**MsNVBootReason.h** provides an interface for retrieving the reboot reason (ex. bootfail) from -non-volatile variable storage. - -**PasswordStoreVariable.h** defines the GUID and variable names for a variable-backed PasswordStore. - -**PasswordPolicyLib.h** contains the interface for storing and hashing an administrator password. - -**ButtonServices.h** is the header for [FrontpageButtonsVolumeUp.c](#FrontpageButtonsVolumeUp) - -**MsFrontPageAuthTokenProtocol.h** is required to access the authentication token generated when -FrontPage is launched. This token is used in all FrontPage applications to retrieve data from the -settings provider. - -**FrontPageSettings.h** contains some variables correlating with settings on FrontPage. - -## Library - -As is standard across [EDK2](https://github.com/tianocore/edk2), the Library/ directory contains actual -implementations of functionality provided/required by this module. - -**BootGraphicsProviderLib** enables the retrieval of the boot graphics used by BootGraphicsLib from -a Firmware Volume. - -**DfciDeviceIdSupportLib** provides access to platform data that becomes the DFCI Device ID which include -the manufacturer name, product name, and serial number. Device IDs are used to target devices with -DFCI settings management. - -**DfciGroupLib** allows settings managers to keep separate configurations depending upon the devices -group membership. More on DfciGroupLib can be found -[here](https://microsoft.github.io/mu/dyn/mu_plus/DfciPkg/Docs/PlatformIntegration/DfciGroups/#dfcigrouplib). - -**DfciUiSupportLib** allows DFCI to communicate with the user during DFCI initialization, enrollment, -or to indicate a non secure environment is available. - -**MsAltBootLib** sets and gets the alternate boot variable used to specify when the user wants to -boot from a USB or other device. - -**MsBootPolicyLib** implements the desired boot behavior when no UEFI boot options are present (or -they failed) and a alternate boot has been requested (ex. booting from USB). - -**MsSecureBootModeSettingLib** sets and gets the Secure Boot mode value during the -[DXE](https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#DXE_-_Driver_Execution_Environment) -phase of execution. - -**MsUefiVersionLib** simply provides platform version information. - -**PasswordPolicyLib** contains the logic for storing and hashing an administrator password. - -**PasswordPolicyLibNull** is the NULL version of PasswordPolicyLib used when the actual functionality -is unnecessary but some other component requires the library definition to successfully build. - -**PasswordStoreLib** manages storage location for the platform administrator password. - -**PlatformKeyLibNull** is the NULL implementation of PlatformKeyLib to satisfy dependencies. - -## Override - -The Override/ directory contains overrides for EDK2 components. These overrides are sometimes required -for things like bug fixes, functionality addition and removal. In this case, the only override is for -**BootManagerPolicyDxe** to preserve some functionality of the original in case it is changed in the -EDK2 upstream. - -## Others - -.dec and .dsc files are required by the build process for any package in EDK2, hence the inclusion of -**OemPkg.dsc** and **OemPkg.dec**. The DSC file must define all libraries, components and/or modules -that will be processed by compiler tool chains, such as the GNU C compiler. The DEC file -consists of sections delineated by section tags enclosed within square brackets which are used to -generate AutoGen.c and AutoGen.h files for the EDK2 build infrastructure. For a more in-depth look -at DSC and DEC files, check out the [DSC specification](https://edk2-docs.gitbook.io/edk-ii-dsc-specification/) -and the [DEC specification](https://edk2-docs.gitbook.io/edk-ii-dec-specification/). +# OemPkg + +OemPkg contains the logic required to use Project Mu. Though this package should be bootable with some +extra care from a developer, the code should be fully tailored to meet the needs of the product. Below is +a short summary of each piece to the Project Mu puzzle to help jump-start the customization process. + +## FrontPage + +![FrontPage emulated through QEMU](q35_mu.gif) + +FrontPage is Project Mu's UEFI landing page. From here, the user can access items like system +information, boot menu, and +[DFCI](https://microsoft.github.io/mu/dyn/mu_plus/DfciPkg/Docs/Dfci_Feature/) management +settings. There's a significant amount of logic contained within. + +**FrontPage.c** is the actual implementation of the FrontPage. It includes all the logic required to +call, update, and populate the FrontPage with system information. Adding or removing elements from the +FrontPage can be done by editing mFormMap. + +**FrontPageConfigAccess.c** implements trivial versions of RouteConfig and ExtractConfig to satisfy +dependencies. + +**FrontPageStrings.uni** contains all static strings displayed on the UEFI FrontPage. + +**FrontPageUi.c** handles updates to the FrontPage UI including updates to the current page and info/popup +boxes. + +**FrontPageVfr.Vfr** A VFR (Visual Forms Representation) file defines the layout of a UI and, in this case, +FrontPage. **FrontPageVfr.h** contains guid definitions used in VFR files. + +**String.c** contains the logic for fetching strings using HII (Human Interface Infrastructure) protocols. +HII is detailed in the [UEFI Spec v2.8](https://uefi.org/sites/default/files/resources/UEFI_Spec_2_8_final.pdf) +on page 1731. + +## FrontpageButtonsVolumeUp + +By default, booting to UEFI requires holding down the volume up (or equivalent) button on the device. +It's unlikely that the volume up button will be appropriate or applicable to most devices, so it's +recommended to alter the trigger for booting to UEFI. This module simulates holding down the volume +up button on every boot so the UEFI FrontPage is loaded every boot. + +## BootMenu + +The BootMenu on the UEFI FrontPage is under the *Boot configuration* tab. It defines the boot order +for the device and advanced options which can potentially be managed through +[DFCI](https://microsoft.github.io/mu/dyn/mu_plus/DfciPkg/Docs/Dfci_Feature/). + +**BootMenu.c** contains all logic required by the BootMenu including changing settings (assuming they +are not locked through DFCI) and rebuilding the boot order. + +**BootMenuStrings.uni** contains all static strings displayed on the BootMenu. + +**BootMenuVfr.Vfr** defines the layout of the BootMenu UI. **BootMenu.h** contains guid definitions +used in the VFR file. + +## DeviceStatePei + +This module sets the Device State bits in the +[PEI](https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#PEI_-_Pre-EFI_Initialization) +phase so they are available prior to display in the +[DXE](https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#DXE_-_Driver_Execution_Environment) +phase. Possible Device States include Manufacturing Mode Enabled/Disabled, Unit Test Mode, Secure +Boot Enabled/Disabled, etc. + +## Include(s) + +As is standard across [EDK2](https://github.com/tianocore/edk2), the Include/ directory contains header +files for functionality under the Library/ directory (not to be confused with Include/Library/) and is +available for inclusion in other modules. + +**MsNVBootReason.h** provides an interface for retrieving the reboot reason (ex. bootfail) from +non-volatile variable storage. + +**PasswordStoreVariable.h** defines the GUID and variable names for a variable-backed PasswordStore. + +**PasswordPolicyLib.h** contains the interface for storing and hashing an administrator password. + +**ButtonServices.h** is the header for [FrontpageButtonsVolumeUp.c](#FrontpageButtonsVolumeUp) + +**MsFrontPageAuthTokenProtocol.h** is required to access the authentication token generated when +FrontPage is launched. This token is used in all FrontPage applications to retrieve data from the +settings provider. + +**FrontPageSettings.h** contains some variables correlating with settings on FrontPage. + +## Library + +As is standard across [EDK2](https://github.com/tianocore/edk2), the Library/ directory contains actual +implementations of functionality provided/required by this module. + +**BootGraphicsProviderLib** enables the retrieval of the boot graphics used by BootGraphicsLib from +a Firmware Volume. + +**DfciDeviceIdSupportLib** provides access to platform data that becomes the DFCI Device ID which include +the manufacturer name, product name, and serial number. Device IDs are used to target devices with +DFCI settings management. + +**DfciGroupLib** allows settings managers to keep separate configurations depending upon the devices +group membership. More on DfciGroupLib can be found +[here](https://microsoft.github.io/mu/dyn/mu_plus/DfciPkg/Docs/PlatformIntegration/DfciGroups/#dfcigrouplib). + +**DfciUiSupportLib** allows DFCI to communicate with the user during DFCI initialization, enrollment, +or to indicate a non secure environment is available. + +**MsAltBootLib** sets and gets the alternate boot variable used to specify when the user wants to +boot from a USB or other device. + +**MsBootPolicyLib** implements the desired boot behavior when no UEFI boot options are present (or +they failed) and a alternate boot has been requested (ex. booting from USB). + +**MsSecureBootModeSettingLib** sets and gets the Secure Boot mode value during the +[DXE](https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#DXE_-_Driver_Execution_Environment) +phase of execution. + +**MsUefiVersionLib** simply provides platform version information. + +**PasswordPolicyLib** contains the logic for storing and hashing an administrator password. + +**PasswordPolicyLibNull** is the NULL version of PasswordPolicyLib used when the actual functionality +is unnecessary but some other component requires the library definition to successfully build. + +**PasswordStoreLib** manages storage location for the platform administrator password. + +**PlatformKeyLibNull** is the NULL implementation of PlatformKeyLib to satisfy dependencies. + +## Override + +The Override/ directory contains overrides for EDK2 components. These overrides are sometimes required +for things like bug fixes, functionality addition and removal. In this case, the only override is for +**BootManagerPolicyDxe** to preserve some functionality of the original in case it is changed in the +EDK2 upstream. + +## Others + +.dec and .dsc files are required by the build process for any package in EDK2, hence the inclusion of +**OemPkg.dsc** and **OemPkg.dec**. The DSC file must define all libraries, components and/or modules +that will be processed by compiler tool chains, such as the GNU C compiler. The DEC file +consists of sections delineated by section tags enclosed within square brackets which are used to +generate AutoGen.c and AutoGen.h files for the EDK2 build infrastructure. For a more in-depth look +at DSC and DEC files, check out the [DSC specification](https://edk2-docs.gitbook.io/edk-ii-dsc-specification/) +and the [DEC specification](https://edk2-docs.gitbook.io/edk-ii-dec-specification/). diff --git a/Docs/Repo_Details.md b/Docs/Repo_Details.md index 22f47c2..a4ab0a1 100644 --- a/Docs/Repo_Details.md +++ b/Docs/Repo_Details.md @@ -1,78 +1,78 @@ -# Project Mu Oem Sample Repository - -??? info "Git Details" - Repository Url: {{mu_oem_sample.url}} - Branch: {{mu_oem_sample.branch}} - Commit: [{{mu_oem_sample.commit}}]({{mu_oem_sample.commitlink}}) - Commit Date: {{mu_oem_sample.date}} - -This repository is considered sample code for any entity building devices using Project Mu. It is -likely that any device manufacturer will want to customize the device behavior by changing the modules -in this package. - -* Numerous libraries to support UEFI Boot Device Selection phase (BDS) -* Firmware Version information -* UI App / "FrontPage" application support as well as example - -## More Info - -FrontpageDsc and FrontpageFdf that can be included so you don't have to unravel all of the libraries and -protocols that are required to get started with FrontPage. Includes contain comments for clarity, and -there is a more extensive explanation for each library in the Docs/Frontpage_Includes. - -Please see the Project Mu [docs](https://github.com/Microsoft/mu) for more information. - -This project has adopted the -[Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). - -For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or -contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. - -## Per Platform Libraries - -**NOTE:** Three libraries (MsPlatformDevicesLib, DfciDeviceIdSupportLib, PlatformThemeLib) will need -to be implemented per platform and included in the DSC file. An example can be found in the -[NXP iMX8 platform](https://github.com/ms-iot/MU_SILICON_NXP/tree/master/iMX8Pkg). - -## Issues - -Please open any issues in the Project Mu GitHub tracker. -[More Details](https://microsoft.github.io/mu/How/contributing/) - -## Contributing Code or Docs - -Please follow the general Project Mu Pull Request process. -[More Details](https://microsoft.github.io/mu/How/contributing/) - -* [Code Requirements](/DeveloperDocs/code_requirements) -* [Doc Requirements](/DeveloperDocs/doc_requirements) - -## PR-Gate Builds - -```cmd -pip install --upgrade -r requirements.txt -mu_build -c corebuild.mu.json -``` - -[![Build Status](https://dev.azure.com/projectmu/mu/_apis/build/status/mu_oem_sample%20PR%20gate)](https://dev.azure.com/projectmu/mu/_build/latest?definitionId=7) - -## Copyright & License - -Copyright (C) Microsoft Corporation SPDX-License-Identifier: BSD-2-Clause-Patent - -All rights reserved. Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this list of conditions and -the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the -following disclaimer in the documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED -WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED -TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. +# Project Mu Oem Sample Repository + +??? info "Git Details" + Repository Url: {{mu_oem_sample.url}} + Branch: {{mu_oem_sample.branch}} + Commit: [{{mu_oem_sample.commit}}]({{mu_oem_sample.commitlink}}) + Commit Date: {{mu_oem_sample.date}} + +This repository is considered sample code for any entity building devices using Project Mu. It is +likely that any device manufacturer will want to customize the device behavior by changing the modules +in this package. + +* Numerous libraries to support UEFI Boot Device Selection phase (BDS) +* Firmware Version information +* UI App / "FrontPage" application support as well as example + +## More Info + +FrontpageDsc and FrontpageFdf that can be included so you don't have to unravel all of the libraries and +protocols that are required to get started with FrontPage. Includes contain comments for clarity, and +there is a more extensive explanation for each library in the Docs/Frontpage_Includes. + +Please see the Project Mu [docs](https://github.com/Microsoft/mu) for more information. + +This project has adopted the +[Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). + +For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or +contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. + +## Per Platform Libraries + +**NOTE:** Three libraries (MsPlatformDevicesLib, DfciDeviceIdSupportLib, PlatformThemeLib) will need +to be implemented per platform and included in the DSC file. An example can be found in the +[NXP iMX8 platform](https://github.com/ms-iot/MU_SILICON_NXP/tree/master/iMX8Pkg). + +## Issues + +Please open any issues in the Project Mu GitHub tracker. +[More Details](https://microsoft.github.io/mu/How/contributing/) + +## Contributing Code or Docs + +Please follow the general Project Mu Pull Request process. +[More Details](https://microsoft.github.io/mu/How/contributing/) + +* [Code Requirements](/DeveloperDocs/code_requirements) +* [Doc Requirements](/DeveloperDocs/doc_requirements) + +## PR-Gate Builds + +```cmd +pip install --upgrade -r requirements.txt +mu_build -c corebuild.mu.json +``` + +[![Build Status](https://dev.azure.com/projectmu/mu/_apis/build/status/mu_oem_sample%20PR%20gate)](https://dev.azure.com/projectmu/mu/_build/latest?definitionId=7) + +## Copyright & License + +Copyright (C) Microsoft Corporation SPDX-License-Identifier: BSD-2-Clause-Patent + +All rights reserved. Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and +the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the +following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/FrontpageDsc.inc b/FrontpageDsc.inc index 8ce075c..1029a9a 100644 --- a/FrontpageDsc.inc +++ b/FrontpageDsc.inc @@ -1,288 +1,288 @@ - -[LibraryClasses.common] - # - # Libraries to support Shell - # - ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf - ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf - ShellCEntryLib|ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf - HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf - BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf - NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf - # - # Contains intrinsics for crypto operations - # - IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf - # - # contains NULL routines to support UI operations associated with DFCI. - # - DfciUiSupportLib|DfciPkg/Library/DfciUiSupportLibNull/DfciUiSupportLibNull.inf - # - # contains crypto support functions for the DFCI recovery feature. - # - DfciRecoveryLib|DfciPkg/Library/DfciRecoveryLib/DfciRecoveryLib.inf - # - # Contains openSSL library used by BaseCryptoLib - # - OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf - # - # Stubs functions that should contain base logic for querying, setting, and verifying user passwords. - # - DfciPasswordLib|DfciPkg/Library/DfciPasswordLibNull/DfciPasswordLibNull.inf - BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf - # - # Supports DFCI Groups. - # - DfciGroupLib|DfciPkg/Library/DfciGroupLibNull/DfciGroups.inf - XmlTreeQueryLib|XmlSupportPkg/Library/XmlTreeQueryLib/XmlTreeQueryLib.inf - XmlTreeLib|XmlSupportPkg/Library/XmlTreeLib/XmlTreeLib.inf - # - # Backwards compatibility with DFCI V1 functions. - # - DfciV1SupportLib|DfciPkg/Library/DfciV1SupportLibNull/DfciV1SupportLibNull.inf - FltUsedLib|MdePkg/Library/FltUsedLib/FltUsedLib.inf - # - # Library instance that understands the MsXml Settings Schema and providers helper functions - # - DfciXmlSettingSchemaSupportLib|DfciPkg/Library/DfciXmlSettingSchemaSupportLib/DfciXmlSettingSchemaSupportLib.inf - - # - # Library instance that understands the MsXml Permission Schema and providers helper functions - # - DfciXmlPermissionSchemaSupportLib|DfciPkg/Library/DfciXmlPermissionSchemaSupportLib/DfciXmlPermissionSchemaSupportLib.inf - - # - # Library instance that understands the MsXml Device Id Schema and providers helper functions - # - DfciXmlDeviceIdSchemaSupportLib|DfciPkg/Library/DfciXmlDeviceIdSchemaSupportLib/DfciXmlDeviceIdSchemaSupportLib.inf - - # - # Library instance that understands the MsXml Device Id Schema and providers helper functions - # - DfciXmlIdentitySchemaSupportLib|DfciPkg/Library/DfciXmlIdentitySchemaSupportLib/DfciXmlIdentitySchemaSupportLib.inf - - # - # Library instance that understands Zero Touch - # - ZeroTouchSettingsLib|ZeroTouchPkg/Library/ZeroTouchSettings/ZeroTouchSettings.inf - SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf - BmpSupportLib|MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSupportLib.inf - # - # Null library for displaying device state - # - DisplayDeviceStateLib|MsGraphicsPkg/Library/DisplayDeviceStateLibNull/DisplayDeviceStateLibNull.inf - # - # This library is for showing the main system boot graphics. - # - BootGraphicsLib|MsGraphicsPkg/Library/BootGraphicsLib/BootGraphicsLib.inf - # - # BootGraphicsProviderLib that uses PCDs and raw files in the firmware volumes - # - BootGraphicsProviderLib|OemPkg/Library/BootGraphicsProviderLib/BootGraphicsProviderLib.inf - # - # This library contains access functions for dealing with the copying of an MS_UI_THEME - # - MsUiThemeCopyLib|MsGraphicsPkg/Library/MsUiThemeCopyLib/MsUiThemeCopyLib.inf - # - # Library to provide platform version information - # - MuUefiVersionLib|OemPkg/Library/MuUefiVersionLib/MuUefiVersionLib.inf - # - # This is the Thermal Services Library that encapsulates the platform specific thermal information. - # - ThermalServicesLib|PcBdsPkg/Library/ThermalServicesLibNull/ThermalServicesLibNull.inf - # - # Null Power Services Library class to support Platforms that dont have battery - # - PowerServicesLib|PcBdsPkg/Library/PowerServicesLibNull/PowerServicesLibNull.inf - # - # Empty Platform Library of power check. - # - MsPlatformPowerCheckLib|PcBdsPkg/Library/MsPlatformPowerCheckLibNull/MsPlatformPowerCheckLibNull.inf - # - # Empty Console Message Library - # - ConsoleMsgLib|PcBdsPkg/Library/ConsoleMsgLibNull/ConsoleMsgLibNull.inf - # - # Library to help set the console to known points (low res, native res) - # - GraphicsConsoleHelperLib|PcBdsPkg/Library/GraphicsConsoleHelperLib/GraphicsConsoleHelper.inf - DeviceStateLib|MsCorePkg/Library/DeviceStateLib/DeviceStateLib.inf - # - # Device specific actions in support of PlatformBootManagerLib. - # Sort of a wrapper for MsPlatformDevicesLib, which needs to be written for each platform. - # - DeviceBootManagerLib|PcBdsPkg/Library/DeviceBootManagerLib/DeviceBootManagerLib.inf - # - # LIbrary to display the On screen notifications for the platform - # - UiRectangleLib|MsGraphicsPkg/Library/BaseUiRectangleLib/BaseUiRectangleLib.inf - # - # display the device state notifications for the platform using color bars - # - DisplayDeviceStateLib|MsGraphicsPkg/Library/ColorBarDisplayDeviceStateLib/ColorBarDisplayDeviceStateLib.inf - # - # interfaces with alternate boot variable - # - MsAltBootLib|OemPkg/Library/MsAltBootLib/MsAltBootLib.inf - # - # Library that is attached BdsDxe to implement Microsoft extensions to UefiBootManagerLib. - # - MsBootOptionsLib|PcBdsPkg/Library/MsBootOptionsLib/MsBootOptionsLib.inf - # - # A shared place for all colors used in this package - # - MsColorTableLib|MsGraphicsPkg/Library/MsColorTableLib/MsColorTableLib.inf - # - # Library that is attached to drivers that require networking. - # - MsNetworkDependencyLib|PcBdsPkg/Library/MsNetworkDependencyLib/MsNetworkDependencyLib.inf - # - # Library to provide interface on Reboot Reason non volatile varialbles - # - MsNVBootReasonLib|OemPkg/Library/MsNVBootReasonLib/MsNVBootReasonLib.inf - # - # An architecture agnostic math library providing reasonable approximations for various functions in software - # - MathLib|MsCorePkg/Library/MathLib/MathLib.inf - # - # This library is for showing the main system boot graphics. - # - BootGraphicsLib|MsGraphicsPkg/Library/BootGraphicsLib/BootGraphicsLib.inf - # - # Library to support Device disable Settings (get/set) - # - MsBootManagerSettingsLib|PcBdsPkg/Library/MsBootManagerSettingsDxeLib/MsBootManagerSettingsDxeLib.inf - # - # Library to provide Dialog Boxes in a Simple Window Manager environment. - # - SwmDialogsLib|MsGraphicsPkg/Library/SwmDialogsLib/SwmDialogs.inf - # - # BootGraphicsProviderLib that uses PCDs and raw files in the firmware volumes - # - BootGraphicsProviderLib|OemPkg/Library/BootGraphicsProviderLib/BootGraphicsProviderLib.inf - # - # Library that platform implemented to determine boot type - # - MsBootPolicyLib|OemPkg/Library/MsBootPolicyLib/MsBootPolicyLib.inf - BmpSupportLib|MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSupportLib.inf - # - # Supplies the theme for this platform to the UEFI settings UI - # - MsUiThemeLib|MsGraphicsPkg/Library/MsUiThemeLib/Dxe/MsUiThemeLib.inf - SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf - # - # Library for determining if Manufacturing mode should be enabled on this boot. - # This libray is what everyone should use to determine which mode we are in. - # It can be called from PEI or DXE. - # - UIToolKitLib|MsGraphicsPkg/Library/SimpleUIToolKit/SimpleUIToolKit.inf - ResetUtilityLib|MdeModulePkg/Library/ResetUtilityLib/ResetUtilityLib.inf - BaseBinSecurityLib|MdePkg/Library/BaseBinSecurityLibNull/BaseBinSecurityLibNull.inf - SecurityLockAuditLib|MdeModulePkg/Library/SecurityLockAuditLibNull/SecurityLockAuditLibNull.inf - -[PcdsFixedAtBuild.common] - # a PCD that controls the enumeration and connection of ConIn's. When true, ConIn is only connected once a console input is requests - gEfiMdeModulePkgTokenSpaceGuid.PcdConInConnectOnDemand|TRUE - -# Enable SHELL to build instead of just taking the binary - gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|16000 - gEfiShellPkgTokenSpaceGuid.PcdShellProfileMask|0x1f # All profiles - - gMsGraphicsPkgTokenSpaceGuid.PcdUiThemeInDxe|TRUE - gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerInBootOrder|TRUE - gEfiMdeModulePkgTokenSpaceGuid.PcdPlatformRecoverySupported|FALSE - # The GUID of Frontpage.inf from MU_OEM_SAMPLE - # 4042708A-0F2D-4823-AC60-0D77B3111889 - gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x8A, 0x70, 0x42, 0x40, 0x2D, 0x0F, 0x23, 0x48, 0xAC, 0x60, 0x0D, 0x77, 0xB3, 0x11, 0x18, 0x89 } - -[Components.AARCH64] - - # - # Spoofs button press to automatically boot to FrontPage. - # - OemPkg/FrontpageButtonsVolumeUp/FrontpageButtonsVolumeUp.inf - - # - # Application that presents and manages FrontPage. - # - OemPkg/FrontPage/FrontPage.inf - # Surface Boot Manager (Menu) application - # - # Application that presents & manages the Boot Menu Setup on Front Page. - # - OemPkg/BootMenu/BootMenu.inf - - PcBdsPkg/MsBootPolicy/MsBootPolicy.inf - - MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxe.inf - # - # Library to support Remote/IT/Admin Settings such as DFCI - # - MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.inf - # - # Main component of DFCI. Manages and enforces all DFCI settings. - # - DfciPkg/SettingsManager/SettingsManagerDxe.inf { - #Platform should add all it settings libs here - - NULL|ZeroTouchPkg/Library/ZeroTouchSettings/ZeroTouchSettings.inf - NULL|DfciPkg/Library/DfciSettingsLib/DfciSettingsLib.inf - DfciSettingPermissionLib|DfciPkg/Library/DfciSettingPermissionLib/DfciSettingPermissionLib.inf - NULL|PcBdsPkg/Library/MsBootManagerSettingsDxeLib/MsBootManagerSettingsDxeLib.inf - - gDfciPkgTokenSpaceGuid.PcdSettingsManagerInstallProvider|TRUE - } - # - # AuthManager provides authentication for DFCI. AuthManagerNull passes out a consistent token to allow the rest - # of FrontPage to be developed and tested while RngLib or other parts of the authentication process are being developed. - # - DfciPkg/AuthManagerNull/AuthManagerNull.inf - # - # Processes ingoing and outgoing DFCI settings requests. - # - DfciPkg/DfciManager/DfciManager.inf - # - # Manages windows and fonts to be drawn by the RenderingEngine. - # - MsGraphicsPkg/SimpleWindowManagerDxe/SimpleWindowManagerDxe.inf - # - # Produces EfiGraphicsOutputProtocol to draw graphics to the screen. - # - MsGraphicsPkg/RenderingEngineDxe/RenderingEngineDxe.inf - # - # Finds and takes ownership of gEfiGraphicsOutputProtocolGuid so RenderingEngine can use it. - # - MsGraphicsPkg/GopOverrideDxe/GopOverrideDxe.inf - # - # Driver for On Screen Keyboard. - # - MsGraphicsPkg/OnScreenKeyboardDxe/OnScreenKeyboardDxe.inf - # - # Installs protocol to share the UI theme. If PcdUiThemeInDxe, this will involve calling the PlatformThemeLib directly. - # Otherwise, the theme will have been generated in PEI and it will be located on a HOB. - # - MsGraphicsPkg/MsUiTheme/Dxe/MsUiThemeProtocol.inf - # - # Produces FORM DISPLAY ENGINE protocol. Handles input, displays strings. - # - MsGraphicsPkg/DisplayEngineDxe/DisplayEngineDxe.inf - - -####################################### -# Shell -####################################### - - ShellPkg/Application/Shell/Shell.inf { - - NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf - NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf - NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf - NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf - NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf - NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf - NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf - NULL|ShellPkg/Library/UefiShellNetwork2CommandsLib/UefiShellNetwork2CommandsLib.inf - - gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE - } + +[LibraryClasses.common] + # + # Libraries to support Shell + # + ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf + ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf + ShellCEntryLib|ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf + HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf + BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf + NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf + # + # Contains intrinsics for crypto operations + # + IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf + # + # contains NULL routines to support UI operations associated with DFCI. + # + DfciUiSupportLib|DfciPkg/Library/DfciUiSupportLibNull/DfciUiSupportLibNull.inf + # + # contains crypto support functions for the DFCI recovery feature. + # + DfciRecoveryLib|DfciPkg/Library/DfciRecoveryLib/DfciRecoveryLib.inf + # + # Contains openSSL library used by BaseCryptoLib + # + OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf + # + # Stubs functions that should contain base logic for querying, setting, and verifying user passwords. + # + DfciPasswordLib|DfciPkg/Library/DfciPasswordLibNull/DfciPasswordLibNull.inf + BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf + # + # Supports DFCI Groups. + # + DfciGroupLib|DfciPkg/Library/DfciGroupLibNull/DfciGroups.inf + XmlTreeQueryLib|XmlSupportPkg/Library/XmlTreeQueryLib/XmlTreeQueryLib.inf + XmlTreeLib|XmlSupportPkg/Library/XmlTreeLib/XmlTreeLib.inf + # + # Backwards compatibility with DFCI V1 functions. + # + DfciV1SupportLib|DfciPkg/Library/DfciV1SupportLibNull/DfciV1SupportLibNull.inf + FltUsedLib|MdePkg/Library/FltUsedLib/FltUsedLib.inf + # + # Library instance that understands the MsXml Settings Schema and providers helper functions + # + DfciXmlSettingSchemaSupportLib|DfciPkg/Library/DfciXmlSettingSchemaSupportLib/DfciXmlSettingSchemaSupportLib.inf + + # + # Library instance that understands the MsXml Permission Schema and providers helper functions + # + DfciXmlPermissionSchemaSupportLib|DfciPkg/Library/DfciXmlPermissionSchemaSupportLib/DfciXmlPermissionSchemaSupportLib.inf + + # + # Library instance that understands the MsXml Device Id Schema and providers helper functions + # + DfciXmlDeviceIdSchemaSupportLib|DfciPkg/Library/DfciXmlDeviceIdSchemaSupportLib/DfciXmlDeviceIdSchemaSupportLib.inf + + # + # Library instance that understands the MsXml Device Id Schema and providers helper functions + # + DfciXmlIdentitySchemaSupportLib|DfciPkg/Library/DfciXmlIdentitySchemaSupportLib/DfciXmlIdentitySchemaSupportLib.inf + + # + # Library instance that understands Zero Touch + # + ZeroTouchSettingsLib|ZeroTouchPkg/Library/ZeroTouchSettings/ZeroTouchSettings.inf + SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf + BmpSupportLib|MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSupportLib.inf + # + # Null library for displaying device state + # + DisplayDeviceStateLib|MsGraphicsPkg/Library/DisplayDeviceStateLibNull/DisplayDeviceStateLibNull.inf + # + # This library is for showing the main system boot graphics. + # + BootGraphicsLib|MsGraphicsPkg/Library/BootGraphicsLib/BootGraphicsLib.inf + # + # BootGraphicsProviderLib that uses PCDs and raw files in the firmware volumes + # + BootGraphicsProviderLib|OemPkg/Library/BootGraphicsProviderLib/BootGraphicsProviderLib.inf + # + # This library contains access functions for dealing with the copying of an MS_UI_THEME + # + MsUiThemeCopyLib|MsGraphicsPkg/Library/MsUiThemeCopyLib/MsUiThemeCopyLib.inf + # + # Library to provide platform version information + # + MuUefiVersionLib|OemPkg/Library/MuUefiVersionLib/MuUefiVersionLib.inf + # + # This is the Thermal Services Library that encapsulates the platform specific thermal information. + # + ThermalServicesLib|PcBdsPkg/Library/ThermalServicesLibNull/ThermalServicesLibNull.inf + # + # Null Power Services Library class to support Platforms that dont have battery + # + PowerServicesLib|PcBdsPkg/Library/PowerServicesLibNull/PowerServicesLibNull.inf + # + # Empty Platform Library of power check. + # + MsPlatformPowerCheckLib|PcBdsPkg/Library/MsPlatformPowerCheckLibNull/MsPlatformPowerCheckLibNull.inf + # + # Empty Console Message Library + # + ConsoleMsgLib|PcBdsPkg/Library/ConsoleMsgLibNull/ConsoleMsgLibNull.inf + # + # Library to help set the console to known points (low res, native res) + # + GraphicsConsoleHelperLib|PcBdsPkg/Library/GraphicsConsoleHelperLib/GraphicsConsoleHelper.inf + DeviceStateLib|MsCorePkg/Library/DeviceStateLib/DeviceStateLib.inf + # + # Device specific actions in support of PlatformBootManagerLib. + # Sort of a wrapper for MsPlatformDevicesLib, which needs to be written for each platform. + # + DeviceBootManagerLib|PcBdsPkg/Library/DeviceBootManagerLib/DeviceBootManagerLib.inf + # + # LIbrary to display the On screen notifications for the platform + # + UiRectangleLib|MsGraphicsPkg/Library/BaseUiRectangleLib/BaseUiRectangleLib.inf + # + # display the device state notifications for the platform using color bars + # + DisplayDeviceStateLib|MsGraphicsPkg/Library/ColorBarDisplayDeviceStateLib/ColorBarDisplayDeviceStateLib.inf + # + # interfaces with alternate boot variable + # + MsAltBootLib|OemPkg/Library/MsAltBootLib/MsAltBootLib.inf + # + # Library that is attached BdsDxe to implement Microsoft extensions to UefiBootManagerLib. + # + MsBootOptionsLib|PcBdsPkg/Library/MsBootOptionsLib/MsBootOptionsLib.inf + # + # A shared place for all colors used in this package + # + MsColorTableLib|MsGraphicsPkg/Library/MsColorTableLib/MsColorTableLib.inf + # + # Library that is attached to drivers that require networking. + # + MsNetworkDependencyLib|PcBdsPkg/Library/MsNetworkDependencyLib/MsNetworkDependencyLib.inf + # + # Library to provide interface on Reboot Reason non volatile varialbles + # + MsNVBootReasonLib|OemPkg/Library/MsNVBootReasonLib/MsNVBootReasonLib.inf + # + # An architecture agnostic math library providing reasonable approximations for various functions in software + # + MathLib|MsCorePkg/Library/MathLib/MathLib.inf + # + # This library is for showing the main system boot graphics. + # + BootGraphicsLib|MsGraphicsPkg/Library/BootGraphicsLib/BootGraphicsLib.inf + # + # Library to support Device disable Settings (get/set) + # + MsBootManagerSettingsLib|PcBdsPkg/Library/MsBootManagerSettingsDxeLib/MsBootManagerSettingsDxeLib.inf + # + # Library to provide Dialog Boxes in a Simple Window Manager environment. + # + SwmDialogsLib|MsGraphicsPkg/Library/SwmDialogsLib/SwmDialogs.inf + # + # BootGraphicsProviderLib that uses PCDs and raw files in the firmware volumes + # + BootGraphicsProviderLib|OemPkg/Library/BootGraphicsProviderLib/BootGraphicsProviderLib.inf + # + # Library that platform implemented to determine boot type + # + MsBootPolicyLib|OemPkg/Library/MsBootPolicyLib/MsBootPolicyLib.inf + BmpSupportLib|MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSupportLib.inf + # + # Supplies the theme for this platform to the UEFI settings UI + # + MsUiThemeLib|MsGraphicsPkg/Library/MsUiThemeLib/Dxe/MsUiThemeLib.inf + SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf + # + # Library for determining if Manufacturing mode should be enabled on this boot. + # This libray is what everyone should use to determine which mode we are in. + # It can be called from PEI or DXE. + # + UIToolKitLib|MsGraphicsPkg/Library/SimpleUIToolKit/SimpleUIToolKit.inf + ResetUtilityLib|MdeModulePkg/Library/ResetUtilityLib/ResetUtilityLib.inf + BaseBinSecurityLib|MdePkg/Library/BaseBinSecurityLibNull/BaseBinSecurityLibNull.inf + SecurityLockAuditLib|MdeModulePkg/Library/SecurityLockAuditLibNull/SecurityLockAuditLibNull.inf + +[PcdsFixedAtBuild.common] + # a PCD that controls the enumeration and connection of ConIn's. When true, ConIn is only connected once a console input is requests + gEfiMdeModulePkgTokenSpaceGuid.PcdConInConnectOnDemand|TRUE + +# Enable SHELL to build instead of just taking the binary + gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|16000 + gEfiShellPkgTokenSpaceGuid.PcdShellProfileMask|0x1f # All profiles + + gMsGraphicsPkgTokenSpaceGuid.PcdUiThemeInDxe|TRUE + gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerInBootOrder|TRUE + gEfiMdeModulePkgTokenSpaceGuid.PcdPlatformRecoverySupported|FALSE + # The GUID of Frontpage.inf from MU_OEM_SAMPLE + # 4042708A-0F2D-4823-AC60-0D77B3111889 + gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x8A, 0x70, 0x42, 0x40, 0x2D, 0x0F, 0x23, 0x48, 0xAC, 0x60, 0x0D, 0x77, 0xB3, 0x11, 0x18, 0x89 } + +[Components.AARCH64] + + # + # Spoofs button press to automatically boot to FrontPage. + # + OemPkg/FrontpageButtonsVolumeUp/FrontpageButtonsVolumeUp.inf + + # + # Application that presents and manages FrontPage. + # + OemPkg/FrontPage/FrontPage.inf + # Surface Boot Manager (Menu) application + # + # Application that presents & manages the Boot Menu Setup on Front Page. + # + OemPkg/BootMenu/BootMenu.inf + + PcBdsPkg/MsBootPolicy/MsBootPolicy.inf + + MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxe.inf + # + # Library to support Remote/IT/Admin Settings such as DFCI + # + MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.inf + # + # Main component of DFCI. Manages and enforces all DFCI settings. + # + DfciPkg/SettingsManager/SettingsManagerDxe.inf { + #Platform should add all it settings libs here + + NULL|ZeroTouchPkg/Library/ZeroTouchSettings/ZeroTouchSettings.inf + NULL|DfciPkg/Library/DfciSettingsLib/DfciSettingsLib.inf + DfciSettingPermissionLib|DfciPkg/Library/DfciSettingPermissionLib/DfciSettingPermissionLib.inf + NULL|PcBdsPkg/Library/MsBootManagerSettingsDxeLib/MsBootManagerSettingsDxeLib.inf + + gDfciPkgTokenSpaceGuid.PcdSettingsManagerInstallProvider|TRUE + } + # + # AuthManager provides authentication for DFCI. AuthManagerNull passes out a consistent token to allow the rest + # of FrontPage to be developed and tested while RngLib or other parts of the authentication process are being developed. + # + DfciPkg/AuthManagerNull/AuthManagerNull.inf + # + # Processes ingoing and outgoing DFCI settings requests. + # + DfciPkg/DfciManager/DfciManager.inf + # + # Manages windows and fonts to be drawn by the RenderingEngine. + # + MsGraphicsPkg/SimpleWindowManagerDxe/SimpleWindowManagerDxe.inf + # + # Produces EfiGraphicsOutputProtocol to draw graphics to the screen. + # + MsGraphicsPkg/RenderingEngineDxe/RenderingEngineDxe.inf + # + # Finds and takes ownership of gEfiGraphicsOutputProtocolGuid so RenderingEngine can use it. + # + MsGraphicsPkg/GopOverrideDxe/GopOverrideDxe.inf + # + # Driver for On Screen Keyboard. + # + MsGraphicsPkg/OnScreenKeyboardDxe/OnScreenKeyboardDxe.inf + # + # Installs protocol to share the UI theme. If PcdUiThemeInDxe, this will involve calling the PlatformThemeLib directly. + # Otherwise, the theme will have been generated in PEI and it will be located on a HOB. + # + MsGraphicsPkg/MsUiTheme/Dxe/MsUiThemeProtocol.inf + # + # Produces FORM DISPLAY ENGINE protocol. Handles input, displays strings. + # + MsGraphicsPkg/DisplayEngineDxe/DisplayEngineDxe.inf + + +####################################### +# Shell +####################################### + + ShellPkg/Application/Shell/Shell.inf { + + NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf + NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf + NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellNetwork2CommandsLib/UefiShellNetwork2CommandsLib.inf + + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE + } diff --git a/FrontpageFdf.inc b/FrontpageFdf.inc index 9582eff..7536b2e 100644 --- a/FrontpageFdf.inc +++ b/FrontpageFdf.inc @@ -1,34 +1,34 @@ -# Continuation of [FV.FvMain] - INF MsGraphicsPkg/GopOverrideDxe/GopOverrideDxe.inf - INF DfciPkg/AuthManagerNull/AuthManagerNull.inf - INF DfciPkg/SettingsManager/SettingsManagerDxe.inf - INF MsGraphicsPkg/MsUiTheme/Dxe/MsUiThemeProtocol.inf - INF MsGraphicsPkg/RenderingEngineDxe/RenderingEngineDxe.inf - INF MsGraphicsPkg/DisplayEngineDxe/DisplayEngineDxe.inf - INF OemPkg/BootMenu/BootMenu.inf - INF OemPkg/FrontPage/FrontPage.inf - INF PcBdsPkg/MsBootPolicy/MsBootPolicy.inf - INF MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxe.inf - INF MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.inf - INF DfciPkg/DfciManager/DfciManager.inf - INF MsGraphicsPkg/OnScreenKeyboardDxe/OnScreenKeyboardDxe.inf - INF OemPkg/FrontpageButtonsVolumeUp/FrontpageButtonsVolumeUp.inf - INF MsGraphicsPkg/SimpleWindowManagerDxe/SimpleWindowManagerDxe.inf - # Change AARCH64 to the appropriate architecture for your platform. - FILE APPLICATION=PCD(gPcBdsPkgTokenSpaceGuid.PcdShellFile) { - SECTION PE32=$(OUTPUT_DIRECTORY)/$(TARGET)_$(TOOL_CHAIN_TAG)/AARCH64/Shell.efi - SECTION UI= "EdkShell" - } - FILE FREEFORM = PCD(gOemPkgTokenSpaceGuid.PcdLogoFile) { - SECTION RAW = OemPkg/FrontPage/Resources/BootLogo.bmp - SECTION UI = "Logo" - } - FILE FREEFORM = PCD(gOemPkgTokenSpaceGuid.PcdFrontPageLogoFile) { - SECTION RAW = OemPkg/FrontPage/Resources/FrontpageLogo.bmp - } - FILE FREEFORM = PCD(gOemPkgTokenSpaceGuid.PcdLowBatteryFile) { - SECTION RAW = OemPkg/FrontPage/Resources/LBAT.bmp - } - FILE FREEFORM = PCD(gOemPkgTokenSpaceGuid.PcdThermalFile) { - SECTION RAW = OemPkg/FrontPage/Resources/THOT.bmp +# Continuation of [FV.FvMain] + INF MsGraphicsPkg/GopOverrideDxe/GopOverrideDxe.inf + INF DfciPkg/AuthManagerNull/AuthManagerNull.inf + INF DfciPkg/SettingsManager/SettingsManagerDxe.inf + INF MsGraphicsPkg/MsUiTheme/Dxe/MsUiThemeProtocol.inf + INF MsGraphicsPkg/RenderingEngineDxe/RenderingEngineDxe.inf + INF MsGraphicsPkg/DisplayEngineDxe/DisplayEngineDxe.inf + INF OemPkg/BootMenu/BootMenu.inf + INF OemPkg/FrontPage/FrontPage.inf + INF PcBdsPkg/MsBootPolicy/MsBootPolicy.inf + INF MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxe.inf + INF MdeModulePkg/Universal/RegularExpressionDxe/RegularExpressionDxe.inf + INF DfciPkg/DfciManager/DfciManager.inf + INF MsGraphicsPkg/OnScreenKeyboardDxe/OnScreenKeyboardDxe.inf + INF OemPkg/FrontpageButtonsVolumeUp/FrontpageButtonsVolumeUp.inf + INF MsGraphicsPkg/SimpleWindowManagerDxe/SimpleWindowManagerDxe.inf + # Change AARCH64 to the appropriate architecture for your platform. + FILE APPLICATION=PCD(gPcBdsPkgTokenSpaceGuid.PcdShellFile) { + SECTION PE32=$(OUTPUT_DIRECTORY)/$(TARGET)_$(TOOL_CHAIN_TAG)/AARCH64/Shell.efi + SECTION UI= "EdkShell" + } + FILE FREEFORM = PCD(gOemPkgTokenSpaceGuid.PcdLogoFile) { + SECTION RAW = OemPkg/FrontPage/Resources/BootLogo.bmp + SECTION UI = "Logo" + } + FILE FREEFORM = PCD(gOemPkgTokenSpaceGuid.PcdFrontPageLogoFile) { + SECTION RAW = OemPkg/FrontPage/Resources/FrontpageLogo.bmp + } + FILE FREEFORM = PCD(gOemPkgTokenSpaceGuid.PcdLowBatteryFile) { + SECTION RAW = OemPkg/FrontPage/Resources/LBAT.bmp + } + FILE FREEFORM = PCD(gOemPkgTokenSpaceGuid.PcdThermalFile) { + SECTION RAW = OemPkg/FrontPage/Resources/THOT.bmp } \ No newline at end of file diff --git a/LICENSE.txt b/LICENSE.txt index 6de3d8c..28acc52 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,4 +1,4 @@ -BSD-2-Clause-Patent License - -Copyright (C) Microsoft Corporation. All rights reserved. -SPDX-License-Identifier: BSD-2-Clause-Patent +BSD-2-Clause-Patent License + +Copyright (C) Microsoft Corporation. All rights reserved. +SPDX-License-Identifier: BSD-2-Clause-Patent diff --git a/OemPkg/BootMenu/BootMenu.inf b/OemPkg/BootMenu/BootMenu.inf index 7557ff0..b29d863 100644 --- a/OemPkg/BootMenu/BootMenu.inf +++ b/OemPkg/BootMenu/BootMenu.inf @@ -1,71 +1,71 @@ -## @file -# Application that presents & manages the Boot Menu Setup on Front Page. -# -# Copyright (C) Microsoft Corporation. All rights reserved. -# SPDX-License-Identifier: BSD-2-Clause-Patent -## - -[Defines] - INF_VERSION = 0x00010005 - BASE_NAME = BootMenu - FILE_GUID = 8d865e53-bd58-4e4c-8eca-ee96b620f40f - MODULE_TYPE = DXE_DRIVER - VERSION_STRING = 1.0 - ENTRY_POINT = BootMenuEntry - -# -# The following information is for reference only and not required by the build tools. -# -# VALID_ARCHITECTURES = IA32 X64 IPF EBC -# - -[Sources] - BootMenu.c - BootMenuVfr.Vfr - BootMenuStrings.uni - -[Packages] - OemPkg/OemPkg.dec - PcBdsPkg/PcBdsPkg.dec - MdePkg/MdePkg.dec - MdeModulePkg/MdeModulePkg.dec - DfciPkg/DfciPkg.dec - MsGraphicsPkg/MsGraphicsPkg.dec - -[LibraryClasses] - DebugLib - PrintLib - HiiLib - UefiDriverEntryPoint - UefiBootServicesTableLib - UefiRuntimeServicesTableLib - UefiHiiServicesLib - UefiLib - UefiBootManagerLib - MsBootPolicyLib - BootGraphicsProviderLib - BootGraphicsLib - GraphicsConsoleHelperLib - MsBootOptionsLib - SwmDialogsLib - -[Guids] - gEfiGlobalVariableGuid ## SOMETIMES_PRODUCES ## Variable:L"BootNext" (The number of next boot option) - gEfiIfrTianoGuid - gMsBootMenuFormsetGuid - -[Protocols] - gEfiHiiConfigAccessProtocolGuid - gEdkiiFormBrowserEx2ProtocolGuid - gEfiSimpleFileSystemProtocolGuid - gEfiLoadFileProtocolGuid - gMsSWMProtocolGuid - gDfciSettingAccessProtocolGuid - gMsFrontPageAuthTokenProtocolGuid - -[FeaturePcd] - -[Pcd] - -[Depex] - TRUE +## @file +# Application that presents & manages the Boot Menu Setup on Front Page. +# +# Copyright (C) Microsoft Corporation. All rights reserved. +# SPDX-License-Identifier: BSD-2-Clause-Patent +## + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = BootMenu + FILE_GUID = 8d865e53-bd58-4e4c-8eca-ee96b620f40f + MODULE_TYPE = DXE_DRIVER + VERSION_STRING = 1.0 + ENTRY_POINT = BootMenuEntry + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = IA32 X64 IPF EBC +# + +[Sources] + BootMenu.c + BootMenuVfr.Vfr + BootMenuStrings.uni + +[Packages] + OemPkg/OemPkg.dec + PcBdsPkg/PcBdsPkg.dec + MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec + DfciPkg/DfciPkg.dec + MsGraphicsPkg/MsGraphicsPkg.dec + +[LibraryClasses] + DebugLib + PrintLib + HiiLib + UefiDriverEntryPoint + UefiBootServicesTableLib + UefiRuntimeServicesTableLib + UefiHiiServicesLib + UefiLib + UefiBootManagerLib + MsBootPolicyLib + BootGraphicsProviderLib + BootGraphicsLib + GraphicsConsoleHelperLib + MsBootOptionsLib + SwmDialogsLib + +[Guids] + gEfiGlobalVariableGuid ## SOMETIMES_PRODUCES ## Variable:L"BootNext" (The number of next boot option) + gEfiIfrTianoGuid + gMsBootMenuFormsetGuid + +[Protocols] + gEfiHiiConfigAccessProtocolGuid + gEdkiiFormBrowserEx2ProtocolGuid + gEfiSimpleFileSystemProtocolGuid + gEfiLoadFileProtocolGuid + gMsSWMProtocolGuid + gDfciSettingAccessProtocolGuid + gMsFrontPageAuthTokenProtocolGuid + +[FeaturePcd] + +[Pcd] + +[Depex] + TRUE diff --git a/OemPkg/BootMenu/BootMenuStrings.uni b/OemPkg/BootMenu/BootMenuStrings.uni index 5d2560c..faf7d6d 100644 --- a/OemPkg/BootMenu/BootMenuStrings.uni +++ b/OemPkg/BootMenu/BootMenuStrings.uni @@ -1,54 +1,54 @@ -// *++ -// -// Copyright (c) 2006, Intel Corporation. All rights reserved.
-// Copyright (C) Microsoft Corporation. All rights reserved. -// SPDX-License-Identifier: BSD-2-Clause-Patent -// -// Module Name: -// -// BootMenuStrings.uni -// -// Abstract: -// -// String definition -// Revision History: -// -// --*/ - -#langdef en-US " English " -#langdef en " Standard English " - -#string STR_BOOT_MENU_TITLE #language en-US "Boot Menu" - -#string STR_RESTRICTED_STRING #language en-US "\fc!Red!Some settings are managed by your organization." - -#string STR_NULL_STRING #language en-US "" - -#string STR_BOOT_ORDER_TITLE #language en-US "Configure boot device order" - -#string STR_BOOT_ORDER_HEADER #language en-US "\fh!48!Configure boot device order" - -#string STR_BOOT_ORDER_LIST #language en-US "To change the order devices are searched for a bootable operating system, drag each boot option to the desired location in the list. Use the checkbox to enable or disable a boot option. Click the trash icon to permanently remove a boot option from the list. Swipe left on a device to boot that device immediately." - -#string STR_ADVANCED_OPTIONS_HEADER #language en-US "\fh!48!Advanced options" - -#string STR_DEV_ENABLE_IPV6 #language en-US "\fh!28!Enable IPv6 for PXE Network boot option" - -#string STR_DEV_ENABLE_ALT_BOOT #language en-US "\fh!28!Enable alternate boot sequence" - -#string STR_DEV_ENABLE_BOOT_ORDER_LOCK #language en-US "\fh!28!Enable Boot Configuration Lock" - -#string STR_DEV_ENABLE_USB_BOOT #language en-US "\fh!28!Enable Boot from USB devices" - -#string STR_BOOT_DELETE_TITLE #language en-US "Delete option" - -#string STR_BOOT_DELETE_CAPTION #language en-US "Delete boot option" - -#string STR_BOOT_DELETE_WARNING #language en-US "The following boot option will be permanently removed from the system:\r\r\r\r%s" - -#string STR_BOOT_BOOT_TITLE #language en-US "Boot device" - -#string STR_BOOT_BOOT_CAPTION #language en-US "Boot this device immediately" - -#string STR_BOOT_BOOT_WARNING #language en-US "Exit UEFI Settings and boot the following device immediately:\r\r%s" - +// *++ +// +// Copyright (c) 2006, Intel Corporation. All rights reserved.
+// Copyright (C) Microsoft Corporation. All rights reserved. +// SPDX-License-Identifier: BSD-2-Clause-Patent +// +// Module Name: +// +// BootMenuStrings.uni +// +// Abstract: +// +// String definition +// Revision History: +// +// --*/ + +#langdef en-US " English " +#langdef en " Standard English " + +#string STR_BOOT_MENU_TITLE #language en-US "Boot Menu" + +#string STR_RESTRICTED_STRING #language en-US "\fc!Red!Some settings are managed by your organization." + +#string STR_NULL_STRING #language en-US "" + +#string STR_BOOT_ORDER_TITLE #language en-US "Configure boot device order" + +#string STR_BOOT_ORDER_HEADER #language en-US "\fh!48!Configure boot device order" + +#string STR_BOOT_ORDER_LIST #language en-US "To change the order devices are searched for a bootable operating system, drag each boot option to the desired location in the list. Use the checkbox to enable or disable a boot option. Click the trash icon to permanently remove a boot option from the list. Swipe left on a device to boot that device immediately." + +#string STR_ADVANCED_OPTIONS_HEADER #language en-US "\fh!48!Advanced options" + +#string STR_DEV_ENABLE_IPV6 #language en-US "\fh!28!Enable IPv6 for PXE Network boot option" + +#string STR_DEV_ENABLE_ALT_BOOT #language en-US "\fh!28!Enable alternate boot sequence" + +#string STR_DEV_ENABLE_BOOT_ORDER_LOCK #language en-US "\fh!28!Enable Boot Configuration Lock" + +#string STR_DEV_ENABLE_USB_BOOT #language en-US "\fh!28!Enable Boot from USB devices" + +#string STR_BOOT_DELETE_TITLE #language en-US "Delete option" + +#string STR_BOOT_DELETE_CAPTION #language en-US "Delete boot option" + +#string STR_BOOT_DELETE_WARNING #language en-US "The following boot option will be permanently removed from the system:\r\r\r\r%s" + +#string STR_BOOT_BOOT_TITLE #language en-US "Boot device" + +#string STR_BOOT_BOOT_CAPTION #language en-US "Boot this device immediately" + +#string STR_BOOT_BOOT_WARNING #language en-US "Exit UEFI Settings and boot the following device immediately:\r\r%s" + diff --git a/OemPkg/BootMenu/BootMenuVfr.Vfr b/OemPkg/BootMenu/BootMenuVfr.Vfr index 54f20db..141131b 100644 --- a/OemPkg/BootMenu/BootMenuVfr.Vfr +++ b/OemPkg/BootMenu/BootMenuVfr.Vfr @@ -1,213 +1,213 @@ -//**@file BootMenu formset definition -// -// Copyright (C) Microsoft Corporation. All rights reserved. -// SPDX-License-Identifier: BSD-2-Clause-Patent -// -//** - -#include "BootMenu.h" - -formset - guid = MS_BOOT_MENU_FORMSET_GUID, - title = STRING_TOKEN(STR_BOOT_MENU_TITLE), - help = STRING_TOKEN(STR_NULL_STRING), - classguid = MS_BOOT_MENU_FORMSET_GUID, - class = EFI_OTHER_DEVICE_CLASS, - subclass = EFI_GENERAL_APPLICATION_SUBCLASS, - - varstore ORDER_MENU_CONFIGURATION, - varid = MS_BOOT_ORDER_VARID, - name = BootOrderConfig, - guid = MS_BOOT_MENU_FORMSET_GUID; - - varstore SETTINGS_MENU_CONFIGURATION, - varid = MS_BOOT_SETTINGS_VARID, - name = BootSettingsConfig, - guid = MS_BOOT_MENU_FORMSET_GUID; - - varstore SETTINGS_GRAYOUT_CONFIGURATION, - varid = MS_BOOT_GRAYOUT_VARID, - name = BootGrayoutConfig, - guid = MS_BOOT_MENU_FORMSET_GUID; - - varstore SETTINGS_SUPPRESS_CONFIGURATION, - varid = MS_BOOT_SUPPRESS_VARID, - name = BootSuppressConfig, - guid = MS_BOOT_MENU_FORMSET_GUID; - - // Boot Device Configuration menu - - form formid = MS_BOOT_ORDER_FORM_ID, - title = STRING_TOKEN(STR_BOOT_ORDER_TITLE); - - suppressif TRUE; - text - help = STRING_TOKEN(STR_NULL_STRING), - text = STRING_TOKEN(STR_NULL_STRING), - flags = INTERACTIVE, - key = MS_BOOT_ORDER_INIT_KEY; - endif; - - suppressif ideqval BootGrayoutConfig.RestrictedAccessString == 0x0; - text - help = STRING_TOKEN(STR_NULL_STRING), // Boot Order Header - text = STRING_TOKEN(STR_RESTRICTED_STRING); // - - text - help = STRING_TOKEN(STR_NULL_STRING), // SPACING - text = STRING_TOKEN(STR_NULL_STRING); - endif; - - text - help = STRING_TOKEN(STR_NULL_STRING), // Boot Order Header - text = STRING_TOKEN(STR_BOOT_ORDER_HEADER); // - - text - help = STRING_TOKEN(STR_NULL_STRING), // SPACING - text = STRING_TOKEN(STR_NULL_STRING); // - - grayoutif ideqval BootSettingsConfig.BootOrderLock == 1; - // Boot Edit list - // - label LABEL_ORDER_OPTIONS; - // - // This is where we will dynamically add current boot options - // each boot option. - // - label LABEL_ORDER_END; - endif; - text - help = STRING_TOKEN(STR_NULL_STRING), // SPACING - text = STRING_TOKEN(STR_NULL_STRING); // - - text - help = STRING_TOKEN(STR_NULL_STRING), // SPACING - text = STRING_TOKEN(STR_NULL_STRING); // - - text - help = STRING_TOKEN(STR_NULL_STRING), // Advanced Options - text = STRING_TOKEN(STR_ADVANCED_OPTIONS_HEADER); // - - suppressif ideqval BootSuppressConfig.AltBoot == 1; - grayoutif ideqval BootGrayoutConfig.AltBoot == 0; - guidop - guid = GRID_START_OPCODE_GUID, // Custom UI Grid opcode - START - datatype = UINT32, // - data = 100, // Grid cell height in pixels. - endguidop; - subtitle text = STRING_TOKEN(STR_NULL_STRING), - flags = HORIZONTAL; - text - help = STRING_TOKEN(STR_NULL_STRING), - text = STRING_TOKEN(STR_DEV_ENABLE_ALT_BOOT); // - checkbox varid = BootSettingsConfig.AltBoot, - prompt = STRING_TOKEN(STR_NULL_STRING), // Enable Alternate Boot - help = STRING_TOKEN(STR_NULL_STRING), // - flags = INTERACTIVE, - key = MS_ENABLE_ALT_BOOT_QUESTION_ID, // Off - On (Default) - endcheckbox; - text // - help = STRING_TOKEN(STR_NULL_STRING), // Add a dummy 4th column to move the toggle switch further to the left. - text = STRING_TOKEN(STR_NULL_STRING); // - text // - help = STRING_TOKEN(STR_NULL_STRING), // Add a dummy 5th column to move the toggle switch further to the left. - text = STRING_TOKEN(STR_NULL_STRING); // - guidop - guid = GRID_END_OPCODE_GUID, // Custom UI Grid opcode - END - endguidop; - endif; - endif; - - suppressif ideqval BootSuppressConfig.IPv6 == 1; - grayoutif ideqval BootGrayoutConfig.IPv6 == 0; - guidop - guid = GRID_START_OPCODE_GUID, // Custom UI Grid opcode - START - datatype = UINT32, // - data = 100, // Grid cell height in pixels. - endguidop; - subtitle text = STRING_TOKEN(STR_NULL_STRING), - flags = HORIZONTAL; - text - help = STRING_TOKEN(STR_NULL_STRING), - text = STRING_TOKEN(STR_DEV_ENABLE_IPV6); // - checkbox varid = BootSettingsConfig.IPv6, - prompt = STRING_TOKEN(STR_NULL_STRING), // Enable Network Boot - help = STRING_TOKEN(STR_NULL_STRING), // - flags = INTERACTIVE, - key = MS_ENABLE_IPV6_QUESTION_ID, // Off - On (Default) - endcheckbox; - text // - help = STRING_TOKEN(STR_NULL_STRING), // Add a dummy 4th column to move the toggle switch further to the left. - text = STRING_TOKEN(STR_NULL_STRING); // - text // - help = STRING_TOKEN(STR_NULL_STRING), // Add a dummy 5th column to move the toggle switch further to the left. - text = STRING_TOKEN(STR_NULL_STRING); // - guidop - guid = GRID_END_OPCODE_GUID, // Custom UI Grid opcode - END - endguidop; - endif; - endif; - - suppressif ideqval BootSuppressConfig.EnableUsbBoot == 1; - grayoutif ideqval BootGrayoutConfig.EnableUsbBoot == 0; - guidop - guid = GRID_START_OPCODE_GUID, // Custom UI Grid opcode - START - datatype = UINT32, // - data = 100, // Grid cell height in pixels. - endguidop; - subtitle text = STRING_TOKEN(STR_NULL_STRING), - flags = HORIZONTAL; - text - help = STRING_TOKEN(STR_NULL_STRING), - text = STRING_TOKEN(STR_DEV_ENABLE_USB_BOOT); // - checkbox varid = BootSettingsConfig.EnableUsbBoot, - prompt = STRING_TOKEN(STR_NULL_STRING), // Enable USB Boot - help = STRING_TOKEN(STR_NULL_STRING), // - flags = INTERACTIVE, - key = MS_ENABLE_USB_BOOT_QUESTION_ID, // Off - On (Default) - endcheckbox; - text // - help = STRING_TOKEN(STR_NULL_STRING), // Add a dummy 4th column to move the toggle switch further to the left. - text = STRING_TOKEN(STR_NULL_STRING); // - text // - help = STRING_TOKEN(STR_NULL_STRING), // Add a dummy 5th column to move the toggle switch further to the left. - text = STRING_TOKEN(STR_NULL_STRING); // - guidop - guid = GRID_END_OPCODE_GUID, // Custom UI Grid opcode - END - endguidop; - endif; - endif; - - suppressif ideqval BootSuppressConfig.BootOrderLock == 1; - grayoutif ideqval BootGrayoutConfig.BootOrderLock == 0; - guidop - guid = GRID_START_OPCODE_GUID, // Custom UI Grid opcode - START - datatype = UINT32, // - data = 100, // Grid cell height in pixels. - endguidop; - subtitle text = STRING_TOKEN(STR_NULL_STRING), - flags = HORIZONTAL; - text - help = STRING_TOKEN(STR_NULL_STRING), - text = STRING_TOKEN(STR_DEV_ENABLE_BOOT_ORDER_LOCK); // - checkbox varid = BootSettingsConfig.BootOrderLock, - prompt = STRING_TOKEN(STR_NULL_STRING), // Enable Boot Order Lock - help = STRING_TOKEN(STR_NULL_STRING), // - flags = INTERACTIVE | RESET_REQUIRED, - key = MS_ENABLE_BOOT_ORDER_LOCK_QUESTION_ID, // Off - On (Default) - endcheckbox; - text // - help = STRING_TOKEN(STR_NULL_STRING), // Add a dummy 4th column to move the toggle switch further to the left. - text = STRING_TOKEN(STR_NULL_STRING); // - text // - help = STRING_TOKEN(STR_NULL_STRING), // Add a dummy 5th column to move the toggle switch further to the left. - text = STRING_TOKEN(STR_NULL_STRING); // - guidop - guid = GRID_END_OPCODE_GUID, // Custom UI Grid opcode - END - endguidop; - endif; - endif; - - endform; - -endformset; +//**@file BootMenu formset definition +// +// Copyright (C) Microsoft Corporation. All rights reserved. +// SPDX-License-Identifier: BSD-2-Clause-Patent +// +//** + +#include "BootMenu.h" + +formset + guid = MS_BOOT_MENU_FORMSET_GUID, + title = STRING_TOKEN(STR_BOOT_MENU_TITLE), + help = STRING_TOKEN(STR_NULL_STRING), + classguid = MS_BOOT_MENU_FORMSET_GUID, + class = EFI_OTHER_DEVICE_CLASS, + subclass = EFI_GENERAL_APPLICATION_SUBCLASS, + + varstore ORDER_MENU_CONFIGURATION, + varid = MS_BOOT_ORDER_VARID, + name = BootOrderConfig, + guid = MS_BOOT_MENU_FORMSET_GUID; + + varstore SETTINGS_MENU_CONFIGURATION, + varid = MS_BOOT_SETTINGS_VARID, + name = BootSettingsConfig, + guid = MS_BOOT_MENU_FORMSET_GUID; + + varstore SETTINGS_GRAYOUT_CONFIGURATION, + varid = MS_BOOT_GRAYOUT_VARID, + name = BootGrayoutConfig, + guid = MS_BOOT_MENU_FORMSET_GUID; + + varstore SETTINGS_SUPPRESS_CONFIGURATION, + varid = MS_BOOT_SUPPRESS_VARID, + name = BootSuppressConfig, + guid = MS_BOOT_MENU_FORMSET_GUID; + + // Boot Device Configuration menu + + form formid = MS_BOOT_ORDER_FORM_ID, + title = STRING_TOKEN(STR_BOOT_ORDER_TITLE); + + suppressif TRUE; + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_NULL_STRING), + flags = INTERACTIVE, + key = MS_BOOT_ORDER_INIT_KEY; + endif; + + suppressif ideqval BootGrayoutConfig.RestrictedAccessString == 0x0; + text + help = STRING_TOKEN(STR_NULL_STRING), // Boot Order Header + text = STRING_TOKEN(STR_RESTRICTED_STRING); // + + text + help = STRING_TOKEN(STR_NULL_STRING), // SPACING + text = STRING_TOKEN(STR_NULL_STRING); + endif; + + text + help = STRING_TOKEN(STR_NULL_STRING), // Boot Order Header + text = STRING_TOKEN(STR_BOOT_ORDER_HEADER); // + + text + help = STRING_TOKEN(STR_NULL_STRING), // SPACING + text = STRING_TOKEN(STR_NULL_STRING); // + + grayoutif ideqval BootSettingsConfig.BootOrderLock == 1; + // Boot Edit list + // + label LABEL_ORDER_OPTIONS; + // + // This is where we will dynamically add current boot options + // each boot option. + // + label LABEL_ORDER_END; + endif; + text + help = STRING_TOKEN(STR_NULL_STRING), // SPACING + text = STRING_TOKEN(STR_NULL_STRING); // + + text + help = STRING_TOKEN(STR_NULL_STRING), // SPACING + text = STRING_TOKEN(STR_NULL_STRING); // + + text + help = STRING_TOKEN(STR_NULL_STRING), // Advanced Options + text = STRING_TOKEN(STR_ADVANCED_OPTIONS_HEADER); // + + suppressif ideqval BootSuppressConfig.AltBoot == 1; + grayoutif ideqval BootGrayoutConfig.AltBoot == 0; + guidop + guid = GRID_START_OPCODE_GUID, // Custom UI Grid opcode - START + datatype = UINT32, // + data = 100, // Grid cell height in pixels. + endguidop; + subtitle text = STRING_TOKEN(STR_NULL_STRING), + flags = HORIZONTAL; + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_DEV_ENABLE_ALT_BOOT); // + checkbox varid = BootSettingsConfig.AltBoot, + prompt = STRING_TOKEN(STR_NULL_STRING), // Enable Alternate Boot + help = STRING_TOKEN(STR_NULL_STRING), // + flags = INTERACTIVE, + key = MS_ENABLE_ALT_BOOT_QUESTION_ID, // Off - On (Default) + endcheckbox; + text // + help = STRING_TOKEN(STR_NULL_STRING), // Add a dummy 4th column to move the toggle switch further to the left. + text = STRING_TOKEN(STR_NULL_STRING); // + text // + help = STRING_TOKEN(STR_NULL_STRING), // Add a dummy 5th column to move the toggle switch further to the left. + text = STRING_TOKEN(STR_NULL_STRING); // + guidop + guid = GRID_END_OPCODE_GUID, // Custom UI Grid opcode - END + endguidop; + endif; + endif; + + suppressif ideqval BootSuppressConfig.IPv6 == 1; + grayoutif ideqval BootGrayoutConfig.IPv6 == 0; + guidop + guid = GRID_START_OPCODE_GUID, // Custom UI Grid opcode - START + datatype = UINT32, // + data = 100, // Grid cell height in pixels. + endguidop; + subtitle text = STRING_TOKEN(STR_NULL_STRING), + flags = HORIZONTAL; + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_DEV_ENABLE_IPV6); // + checkbox varid = BootSettingsConfig.IPv6, + prompt = STRING_TOKEN(STR_NULL_STRING), // Enable Network Boot + help = STRING_TOKEN(STR_NULL_STRING), // + flags = INTERACTIVE, + key = MS_ENABLE_IPV6_QUESTION_ID, // Off - On (Default) + endcheckbox; + text // + help = STRING_TOKEN(STR_NULL_STRING), // Add a dummy 4th column to move the toggle switch further to the left. + text = STRING_TOKEN(STR_NULL_STRING); // + text // + help = STRING_TOKEN(STR_NULL_STRING), // Add a dummy 5th column to move the toggle switch further to the left. + text = STRING_TOKEN(STR_NULL_STRING); // + guidop + guid = GRID_END_OPCODE_GUID, // Custom UI Grid opcode - END + endguidop; + endif; + endif; + + suppressif ideqval BootSuppressConfig.EnableUsbBoot == 1; + grayoutif ideqval BootGrayoutConfig.EnableUsbBoot == 0; + guidop + guid = GRID_START_OPCODE_GUID, // Custom UI Grid opcode - START + datatype = UINT32, // + data = 100, // Grid cell height in pixels. + endguidop; + subtitle text = STRING_TOKEN(STR_NULL_STRING), + flags = HORIZONTAL; + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_DEV_ENABLE_USB_BOOT); // + checkbox varid = BootSettingsConfig.EnableUsbBoot, + prompt = STRING_TOKEN(STR_NULL_STRING), // Enable USB Boot + help = STRING_TOKEN(STR_NULL_STRING), // + flags = INTERACTIVE, + key = MS_ENABLE_USB_BOOT_QUESTION_ID, // Off - On (Default) + endcheckbox; + text // + help = STRING_TOKEN(STR_NULL_STRING), // Add a dummy 4th column to move the toggle switch further to the left. + text = STRING_TOKEN(STR_NULL_STRING); // + text // + help = STRING_TOKEN(STR_NULL_STRING), // Add a dummy 5th column to move the toggle switch further to the left. + text = STRING_TOKEN(STR_NULL_STRING); // + guidop + guid = GRID_END_OPCODE_GUID, // Custom UI Grid opcode - END + endguidop; + endif; + endif; + + suppressif ideqval BootSuppressConfig.BootOrderLock == 1; + grayoutif ideqval BootGrayoutConfig.BootOrderLock == 0; + guidop + guid = GRID_START_OPCODE_GUID, // Custom UI Grid opcode - START + datatype = UINT32, // + data = 100, // Grid cell height in pixels. + endguidop; + subtitle text = STRING_TOKEN(STR_NULL_STRING), + flags = HORIZONTAL; + text + help = STRING_TOKEN(STR_NULL_STRING), + text = STRING_TOKEN(STR_DEV_ENABLE_BOOT_ORDER_LOCK); // + checkbox varid = BootSettingsConfig.BootOrderLock, + prompt = STRING_TOKEN(STR_NULL_STRING), // Enable Boot Order Lock + help = STRING_TOKEN(STR_NULL_STRING), // + flags = INTERACTIVE | RESET_REQUIRED, + key = MS_ENABLE_BOOT_ORDER_LOCK_QUESTION_ID, // Off - On (Default) + endcheckbox; + text // + help = STRING_TOKEN(STR_NULL_STRING), // Add a dummy 4th column to move the toggle switch further to the left. + text = STRING_TOKEN(STR_NULL_STRING); // + text // + help = STRING_TOKEN(STR_NULL_STRING), // Add a dummy 5th column to move the toggle switch further to the left. + text = STRING_TOKEN(STR_NULL_STRING); // + guidop + guid = GRID_END_OPCODE_GUID, // Custom UI Grid opcode - END + endguidop; + endif; + endif; + + endform; + +endformset; diff --git a/OemPkg/DeviceStatePei/DeviceStatePei.inf b/OemPkg/DeviceStatePei/DeviceStatePei.inf index 9f09935..f64bf82 100644 --- a/OemPkg/DeviceStatePei/DeviceStatePei.inf +++ b/OemPkg/DeviceStatePei/DeviceStatePei.inf @@ -1,45 +1,45 @@ -## @file DeviceStatePei.inf -# -# This module checks a device state platform conditions and sets the state -# accordingly. -# -# This driver currently implements the following bits in a standard method: -# DEVICE_STATE_SECUREBOOT_OFF -# -# Copyright (C) Microsoft Corporation. -# -# -# SPDX-License-Identifier: BSD-2-Clause-Patent -## - -[Defines] - INF_VERSION = 0x00010017 - BASE_NAME = DeviceStatePei - FILE_GUID = 974931ef-cf18-4b45-bcbf-4b62d5c9a061 - MODULE_TYPE = PEIM - VERSION_STRING = 1.0 - ENTRY_POINT = DeviceStatePeiEntry - -[Sources] - DeviceStatePei.c - -[Packages] - MdePkg/MdePkg.dec - MdeModulePkg/MdeModulePkg.dec - -[LibraryClasses] - PeimEntryPoint - PeiServicesLib - DebugLib - DeviceStateLib - -[Ppis] - gEfiPeiReadOnlyVariable2PpiGuid - -[Guids] - gEfiGlobalVariableGuid - -[Pcd] - -[Depex] - gEfiPeiReadOnlyVariable2PpiGuid # Needed to query variable storage +## @file DeviceStatePei.inf +# +# This module checks a device state platform conditions and sets the state +# accordingly. +# +# This driver currently implements the following bits in a standard method: +# DEVICE_STATE_SECUREBOOT_OFF +# +# Copyright (C) Microsoft Corporation. +# +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +## + +[Defines] + INF_VERSION = 0x00010017 + BASE_NAME = DeviceStatePei + FILE_GUID = 974931ef-cf18-4b45-bcbf-4b62d5c9a061 + MODULE_TYPE = PEIM + VERSION_STRING = 1.0 + ENTRY_POINT = DeviceStatePeiEntry + +[Sources] + DeviceStatePei.c + +[Packages] + MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec + +[LibraryClasses] + PeimEntryPoint + PeiServicesLib + DebugLib + DeviceStateLib + +[Ppis] + gEfiPeiReadOnlyVariable2PpiGuid + +[Guids] + gEfiGlobalVariableGuid + +[Pcd] + +[Depex] + gEfiPeiReadOnlyVariable2PpiGuid # Needed to query variable storage diff --git a/OemPkg/FrontPage/FrontPage.inf b/OemPkg/FrontPage/FrontPage.inf index 99d9209..abb970b 100644 --- a/OemPkg/FrontPage/FrontPage.inf +++ b/OemPkg/FrontPage/FrontPage.inf @@ -1,124 +1,124 @@ -## @file -# Application that presents & manages the Front Page. -# -# Copyright (c) Microsoft Corporation. All rights reserved. -# SPDX-License-Identifier: BSD-2-Clause-Patent -## - -[Defines] - INF_VERSION = 0x00010005 - BASE_NAME = FrontPage - FILE_GUID = 4042708A-0F2D-4823-AC60-0D77B3111889 - MODULE_TYPE = UEFI_APPLICATION - VERSION_STRING = 1.0 - ENTRY_POINT = UefiMain - -# -# The following information is for reference only and not required by the build tools. -# -# VALID_ARCHITECTURES = IA32 X64 IPF EBC AARCH64 -# - -[Sources] - FrontPage.c - FrontPageConfigAccess.c - FrontPageUi.c - FrontPageStrings.uni - FrontPageVfr.Vfr - String.c - -[Packages] - MdePkg/MdePkg.dec - MdeModulePkg/MdeModulePkg.dec - MsGraphicsPkg/MsGraphicsPkg.dec - MsCorePkg/MsCorePkg.dec - PcBdsPkg/PcBdsPkg.dec - OemPkg/OemPkg.dec - DfciPkg/DfciPkg.dec - MsWheaPkg/MsWheaPkg.dec - SecurityPkg/SecurityPkg.dec - -[LibraryClasses] - BaseLib - DebugLib - PrintLib - HiiLib - UefiApplicationEntryPoint - PcdLib - UefiBootManagerLib - PasswordPolicyLib - UIToolKitLib - DxeServicesLib - BmpSupportLib - MsUiThemeLib - ResetUtilityLib - BootGraphicsLib - BootGraphicsProviderLib - MsColorTableLib - MsNVBootReasonLib - GraphicsConsoleHelperLib - SwmDialogsLib - SecureBootVariableLib - MuSecureBootKeySelectorLib - SecureBootKeyStoreLib - SafeIntLib - -[Guids] - gEfiGlobalVariableGuid ## SOMETIMES_PRODUCES ## Variable:L"BootNext" (The number of next boot option) - gEfiImageSecurityDatabaseGuid ## CONSUMES - gEfiIfrTianoGuid ## CONSUMES ## GUID (Extended IFR Guid Opcode) - gEfiCertPkcs7Guid ## CONSUMES - gMsEventMasterFrameNotifyGroupGuid ## CONSUMES - gFrontPageResetGuid ## CONSUMES ## Used to signal a specific reset type, in case anyone wants to handle it. - gDfciMenuFormsetGuid ## CONSUMES - gHwhMenuFormsetGuid ## CONSUMES - gMuVarPolicyDxePhaseGuid ## CONSUMES - -[Protocols] - gEfiSmbiosProtocolGuid ## PROTOCOL CONSUMES - gEfiGraphicsOutputProtocolGuid ## PROTOCOL SOMETIMES_CONSUMES - gEfiHiiConfigAccessProtocolGuid ## PROTOCOL CONSUMES - gEfiFormBrowser2ProtocolGuid ## PROTOCOL CONSUMES - gEfiDevicePathProtocolGuid ## PROTOCOL CONSUMES - gEfiFirmwareVolume2ProtocolGuid ## PROTOCOL CONSUMES - gMsOSKProtocolGuid ## PROTOCOL CONSUMES - gMsSWMProtocolGuid ## PROTOCOL CONSUMES - gEfiHiiConfigRoutingProtocolGuid ## PROTOCOL CONSUMES - gEfiSmmVariableProtocolGuid ## PROTOCOL CONSUMES - gEfiSmmCommunicationProtocolGuid ## PROTOCOL CONSUMES - gEfiSmbiosProtocolGuid ## PROTOCOL CONSUMES - gDfciSettingAccessProtocolGuid ## PROTOCOL CONSUMES - gMsFrontPageAuthTokenProtocolGuid ## PROTOCOL CONSUMES - gDfciAuthenticationProtocolGuid ## PROTOCOL CONSUMES - gEdkiiFormBrowserEx2ProtocolGuid ## PROTOCOL CONSUMES - gEfiFirmwareManagementProtocolGuid ## PROTOCOL CONSUMES - gEdkiiVariablePolicyProtocolGuid ## PROTOCOL CONSUMES - -[FeaturePcd] - #gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLangDeprecate - -[Pcd] - #gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLangCodes - #gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLang - #gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultPlatformLangCodes - #gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultPlatformLang - #gEfiMdeModulePkgTokenSpaceGuid.PcdConOutRow - #gEfiMdeModulePkgTokenSpaceGuid.PcdConOutColumn - #gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution - #gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution - gOemPkgTokenSpaceGuid.PcdVolumeUpIndicatorFile - gOemPkgTokenSpaceGuid.PcdFirmwareSettingsIndicatorFile - gOemPkgTokenSpaceGuid.PcdFrontPageLogoFile - gOemPkgTokenSpaceGuid.PcdBootFailIndicatorFile - gOemPkgTokenSpaceGuid.PcdMaxPasswordAttempts - gMsGraphicsPkgTokenSpaceGuid.PcdCurrentPointerState - gDfciPkgTokenSpaceGuid.PcdSetupUiReducedFunction - gDfciPkgTokenSpaceGuid.PcdDfciEnabled - -[Depex] - TRUE - -[BuildOptions] - # Needed because multiple floating-point components define _fltused. - # - *_VS2013x86_*_DLINK_FLAGS = /FORCE:MULTIPLE +## @file +# Application that presents & manages the Front Page. +# +# Copyright (c) Microsoft Corporation. All rights reserved. +# SPDX-License-Identifier: BSD-2-Clause-Patent +## + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = FrontPage + FILE_GUID = 4042708A-0F2D-4823-AC60-0D77B3111889 + MODULE_TYPE = UEFI_APPLICATION + VERSION_STRING = 1.0 + ENTRY_POINT = UefiMain + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = IA32 X64 IPF EBC AARCH64 +# + +[Sources] + FrontPage.c + FrontPageConfigAccess.c + FrontPageUi.c + FrontPageStrings.uni + FrontPageVfr.Vfr + String.c + +[Packages] + MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec + MsGraphicsPkg/MsGraphicsPkg.dec + MsCorePkg/MsCorePkg.dec + PcBdsPkg/PcBdsPkg.dec + OemPkg/OemPkg.dec + DfciPkg/DfciPkg.dec + MsWheaPkg/MsWheaPkg.dec + SecurityPkg/SecurityPkg.dec + +[LibraryClasses] + BaseLib + DebugLib + PrintLib + HiiLib + UefiApplicationEntryPoint + PcdLib + UefiBootManagerLib + PasswordPolicyLib + UIToolKitLib + DxeServicesLib + BmpSupportLib + MsUiThemeLib + ResetUtilityLib + BootGraphicsLib + BootGraphicsProviderLib + MsColorTableLib + MsNVBootReasonLib + GraphicsConsoleHelperLib + SwmDialogsLib + SecureBootVariableLib + MuSecureBootKeySelectorLib + SecureBootKeyStoreLib + SafeIntLib + +[Guids] + gEfiGlobalVariableGuid ## SOMETIMES_PRODUCES ## Variable:L"BootNext" (The number of next boot option) + gEfiImageSecurityDatabaseGuid ## CONSUMES + gEfiIfrTianoGuid ## CONSUMES ## GUID (Extended IFR Guid Opcode) + gEfiCertPkcs7Guid ## CONSUMES + gMsEventMasterFrameNotifyGroupGuid ## CONSUMES + gFrontPageResetGuid ## CONSUMES ## Used to signal a specific reset type, in case anyone wants to handle it. + gDfciMenuFormsetGuid ## CONSUMES + gHwhMenuFormsetGuid ## CONSUMES + gMuVarPolicyDxePhaseGuid ## CONSUMES + +[Protocols] + gEfiSmbiosProtocolGuid ## PROTOCOL CONSUMES + gEfiGraphicsOutputProtocolGuid ## PROTOCOL SOMETIMES_CONSUMES + gEfiHiiConfigAccessProtocolGuid ## PROTOCOL CONSUMES + gEfiFormBrowser2ProtocolGuid ## PROTOCOL CONSUMES + gEfiDevicePathProtocolGuid ## PROTOCOL CONSUMES + gEfiFirmwareVolume2ProtocolGuid ## PROTOCOL CONSUMES + gMsOSKProtocolGuid ## PROTOCOL CONSUMES + gMsSWMProtocolGuid ## PROTOCOL CONSUMES + gEfiHiiConfigRoutingProtocolGuid ## PROTOCOL CONSUMES + gEfiSmmVariableProtocolGuid ## PROTOCOL CONSUMES + gEfiSmmCommunicationProtocolGuid ## PROTOCOL CONSUMES + gEfiSmbiosProtocolGuid ## PROTOCOL CONSUMES + gDfciSettingAccessProtocolGuid ## PROTOCOL CONSUMES + gMsFrontPageAuthTokenProtocolGuid ## PROTOCOL CONSUMES + gDfciAuthenticationProtocolGuid ## PROTOCOL CONSUMES + gEdkiiFormBrowserEx2ProtocolGuid ## PROTOCOL CONSUMES + gEfiFirmwareManagementProtocolGuid ## PROTOCOL CONSUMES + gEdkiiVariablePolicyProtocolGuid ## PROTOCOL CONSUMES + +[FeaturePcd] + #gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLangDeprecate + +[Pcd] + #gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLangCodes + #gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLang + #gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultPlatformLangCodes + #gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultPlatformLang + #gEfiMdeModulePkgTokenSpaceGuid.PcdConOutRow + #gEfiMdeModulePkgTokenSpaceGuid.PcdConOutColumn + #gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution + #gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution + gOemPkgTokenSpaceGuid.PcdVolumeUpIndicatorFile + gOemPkgTokenSpaceGuid.PcdFirmwareSettingsIndicatorFile + gOemPkgTokenSpaceGuid.PcdFrontPageLogoFile + gOemPkgTokenSpaceGuid.PcdBootFailIndicatorFile + gOemPkgTokenSpaceGuid.PcdMaxPasswordAttempts + gMsGraphicsPkgTokenSpaceGuid.PcdCurrentPointerState + gDfciPkgTokenSpaceGuid.PcdSetupUiReducedFunction + gDfciPkgTokenSpaceGuid.PcdDfciEnabled + +[Depex] + TRUE + +[BuildOptions] + # Needed because multiple floating-point components define _fltused. + # + *_VS2013x86_*_DLINK_FLAGS = /FORCE:MULTIPLE diff --git a/OemPkg/FrontPage/FrontPageStrings.uni b/OemPkg/FrontPage/FrontPageStrings.uni index 4ac8fd3..5839d1a 100644 --- a/OemPkg/FrontPage/FrontPageStrings.uni +++ b/OemPkg/FrontPage/FrontPageStrings.uni @@ -1,163 +1,163 @@ -// *++ -// -// Strings for FrontPage -// -// Copyright (C) Microsoft Corporation. All rights reserved. -// SPDX-License-Identifier: BSD-2-Clause-Patent -// -// -// --*/ - -#langdef en-US " English " - -#langdef en " Standard English " - -#string STR_FRONT_PAGE_TITLE #language en-US "Project MU" - -//////////////////////////////////////////////////////////////////////////////////// -// Master Frame Menu Strings -// -#string STR_MF_MENU_OP_SECURITY #language en-US "Security" -#string STR_MF_MENU_OP_PCINFO #language en-US "PC information" - -#string STR_MF_MENU_OP_BOOTORDER #language en-US "Boot configuration" - -#string STR_MF_MENU_OP_DFCI #language en-US "Management" - -#string STR_MF_MENU_OP_HWH #language en-US "Hardware Health" - -#string STR_MF_MENU_OP_EXIT #language en-US "Exit" - -//////////////////////////////////////////////////////////////////////////////////// -// Generic Strings -// -#string STR_NULL_STRING #language en-US "" - -#string STR_GENERIC_TEXT_NONE #language en-US "None" - -#string STR_RESTRICTED_STRING #language en-US "\fc!Red!Some settings are managed by your organization." - -///////////////////////////////////////////////////////////////////////////// -// Form ID 0: PC Information -// -#string STR_INF_VIEW_PCINFO_HEADER #language en-US "\fh!48!PC information" - -#string STR_INF_VIEW_PC_MODEL #language en-US "Model" - -#string STR_INF_VIEW_PC_MODEL_VALUE #language en-US "None" - -#string STR_INF_VIEW_PC_UUID #language en-US "System UUID" - -#string STR_INF_VIEW_PC_UUID_VALUE #language en-US "None" - -#string STR_INF_VIEW_PC_SERIALNUM #language en-US "Serial number" - -#string STR_INF_VIEW_PC_SERIALNUM_VALUE #language en-US "None" - -#string STR_INF_VIEW_PC_ASSET_TAG #language en-US "Asset tag" - -#string STR_INF_VIEW_PC_ASSET_TAG_VALUE #language en-US "None" - -#string STR_INF_VIEW_FIRMWARE_HEADER #language en-US "\fh!48!Firmware" - -///////////////////////////////////////////////////////////////////////////// -// Form ID 1: Exit -// -#string STR_FP_EXIT_HEADER #language en-US "\fh!48!Exit settings and restart your platform" - -#string STR_FP_EXIT_DESCRIPTION #language en-US "\fh!28!All changes to the settings on this PC have been saved. Restart your PC to exit settings." - -#string STR_FP_RESTART_NOW_BUTTON #language en-US "Restart now" - -///////////////////////////////////////////////////////////////////////////// -// Form ID ?: Security -// -#string STR_SEC_SYSTEM_PASSWORD_HEADING #language en-US "\fh!48!UEFI password" - -#string STR_SEC_SYSTEM_PASSWORD_DESCRIPTION #language en-US "Set up a password to restrict access to the UEFI settings. Users will be required to enter the password to make changes to these settings when the password is set." - -#string STR_SEC_SYSTEM_PASSWORD_SET_BUTTON #language en-US "Add or Change" - -#string STR_SEC_SB_HEADING #language en-US "\fh!48!Secure Boot" - -#string STR_SEC_SB_STATE_TEXT #language en-US "UNK" ## This is a placeholder that should be updated by code. - -#string STR_SEC_SB_STATE_PREAMBLE #language en-US "Secure Boot is" - -#string STR_SEC_SB_STATE_DISABLED #language en-US "Disabled" - -#string STR_SEC_SB_STATE_ENABLED #language en-US "Enabled with" - -#string STR_SEC_SB_MS_ONLY_CONFIG_TEXT #language en-US "Microsoft only" - -#string STR_SEC_SB_MS_PLUS_CONFIG_TEXT #language en-US "Microsoft & 3rd party CA" - -#string STR_SEC_SB_CUSTOM_CONFIG_TEXT #language en-US "custom" - -#string STR_SEC_SB_KEY_CONFIG_TEXT #language en-US "key configuration" - -#string STR_SEC_SB_CHANGE_CONFIG_BUTTON #language en-US "Change configuration" - -#string STR_SEC_SB_WHAT_IS_TITLE #language en-US "Secure Boot help" - -#string STR_SEC_SB_WHAT_IS_LINK #language en-US "What is Secure Boot?" - -///////////////////////////////////////////////////////////////////////////// -// Form ID ?.5: Security (Post-Security Locks) -// -#string STR_SEC_POST_SEC_LOCK_HEADING #language en-US "\fh!48!Restart to modify security settings" - -#string STR_SEC_POST_SEC_LOCK_TEXT #language en-US "The security settings cannot be modified at this point in boot. A restart is required to make changes to the security settings." - -#string STR_SEC_POST_SEC_LOCK_BUTTON #language en-US "Restart to FrontPage" - - -///////////////////////////////////////////////////////////////////////////// -// Dialog: Password Enter/Set -// -#string STR_PWD_ENTER_PWD_TITLEBARTEXT #language en-US "Enter password" - -#string STR_PWD_CAPTION #language en-US "Enter the system password" - -#string STR_PWD_SET_BODYTEXT #language en-US "Passwords may contain a combination of letters, numbers and the special characters [!@#$%^&*()?<>{}[]-_=+|.,;:'`~\"]. The minimum length is 6 characters and the maximum length is 128 characters. Providing a blank password will remove the system password, allowing users to open UEFI settings without providing a password." - -#string STR_PWD_ENTER_BODYTEXT #language en-US "UEFI settings have been protected by a system password. Enter the system password to continue to the settings as an administrator, or click Cancel to proceed as a limited user." - -#string STR_PWD_ERRORMSG_TOOSHORT #language en-US "The provided password is too short." - -#string STR_PWD_ERRORMSG_TOOLONG #language en-US "The provided password is too long." - -#string STR_PWD_ERRORMSG_INVALID_CHAR #language en-US "The provided password contains an invalid character." - -#string STR_PWD_ERRORMSG_AUTHERROR #language en-US "The password is incorrect. Try again." - -#string STR_PWD_ERRORMSG_SET_GENFAILURE #language en-US "Failed to set a password." - -#string STR_PWD_ATTEMPTS_EXPIRED_TITLE #language en-US "Password limit" - -#string STR_PWD_ATTEMPTS_EXPIRED_CAPTION #language en-US "Password attempt limit reached" - -#string STR_PWD_ATTEMPTS_EXPIRED_BODYTEXT #language en-US "The maximum number of invalid password attempts has been reached. Continuing to UEFI settings as a limited user." - - -///////////////////////////////////////////////////////////////////////////// -// Dialog: Secure Boot Management -// -#string STR_SB_CONFIG_TITLEBARTEXT #language en-US "Secure Boot configuration" - -#string STR_SB_CONFIG_CAPTION #language en-US "Change Secure Boot configuration" - -#string STR_SB_CONFIG_BODY #language en-US "Select a Secure Boot certificate keyset." - -#string STR_SB_UPDATE_FAILURE #language en-US "The system failed to update the Secure Boot certificate keyset. The state of Secure Boot on this system has not been modified. Please reboot the system to try again, or open UEFI settings and select a different Secure Boot certificate keyset." - -#string STR_SB_UPDATE_FAILURE_TITLE #language en-US "Secure boot error" - -//////////////////////////////////////////////////////////////////////////////////// -// Dialog and Misc Strings -// -#string STR_SB_VIOLATION_TITLE #language en-US "SecureBoot violation!" - -#string STR_SB_VIOLATION_WARNING #language en-US "One or more of the selected boot devices had a SecureBoot violation! Returning to UEFI settings. Please verify SecureBoot key configuration and boot device selection." - -#string STR_SEC_SB_WHAT_IS_TEXT #language en-US "Secure Boot is configured by selecting a Secure Boot certificate keyset. There are three keysets to choose from on this PC.\r\rMicrosoft only: Only boot software signed by Microsoft will execute on the PC.\r\rMicrosoft & 3rd-party CA: Boot software which is signed by Microsoft or the Microsoft Corporation UEFI CA 2011 will execute on the PC. Choose this option for compatibility with 3rd-party UEFI software and drivers.\r\rNone: No keyset is installed and Secure Boot is disabled on the PC. Any boot software will execute on the PC. This configuration is not recommended and should only be used by advanced users." +// *++ +// +// Strings for FrontPage +// +// Copyright (C) Microsoft Corporation. All rights reserved. +// SPDX-License-Identifier: BSD-2-Clause-Patent +// +// +// --*/ + +#langdef en-US " English " + +#langdef en " Standard English " + +#string STR_FRONT_PAGE_TITLE #language en-US "Project MU" + +//////////////////////////////////////////////////////////////////////////////////// +// Master Frame Menu Strings +// +#string STR_MF_MENU_OP_SECURITY #language en-US "Security" +#string STR_MF_MENU_OP_PCINFO #language en-US "PC information" + +#string STR_MF_MENU_OP_BOOTORDER #language en-US "Boot configuration" + +#string STR_MF_MENU_OP_DFCI #language en-US "Management" + +#string STR_MF_MENU_OP_HWH #language en-US "Hardware Health" + +#string STR_MF_MENU_OP_EXIT #language en-US "Exit" + +//////////////////////////////////////////////////////////////////////////////////// +// Generic Strings +// +#string STR_NULL_STRING #language en-US "" + +#string STR_GENERIC_TEXT_NONE #language en-US "None" + +#string STR_RESTRICTED_STRING #language en-US "\fc!Red!Some settings are managed by your organization." + +///////////////////////////////////////////////////////////////////////////// +// Form ID 0: PC Information +// +#string STR_INF_VIEW_PCINFO_HEADER #language en-US "\fh!48!PC information" + +#string STR_INF_VIEW_PC_MODEL #language en-US "Model" + +#string STR_INF_VIEW_PC_MODEL_VALUE #language en-US "None" + +#string STR_INF_VIEW_PC_UUID #language en-US "System UUID" + +#string STR_INF_VIEW_PC_UUID_VALUE #language en-US "None" + +#string STR_INF_VIEW_PC_SERIALNUM #language en-US "Serial number" + +#string STR_INF_VIEW_PC_SERIALNUM_VALUE #language en-US "None" + +#string STR_INF_VIEW_PC_ASSET_TAG #language en-US "Asset tag" + +#string STR_INF_VIEW_PC_ASSET_TAG_VALUE #language en-US "None" + +#string STR_INF_VIEW_FIRMWARE_HEADER #language en-US "\fh!48!Firmware" + +///////////////////////////////////////////////////////////////////////////// +// Form ID 1: Exit +// +#string STR_FP_EXIT_HEADER #language en-US "\fh!48!Exit settings and restart your platform" + +#string STR_FP_EXIT_DESCRIPTION #language en-US "\fh!28!All changes to the settings on this PC have been saved. Restart your PC to exit settings." + +#string STR_FP_RESTART_NOW_BUTTON #language en-US "Restart now" + +///////////////////////////////////////////////////////////////////////////// +// Form ID ?: Security +// +#string STR_SEC_SYSTEM_PASSWORD_HEADING #language en-US "\fh!48!UEFI password" + +#string STR_SEC_SYSTEM_PASSWORD_DESCRIPTION #language en-US "Set up a password to restrict access to the UEFI settings. Users will be required to enter the password to make changes to these settings when the password is set." + +#string STR_SEC_SYSTEM_PASSWORD_SET_BUTTON #language en-US "Add or Change" + +#string STR_SEC_SB_HEADING #language en-US "\fh!48!Secure Boot" + +#string STR_SEC_SB_STATE_TEXT #language en-US "UNK" ## This is a placeholder that should be updated by code. + +#string STR_SEC_SB_STATE_PREAMBLE #language en-US "Secure Boot is" + +#string STR_SEC_SB_STATE_DISABLED #language en-US "Disabled" + +#string STR_SEC_SB_STATE_ENABLED #language en-US "Enabled with" + +#string STR_SEC_SB_MS_ONLY_CONFIG_TEXT #language en-US "Microsoft only" + +#string STR_SEC_SB_MS_PLUS_CONFIG_TEXT #language en-US "Microsoft & 3rd party CA" + +#string STR_SEC_SB_CUSTOM_CONFIG_TEXT #language en-US "custom" + +#string STR_SEC_SB_KEY_CONFIG_TEXT #language en-US "key configuration" + +#string STR_SEC_SB_CHANGE_CONFIG_BUTTON #language en-US "Change configuration" + +#string STR_SEC_SB_WHAT_IS_TITLE #language en-US "Secure Boot help" + +#string STR_SEC_SB_WHAT_IS_LINK #language en-US "What is Secure Boot?" + +///////////////////////////////////////////////////////////////////////////// +// Form ID ?.5: Security (Post-Security Locks) +// +#string STR_SEC_POST_SEC_LOCK_HEADING #language en-US "\fh!48!Restart to modify security settings" + +#string STR_SEC_POST_SEC_LOCK_TEXT #language en-US "The security settings cannot be modified at this point in boot. A restart is required to make changes to the security settings." + +#string STR_SEC_POST_SEC_LOCK_BUTTON #language en-US "Restart to FrontPage" + + +///////////////////////////////////////////////////////////////////////////// +// Dialog: Password Enter/Set +// +#string STR_PWD_ENTER_PWD_TITLEBARTEXT #language en-US "Enter password" + +#string STR_PWD_CAPTION #language en-US "Enter the system password" + +#string STR_PWD_SET_BODYTEXT #language en-US "Passwords may contain a combination of letters, numbers and the special characters [!@#$%^&*()?<>{}[]-_=+|.,;:'`~\"]. The minimum length is 6 characters and the maximum length is 128 characters. Providing a blank password will remove the system password, allowing users to open UEFI settings without providing a password." + +#string STR_PWD_ENTER_BODYTEXT #language en-US "UEFI settings have been protected by a system password. Enter the system password to continue to the settings as an administrator, or click Cancel to proceed as a limited user." + +#string STR_PWD_ERRORMSG_TOOSHORT #language en-US "The provided password is too short." + +#string STR_PWD_ERRORMSG_TOOLONG #language en-US "The provided password is too long." + +#string STR_PWD_ERRORMSG_INVALID_CHAR #language en-US "The provided password contains an invalid character." + +#string STR_PWD_ERRORMSG_AUTHERROR #language en-US "The password is incorrect. Try again." + +#string STR_PWD_ERRORMSG_SET_GENFAILURE #language en-US "Failed to set a password." + +#string STR_PWD_ATTEMPTS_EXPIRED_TITLE #language en-US "Password limit" + +#string STR_PWD_ATTEMPTS_EXPIRED_CAPTION #language en-US "Password attempt limit reached" + +#string STR_PWD_ATTEMPTS_EXPIRED_BODYTEXT #language en-US "The maximum number of invalid password attempts has been reached. Continuing to UEFI settings as a limited user." + + +///////////////////////////////////////////////////////////////////////////// +// Dialog: Secure Boot Management +// +#string STR_SB_CONFIG_TITLEBARTEXT #language en-US "Secure Boot configuration" + +#string STR_SB_CONFIG_CAPTION #language en-US "Change Secure Boot configuration" + +#string STR_SB_CONFIG_BODY #language en-US "Select a Secure Boot certificate keyset." + +#string STR_SB_UPDATE_FAILURE #language en-US "The system failed to update the Secure Boot certificate keyset. The state of Secure Boot on this system has not been modified. Please reboot the system to try again, or open UEFI settings and select a different Secure Boot certificate keyset." + +#string STR_SB_UPDATE_FAILURE_TITLE #language en-US "Secure boot error" + +//////////////////////////////////////////////////////////////////////////////////// +// Dialog and Misc Strings +// +#string STR_SB_VIOLATION_TITLE #language en-US "SecureBoot violation!" + +#string STR_SB_VIOLATION_WARNING #language en-US "One or more of the selected boot devices had a SecureBoot violation! Returning to UEFI settings. Please verify SecureBoot key configuration and boot device selection." + +#string STR_SEC_SB_WHAT_IS_TEXT #language en-US "Secure Boot is configured by selecting a Secure Boot certificate keyset. There are three keysets to choose from on this PC.\r\rMicrosoft only: Only boot software signed by Microsoft will execute on the PC.\r\rMicrosoft & 3rd-party CA: Boot software which is signed by Microsoft or the Microsoft Corporation UEFI CA 2011 will execute on the PC. Choose this option for compatibility with 3rd-party UEFI software and drivers.\r\rNone: No keyset is installed and Secure Boot is disabled on the PC. Any boot software will execute on the PC. This configuration is not recommended and should only be used by advanced users." diff --git a/OemPkg/FrontPage/FrontPageVfr.Vfr b/OemPkg/FrontPage/FrontPageVfr.Vfr index f23a736..a11c15e 100644 --- a/OemPkg/FrontPage/FrontPageVfr.Vfr +++ b/OemPkg/FrontPage/FrontPageVfr.Vfr @@ -1,279 +1,279 @@ -//**@file FrontPage formset definitions -// -// Copyright (C) Microsoft Corporation. All rights reserved. -// SPDX-License-Identifier: BSD-2-Clause-Patent -// -//**/ - -#include - -#include "FrontPageVfr.h" - - -// UEFI Front Page Formset -// -formset - - // Common Formset values - // - guid = FRONT_PAGE_CONFIG_FORMSET_GUID, // Formset GUID - title = STRING_TOKEN(STR_FRONT_PAGE_TITLE), // Formset title (ex: "OEM UEFI") - help = STRING_TOKEN(STR_NULL_STRING), // Formset help: None - classguid = FRONT_PAGE_CONFIG_FORMSET_GUID, // Formset class GUID - class = FRONT_PAGE_CLASS, // Formset class - subclass = FRONT_PAGE_SUBCLASS, // Formset subclass - - //////////////////////////////// - // Varstores - varstore FRONT_PAGE_UI_CONTROLS, - varid = FRONT_PAGE_UI_CONTROLS_VARID, - name = FrontPageUiControls, - guid = FRONT_PAGE_CONFIG_FORMSET_GUID; - - ///////////////////////////////////////////////////////////////////////////// - // Form ID 0: PC Information - // - form formid = FRONT_PAGE_FORM_ID_PCINFO, // PC Information form - title = STRING_TOKEN(STR_NULL_STRING); // Form title: None - - // PC Information header - // - text - help = STRING_TOKEN(STR_NULL_STRING), // PC Information section header - text = STRING_TOKEN(STR_INF_VIEW_PCINFO_HEADER); // - text - help = STRING_TOKEN(STR_NULL_STRING), // SPACING - text = STRING_TOKEN(STR_NULL_STRING); // - - // Group PC information name-value pairs in a grid on the canvas. Note that the number of subtitle name-value - // pairs must match the row & column information passed in via the Grid Opcode. - // - guidop - guid = GRID_START_OPCODE_GUID, // Custom UI Grid opcode - START - datatype = UINT32, // - data = 70, // Grid cell height in pixels. - endguidop; - subtitle text = STRING_TOKEN(STR_NULL_STRING), - flags = HORIZONTAL; - text // - help = STRING_TOKEN(STR_NULL_STRING), // PC Model number - text = STRING_TOKEN(STR_INF_VIEW_PC_MODEL); // - text // - help = STRING_TOKEN(STR_NULL_STRING), // PC Model number value - text = STRING_TOKEN(STR_INF_VIEW_PC_MODEL_VALUE); // - text // - help = STRING_TOKEN(STR_NULL_STRING), // Add a dummy 3rd column to move the 2nd column (values) further to the left. - text = STRING_TOKEN(STR_NULL_STRING); // - subtitle text = STRING_TOKEN(STR_NULL_STRING), - flags = HORIZONTAL; - text // - help = STRING_TOKEN(STR_NULL_STRING), // PC UUID - text = STRING_TOKEN(STR_INF_VIEW_PC_UUID); // - text // - help = STRING_TOKEN(STR_NULL_STRING), // PC UUID value - text = STRING_TOKEN(STR_INF_VIEW_PC_UUID_VALUE); // - subtitle text = STRING_TOKEN(STR_NULL_STRING), - flags = HORIZONTAL; - text // - help = STRING_TOKEN(STR_NULL_STRING), // PC Serial number - text = STRING_TOKEN(STR_INF_VIEW_PC_SERIALNUM); // - text // - help = STRING_TOKEN(STR_NULL_STRING), // PC Serial number value - text = STRING_TOKEN(STR_INF_VIEW_PC_SERIALNUM_VALUE); // - subtitle text = STRING_TOKEN(STR_NULL_STRING), - flags = HORIZONTAL; - text // - help = STRING_TOKEN(STR_NULL_STRING), // PC Asset Tag - text = STRING_TOKEN(STR_INF_VIEW_PC_ASSET_TAG); // - text // - help = STRING_TOKEN(STR_NULL_STRING), // PC Asset Tag value - text = STRING_TOKEN(STR_INF_VIEW_PC_ASSET_TAG_VALUE); // - guidop - guid = GRID_END_OPCODE_GUID, // Custom UI Grid opcode - END - endguidop; - - text - help = STRING_TOKEN(STR_NULL_STRING), // SPACING - text = STRING_TOKEN(STR_NULL_STRING); // - text - help = STRING_TOKEN(STR_NULL_STRING), // SPACING - text = STRING_TOKEN(STR_NULL_STRING); // - text - help = STRING_TOKEN(STR_NULL_STRING), // SPACING - text = STRING_TOKEN(STR_NULL_STRING); // - - text - help = STRING_TOKEN(STR_NULL_STRING), // Firmware Information section header - text = STRING_TOKEN(STR_INF_VIEW_FIRMWARE_HEADER); // - text - help = STRING_TOKEN(STR_NULL_STRING), // SPACING - text = STRING_TOKEN(STR_NULL_STRING); // - - guidop - guid = GRID_START_OPCODE_GUID, // Custom UI Grid opcode - START - datatype = UINT32, // - data = 70, // Grid cell height in pixels. - endguidop; - label LABEL_PCINFO_FW_VERSION_TAG_START; // Firmware versions - label LABEL_PCINFO_FW_VERSION_TAG_END; // - guidop - guid = GRID_END_OPCODE_GUID, // Custom UI Grid opcode - END - endguidop; - - endform; - - ///////////////////////////////////////////////////////////////////////////// - // Form ID 1: Security - // - form formid = FRONT_PAGE_FORM_ID_SECURITY, // Security form - title = STRING_TOKEN(STR_NULL_STRING); // Form title: None - - // - // PRIMARY FORM - // This form is the primary Security form, and is displayed whenever FrontPage is entered normally. - // This form is hidden when we are post-security locks. - // - suppressif NOT ideqval FrontPageUiControls.PostSecurityLocks == 0x00; - // - System Password - // - text - help = STRING_TOKEN(STR_NULL_STRING), // System Password section header - text = STRING_TOKEN(STR_SEC_SYSTEM_PASSWORD_HEADING); // - text - help = STRING_TOKEN(STR_NULL_STRING), // SPACING - text = STRING_TOKEN(STR_NULL_STRING); // - text - help = STRING_TOKEN(STR_NULL_STRING), // System Password description - text = STRING_TOKEN(STR_SEC_SYSTEM_PASSWORD_DESCRIPTION); // - text - help = STRING_TOKEN(STR_NULL_STRING), // SPACING - text = STRING_TOKEN(STR_NULL_STRING); // - - text - help = STRING_TOKEN(STR_NULL_STRING), // Set password button - text = STRING_TOKEN(STR_SEC_SYSTEM_PASSWORD_SET_BUTTON), // - flags = INTERACTIVE, // INTERACTIVE = Button - key = FRONT_PAGE_ACTION_SEC_SET_SYSTEM_PASSWORD; - - text - help = STRING_TOKEN(STR_NULL_STRING), // SPACING - text = STRING_TOKEN(STR_NULL_STRING); // - text - help = STRING_TOKEN(STR_NULL_STRING), // SPACING - text = STRING_TOKEN(STR_NULL_STRING); // - - // - Secure Boot - // - text - help = STRING_TOKEN(STR_NULL_STRING), // Secure Boot section header - text = STRING_TOKEN(STR_SEC_SB_HEADING); // - - text - help = STRING_TOKEN(STR_NULL_STRING), // SPACING - text = STRING_TOKEN(STR_NULL_STRING); // - - text - help = STRING_TOKEN(STR_NULL_STRING), // Secure Boot State - text = STRING_TOKEN(STR_SEC_SB_STATE_TEXT); // This will be filled in with the current state. - - text - help = STRING_TOKEN(STR_NULL_STRING), // SPACING - text = STRING_TOKEN(STR_NULL_STRING); // - - text - help = STRING_TOKEN(STR_NULL_STRING), // Change SB config button - text = STRING_TOKEN(STR_SEC_SB_CHANGE_CONFIG_BUTTON), // - flags = INTERACTIVE, // INTERACTIVE = Button - key = FRONT_PAGE_ACTION_SEC_CHANGE_SB_CONFIG; - - text - help = STRING_TOKEN(STR_NULL_STRING), // SPACING - text = STRING_TOKEN(STR_NULL_STRING); // - - text - help = STRING_TOKEN(STR_NULL_STRING), // "What is Secure Boot?" link - text = STRING_TOKEN(STR_SEC_SB_WHAT_IS_LINK), // - flags = INTERACTIVE | READ_ONLY, // INTERACTIVE = Button, READ_ONLY = Link-Style Button - key = FRONT_PAGE_ACTION_SEC_DISPLAY_SB_WHAT_IS; - text - help = STRING_TOKEN(STR_NULL_STRING), // SPACING - text = STRING_TOKEN(STR_NULL_STRING); // - text - help = STRING_TOKEN(STR_NULL_STRING), // SPACING - text = STRING_TOKEN(STR_NULL_STRING); // - endif; // suppressif NOT ideqval FrontPageUiControls.PostSecurityLocks == 0x00; - // - // END PRIMARY FORM - // - - // - // POST SECURITY LOCKS FORM - // This form is presented to the user if FrontPage is displayed post-security locks. - // This form will indicate that security settings cannot be modified at this time - // and that the user should reboot to modify security settings. - // - suppressif ideqval FrontPageUiControls.PostSecurityLocks == 0x00; - - text - help = STRING_TOKEN(STR_NULL_STRING), // Section Header - text = STRING_TOKEN(STR_SEC_POST_SEC_LOCK_HEADING); // - - text - help = STRING_TOKEN(STR_NULL_STRING), // SPACING - text = STRING_TOKEN(STR_NULL_STRING); // - - text - help = STRING_TOKEN(STR_NULL_STRING), // PostSecurityLocks description - text = STRING_TOKEN(STR_SEC_POST_SEC_LOCK_TEXT); // - - text - help = STRING_TOKEN(STR_NULL_STRING), // SPACING - text = STRING_TOKEN(STR_NULL_STRING); // - - text - help = STRING_TOKEN(STR_NULL_STRING), // Restart button - text = STRING_TOKEN(STR_SEC_POST_SEC_LOCK_BUTTON), // - flags = INTERACTIVE, // INTERACTIVE = Button - key = FRONT_PAGE_ACTION_REBOOT_TO_FRONTPAGE; - - endif; // suppressif ideqval FrontPageUiControls.PostSecurityLocks == 0x00 - // - // END POST SECURITY LOCKS FORM - // - - // FORCE UPDATE SECTION - // This section can change opcodes to force the rendering engine to redraw the form. - label LABEL_UPDATE_SECURITY_START; - text - help = STRING_TOKEN(STR_NULL_STRING), // SPACING - text = STRING_TOKEN(STR_NULL_STRING); // - label LABEL_UPDATE_SECURITY_END; - endform; - - ///////////////////////////////////////////////////////////////////////////// - // Form ID 2: Exit - // - form formid = FRONT_PAGE_FORM_ID_EXIT, // Exit form - title = STRING_TOKEN(STR_NULL_STRING); // Form title: None - - text - help = STRING_TOKEN(STR_NULL_STRING), // Exit FrontPage settings header - text = STRING_TOKEN(STR_FP_EXIT_HEADER); // - text - help = STRING_TOKEN(STR_NULL_STRING), // SPACING - text = STRING_TOKEN(STR_NULL_STRING); // - text - help = STRING_TOKEN(STR_NULL_STRING), // Exit FrontPage settings description - text = STRING_TOKEN(STR_FP_EXIT_DESCRIPTION); // - text - help = STRING_TOKEN(STR_NULL_STRING), // SPACING - text = STRING_TOKEN(STR_NULL_STRING); // - - text - help = STRING_TOKEN(STR_NULL_STRING), // "Restart now" button - text = STRING_TOKEN(STR_FP_RESTART_NOW_BUTTON), // - flags = INTERACTIVE | RESET_REQUIRED, - key = FRONT_PAGE_ACTION_EXIT_FRONTPAGE; - endform; - -endformset; +//**@file FrontPage formset definitions +// +// Copyright (C) Microsoft Corporation. All rights reserved. +// SPDX-License-Identifier: BSD-2-Clause-Patent +// +//**/ + +#include + +#include "FrontPageVfr.h" + + +// UEFI Front Page Formset +// +formset + + // Common Formset values + // + guid = FRONT_PAGE_CONFIG_FORMSET_GUID, // Formset GUID + title = STRING_TOKEN(STR_FRONT_PAGE_TITLE), // Formset title (ex: "OEM UEFI") + help = STRING_TOKEN(STR_NULL_STRING), // Formset help: None + classguid = FRONT_PAGE_CONFIG_FORMSET_GUID, // Formset class GUID + class = FRONT_PAGE_CLASS, // Formset class + subclass = FRONT_PAGE_SUBCLASS, // Formset subclass + + //////////////////////////////// + // Varstores + varstore FRONT_PAGE_UI_CONTROLS, + varid = FRONT_PAGE_UI_CONTROLS_VARID, + name = FrontPageUiControls, + guid = FRONT_PAGE_CONFIG_FORMSET_GUID; + + ///////////////////////////////////////////////////////////////////////////// + // Form ID 0: PC Information + // + form formid = FRONT_PAGE_FORM_ID_PCINFO, // PC Information form + title = STRING_TOKEN(STR_NULL_STRING); // Form title: None + + // PC Information header + // + text + help = STRING_TOKEN(STR_NULL_STRING), // PC Information section header + text = STRING_TOKEN(STR_INF_VIEW_PCINFO_HEADER); // + text + help = STRING_TOKEN(STR_NULL_STRING), // SPACING + text = STRING_TOKEN(STR_NULL_STRING); // + + // Group PC information name-value pairs in a grid on the canvas. Note that the number of subtitle name-value + // pairs must match the row & column information passed in via the Grid Opcode. + // + guidop + guid = GRID_START_OPCODE_GUID, // Custom UI Grid opcode - START + datatype = UINT32, // + data = 70, // Grid cell height in pixels. + endguidop; + subtitle text = STRING_TOKEN(STR_NULL_STRING), + flags = HORIZONTAL; + text // + help = STRING_TOKEN(STR_NULL_STRING), // PC Model number + text = STRING_TOKEN(STR_INF_VIEW_PC_MODEL); // + text // + help = STRING_TOKEN(STR_NULL_STRING), // PC Model number value + text = STRING_TOKEN(STR_INF_VIEW_PC_MODEL_VALUE); // + text // + help = STRING_TOKEN(STR_NULL_STRING), // Add a dummy 3rd column to move the 2nd column (values) further to the left. + text = STRING_TOKEN(STR_NULL_STRING); // + subtitle text = STRING_TOKEN(STR_NULL_STRING), + flags = HORIZONTAL; + text // + help = STRING_TOKEN(STR_NULL_STRING), // PC UUID + text = STRING_TOKEN(STR_INF_VIEW_PC_UUID); // + text // + help = STRING_TOKEN(STR_NULL_STRING), // PC UUID value + text = STRING_TOKEN(STR_INF_VIEW_PC_UUID_VALUE); // + subtitle text = STRING_TOKEN(STR_NULL_STRING), + flags = HORIZONTAL; + text // + help = STRING_TOKEN(STR_NULL_STRING), // PC Serial number + text = STRING_TOKEN(STR_INF_VIEW_PC_SERIALNUM); // + text // + help = STRING_TOKEN(STR_NULL_STRING), // PC Serial number value + text = STRING_TOKEN(STR_INF_VIEW_PC_SERIALNUM_VALUE); // + subtitle text = STRING_TOKEN(STR_NULL_STRING), + flags = HORIZONTAL; + text // + help = STRING_TOKEN(STR_NULL_STRING), // PC Asset Tag + text = STRING_TOKEN(STR_INF_VIEW_PC_ASSET_TAG); // + text // + help = STRING_TOKEN(STR_NULL_STRING), // PC Asset Tag value + text = STRING_TOKEN(STR_INF_VIEW_PC_ASSET_TAG_VALUE); // + guidop + guid = GRID_END_OPCODE_GUID, // Custom UI Grid opcode - END + endguidop; + + text + help = STRING_TOKEN(STR_NULL_STRING), // SPACING + text = STRING_TOKEN(STR_NULL_STRING); // + text + help = STRING_TOKEN(STR_NULL_STRING), // SPACING + text = STRING_TOKEN(STR_NULL_STRING); // + text + help = STRING_TOKEN(STR_NULL_STRING), // SPACING + text = STRING_TOKEN(STR_NULL_STRING); // + + text + help = STRING_TOKEN(STR_NULL_STRING), // Firmware Information section header + text = STRING_TOKEN(STR_INF_VIEW_FIRMWARE_HEADER); // + text + help = STRING_TOKEN(STR_NULL_STRING), // SPACING + text = STRING_TOKEN(STR_NULL_STRING); // + + guidop + guid = GRID_START_OPCODE_GUID, // Custom UI Grid opcode - START + datatype = UINT32, // + data = 70, // Grid cell height in pixels. + endguidop; + label LABEL_PCINFO_FW_VERSION_TAG_START; // Firmware versions + label LABEL_PCINFO_FW_VERSION_TAG_END; // + guidop + guid = GRID_END_OPCODE_GUID, // Custom UI Grid opcode - END + endguidop; + + endform; + + ///////////////////////////////////////////////////////////////////////////// + // Form ID 1: Security + // + form formid = FRONT_PAGE_FORM_ID_SECURITY, // Security form + title = STRING_TOKEN(STR_NULL_STRING); // Form title: None + + // + // PRIMARY FORM + // This form is the primary Security form, and is displayed whenever FrontPage is entered normally. + // This form is hidden when we are post-security locks. + // + suppressif NOT ideqval FrontPageUiControls.PostSecurityLocks == 0x00; + // - System Password + // + text + help = STRING_TOKEN(STR_NULL_STRING), // System Password section header + text = STRING_TOKEN(STR_SEC_SYSTEM_PASSWORD_HEADING); // + text + help = STRING_TOKEN(STR_NULL_STRING), // SPACING + text = STRING_TOKEN(STR_NULL_STRING); // + text + help = STRING_TOKEN(STR_NULL_STRING), // System Password description + text = STRING_TOKEN(STR_SEC_SYSTEM_PASSWORD_DESCRIPTION); // + text + help = STRING_TOKEN(STR_NULL_STRING), // SPACING + text = STRING_TOKEN(STR_NULL_STRING); // + + text + help = STRING_TOKEN(STR_NULL_STRING), // Set password button + text = STRING_TOKEN(STR_SEC_SYSTEM_PASSWORD_SET_BUTTON), // + flags = INTERACTIVE, // INTERACTIVE = Button + key = FRONT_PAGE_ACTION_SEC_SET_SYSTEM_PASSWORD; + + text + help = STRING_TOKEN(STR_NULL_STRING), // SPACING + text = STRING_TOKEN(STR_NULL_STRING); // + text + help = STRING_TOKEN(STR_NULL_STRING), // SPACING + text = STRING_TOKEN(STR_NULL_STRING); // + + // - Secure Boot + // + text + help = STRING_TOKEN(STR_NULL_STRING), // Secure Boot section header + text = STRING_TOKEN(STR_SEC_SB_HEADING); // + + text + help = STRING_TOKEN(STR_NULL_STRING), // SPACING + text = STRING_TOKEN(STR_NULL_STRING); // + + text + help = STRING_TOKEN(STR_NULL_STRING), // Secure Boot State + text = STRING_TOKEN(STR_SEC_SB_STATE_TEXT); // This will be filled in with the current state. + + text + help = STRING_TOKEN(STR_NULL_STRING), // SPACING + text = STRING_TOKEN(STR_NULL_STRING); // + + text + help = STRING_TOKEN(STR_NULL_STRING), // Change SB config button + text = STRING_TOKEN(STR_SEC_SB_CHANGE_CONFIG_BUTTON), // + flags = INTERACTIVE, // INTERACTIVE = Button + key = FRONT_PAGE_ACTION_SEC_CHANGE_SB_CONFIG; + + text + help = STRING_TOKEN(STR_NULL_STRING), // SPACING + text = STRING_TOKEN(STR_NULL_STRING); // + + text + help = STRING_TOKEN(STR_NULL_STRING), // "What is Secure Boot?" link + text = STRING_TOKEN(STR_SEC_SB_WHAT_IS_LINK), // + flags = INTERACTIVE | READ_ONLY, // INTERACTIVE = Button, READ_ONLY = Link-Style Button + key = FRONT_PAGE_ACTION_SEC_DISPLAY_SB_WHAT_IS; + text + help = STRING_TOKEN(STR_NULL_STRING), // SPACING + text = STRING_TOKEN(STR_NULL_STRING); // + text + help = STRING_TOKEN(STR_NULL_STRING), // SPACING + text = STRING_TOKEN(STR_NULL_STRING); // + endif; // suppressif NOT ideqval FrontPageUiControls.PostSecurityLocks == 0x00; + // + // END PRIMARY FORM + // + + // + // POST SECURITY LOCKS FORM + // This form is presented to the user if FrontPage is displayed post-security locks. + // This form will indicate that security settings cannot be modified at this time + // and that the user should reboot to modify security settings. + // + suppressif ideqval FrontPageUiControls.PostSecurityLocks == 0x00; + + text + help = STRING_TOKEN(STR_NULL_STRING), // Section Header + text = STRING_TOKEN(STR_SEC_POST_SEC_LOCK_HEADING); // + + text + help = STRING_TOKEN(STR_NULL_STRING), // SPACING + text = STRING_TOKEN(STR_NULL_STRING); // + + text + help = STRING_TOKEN(STR_NULL_STRING), // PostSecurityLocks description + text = STRING_TOKEN(STR_SEC_POST_SEC_LOCK_TEXT); // + + text + help = STRING_TOKEN(STR_NULL_STRING), // SPACING + text = STRING_TOKEN(STR_NULL_STRING); // + + text + help = STRING_TOKEN(STR_NULL_STRING), // Restart button + text = STRING_TOKEN(STR_SEC_POST_SEC_LOCK_BUTTON), // + flags = INTERACTIVE, // INTERACTIVE = Button + key = FRONT_PAGE_ACTION_REBOOT_TO_FRONTPAGE; + + endif; // suppressif ideqval FrontPageUiControls.PostSecurityLocks == 0x00 + // + // END POST SECURITY LOCKS FORM + // + + // FORCE UPDATE SECTION + // This section can change opcodes to force the rendering engine to redraw the form. + label LABEL_UPDATE_SECURITY_START; + text + help = STRING_TOKEN(STR_NULL_STRING), // SPACING + text = STRING_TOKEN(STR_NULL_STRING); // + label LABEL_UPDATE_SECURITY_END; + endform; + + ///////////////////////////////////////////////////////////////////////////// + // Form ID 2: Exit + // + form formid = FRONT_PAGE_FORM_ID_EXIT, // Exit form + title = STRING_TOKEN(STR_NULL_STRING); // Form title: None + + text + help = STRING_TOKEN(STR_NULL_STRING), // Exit FrontPage settings header + text = STRING_TOKEN(STR_FP_EXIT_HEADER); // + text + help = STRING_TOKEN(STR_NULL_STRING), // SPACING + text = STRING_TOKEN(STR_NULL_STRING); // + text + help = STRING_TOKEN(STR_NULL_STRING), // Exit FrontPage settings description + text = STRING_TOKEN(STR_FP_EXIT_DESCRIPTION); // + text + help = STRING_TOKEN(STR_NULL_STRING), // SPACING + text = STRING_TOKEN(STR_NULL_STRING); // + + text + help = STRING_TOKEN(STR_NULL_STRING), // "Restart now" button + text = STRING_TOKEN(STR_FP_RESTART_NOW_BUTTON), // + flags = INTERACTIVE | RESET_REQUIRED, + key = FRONT_PAGE_ACTION_EXIT_FRONTPAGE; + endform; + +endformset; diff --git a/OemPkg/FrontpageButtonsVolumeUp/FrontpageButtonsVolumeUp.inf b/OemPkg/FrontpageButtonsVolumeUp/FrontpageButtonsVolumeUp.inf index 8210bca..86f58ea 100644 --- a/OemPkg/FrontpageButtonsVolumeUp/FrontpageButtonsVolumeUp.inf +++ b/OemPkg/FrontpageButtonsVolumeUp/FrontpageButtonsVolumeUp.inf @@ -1,46 +1,46 @@ -## @file FrontpageButtonsVolumeUp.inf -# -# This module installs the MsButtonServicesProtocol and reports that Vol+ and power are being pressed. -# This will cause FrontPage to be selected on each boot. -# Not to be used in production. -# -# Copyright (C) Microsoft Corporation. All rights reserved. -# SPDX-License-Identifier: BSD-2-Clause-Patent -## - -[Defines] - INF_VERSION = 0x00010005 - BASE_NAME = FrontpageButtonsVolumeUp - FILE_GUID = 964EFA94-9929-4EF8-9E68-8F6F6FA62E62 - MODULE_TYPE = DXE_DRIVER - VERSION_STRING = 1.0 - ENTRY_POINT = ButtonsInit - -# -# The following information is for reference only and not required by the build tools. -# -# VALID_ARCHITECTURES = IA32 X64 IPF EBC AARCH64 -# - -[Sources] - FrontpageButtonsVolumeUp.c - -[Packages] - MdePkg/MdePkg.dec - OemPkg/OemPkg.dec - -[LibraryClasses] - UefiDriverEntryPoint - DebugLib - UefiBootServicesTableLib - MemoryAllocationLib - -[Guids] - -[Protocols] - gMsButtonServicesProtocolGuid #Produces - -[Pcd] - -[Depex] - TRUE +## @file FrontpageButtonsVolumeUp.inf +# +# This module installs the MsButtonServicesProtocol and reports that Vol+ and power are being pressed. +# This will cause FrontPage to be selected on each boot. +# Not to be used in production. +# +# Copyright (C) Microsoft Corporation. All rights reserved. +# SPDX-License-Identifier: BSD-2-Clause-Patent +## + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = FrontpageButtonsVolumeUp + FILE_GUID = 964EFA94-9929-4EF8-9E68-8F6F6FA62E62 + MODULE_TYPE = DXE_DRIVER + VERSION_STRING = 1.0 + ENTRY_POINT = ButtonsInit + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = IA32 X64 IPF EBC AARCH64 +# + +[Sources] + FrontpageButtonsVolumeUp.c + +[Packages] + MdePkg/MdePkg.dec + OemPkg/OemPkg.dec + +[LibraryClasses] + UefiDriverEntryPoint + DebugLib + UefiBootServicesTableLib + MemoryAllocationLib + +[Guids] + +[Protocols] + gMsButtonServicesProtocolGuid #Produces + +[Pcd] + +[Depex] + TRUE diff --git a/OemPkg/Library/DfciDeviceIdSupportLib/DfciDeviceIdSupportLib.inf b/OemPkg/Library/DfciDeviceIdSupportLib/DfciDeviceIdSupportLib.inf index 91ffb1c..45204e9 100644 --- a/OemPkg/Library/DfciDeviceIdSupportLib/DfciDeviceIdSupportLib.inf +++ b/OemPkg/Library/DfciDeviceIdSupportLib/DfciDeviceIdSupportLib.inf @@ -1,51 +1,51 @@ -## @file DfciDeviceIdSupportLib.inf -# -# Implementation sample for DfciDeviceIdSupportLib. -# -# Copyright (C) Microsoft Corporation. All rights reserved. -# SPDX-License-Identifier: BSD-2-Clause-Patent -# -## - -[Defines] - INF_VERSION = 0x00010005 - BASE_NAME = DfciDeviceIdSupportLib - FILE_GUID = CC3386FC-7047-4B53-A60C-E7F1C4D7B397 - MODULE_TYPE = DXE_DRIVER - VERSION_STRING = 1.0 - LIBRARY_CLASS = DfciDeviceIdSupportLib|DXE_DRIVER UEFI_APPLICATION - CONSTRUCTOR = DfciIdSupportConstructor - - -# -# The following information is for reference only and not required by the build tools. -# -# VALID_ARCHITECTURES = ANY -# - -[Sources] - DfciDeviceIdSupportLib.c - -[Packages] - MdePkg/MdePkg.dec - MdeModulePkg/MdeModulePkg.dec - DfciPkg/DfciPkg.dec - -[LibraryClasses] - DebugLib - BaseLib - UefiLib - MemoryAllocationLib - UefiBootServicesTableLib - BaseMemoryLib - -[Protocols] - gEfiSmbiosProtocolGuid ## CONSUMES - -[Guids] - -[Pcd] - gEfiMdeModulePkgTokenSpaceGuid.PcdSystemFmpCapsuleImageTypeIdGuid - -[Depex] +## @file DfciDeviceIdSupportLib.inf +# +# Implementation sample for DfciDeviceIdSupportLib. +# +# Copyright (C) Microsoft Corporation. All rights reserved. +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = DfciDeviceIdSupportLib + FILE_GUID = CC3386FC-7047-4B53-A60C-E7F1C4D7B397 + MODULE_TYPE = DXE_DRIVER + VERSION_STRING = 1.0 + LIBRARY_CLASS = DfciDeviceIdSupportLib|DXE_DRIVER UEFI_APPLICATION + CONSTRUCTOR = DfciIdSupportConstructor + + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = ANY +# + +[Sources] + DfciDeviceIdSupportLib.c + +[Packages] + MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec + DfciPkg/DfciPkg.dec + +[LibraryClasses] + DebugLib + BaseLib + UefiLib + MemoryAllocationLib + UefiBootServicesTableLib + BaseMemoryLib + +[Protocols] + gEfiSmbiosProtocolGuid ## CONSUMES + +[Guids] + +[Pcd] + gEfiMdeModulePkgTokenSpaceGuid.PcdSystemFmpCapsuleImageTypeIdGuid + +[Depex] gEfiSmbiosProtocolGuid \ No newline at end of file diff --git a/OemPkg/Library/DfciGroupLib/DfciGroups.inf b/OemPkg/Library/DfciGroupLib/DfciGroups.inf index 3e96fe3..3d16eb8 100644 --- a/OemPkg/Library/DfciGroupLib/DfciGroups.inf +++ b/OemPkg/Library/DfciGroupLib/DfciGroups.inf @@ -1,48 +1,48 @@ -## @file DfciGroups.inf -# -# Implementation sample for support Dfci Groups -# -# Copyright (C) Microsoft Corporation. All rights reserved. -# SPDX-License-Identifier: BSD-2-Clause-Patent -# -## - -[Defines] - INF_VERSION = 0x00010017 - BASE_NAME = DfciGroupLib - FILE_GUID = CA514A50-C93D-4276-AD3D-CB7DC4EBC1F9 - MODULE_TYPE = DXE_DRIVER - VERSION_STRING = 1.0 - LIBRARY_CLASS = DfciGroupLib | DXE_DRIVER -# -# The following information is for reference only and not required by the build tools. -# -# VALID_ARCHITECTURES = ANY -# - -[Sources] - DfciGroups.c - -[Packages] - DfciPkg/DfciPkg.dec - MdePkg/MdePkg.dec - PcBdsPkg/PcBdsPkg.dec - -[LibraryClasses] - BaseLib - BaseMemoryLib - DebugLib - MemoryAllocationLib - PcdLib - UefiBootServicesTableLib - UefiLib - UefiRuntimeServicesTableLib - -[Guids] - -[Protocols] - -[Pcd] - -[Depex] - TRUE +## @file DfciGroups.inf +# +# Implementation sample for support Dfci Groups +# +# Copyright (C) Microsoft Corporation. All rights reserved. +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + INF_VERSION = 0x00010017 + BASE_NAME = DfciGroupLib + FILE_GUID = CA514A50-C93D-4276-AD3D-CB7DC4EBC1F9 + MODULE_TYPE = DXE_DRIVER + VERSION_STRING = 1.0 + LIBRARY_CLASS = DfciGroupLib | DXE_DRIVER +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = ANY +# + +[Sources] + DfciGroups.c + +[Packages] + DfciPkg/DfciPkg.dec + MdePkg/MdePkg.dec + PcBdsPkg/PcBdsPkg.dec + +[LibraryClasses] + BaseLib + BaseMemoryLib + DebugLib + MemoryAllocationLib + PcdLib + UefiBootServicesTableLib + UefiLib + UefiRuntimeServicesTableLib + +[Guids] + +[Protocols] + +[Pcd] + +[Depex] + TRUE diff --git a/OemPkg/Library/DfciUiSupportLib/DfciUiSupportLib.inf b/OemPkg/Library/DfciUiSupportLib/DfciUiSupportLib.inf index cc9bcde..288984a 100644 --- a/OemPkg/Library/DfciUiSupportLib/DfciUiSupportLib.inf +++ b/OemPkg/Library/DfciUiSupportLib/DfciUiSupportLib.inf @@ -1,48 +1,48 @@ -## @file DfciUiSupportLib.inf -# -# Library Instance for UI support functions for DFCI. -# -# Copyright (C) Microsoft Corporation. All rights reserved. -# SPDX-License-Identifier: BSD-2-Clause-Patent -# -## - - -[Defines] - INF_VERSION = 0x00010017 - BASE_NAME = DfciUiSupportLib - FILE_GUID = 522EBB9A-D224-40CF-BD3D-700C2D2E789C - VERSION_STRING = 1.0 - MODULE_TYPE = DXE_DRIVER - LIBRARY_CLASS = DfciUiSupportLib | DXE_DRIVER - -# -# The following information is for reference only and not required by the build tools. -# -# VALID_ARCHITECTURES = ANY -# - - -[Sources] - DfciUiSupportLib.c - -[Packages] - MdePkg/MdePkg.dec - DfciPkg/DfciPkg.dec - MsGraphicsPkg/MsGraphicsPkg.dec - OemPkg/OemPkg.dec - -[LibraryClasses] - BaseLib - DebugLib - MemoryAllocationLib - SwmDialogsLib - UefiBootServicesTableLib - UefiLib - -[Protocols] - gMsSWMProtocolGuid #sometimes consumes - -[Guids] - gEfiEventPreReadyToBootGuid - +## @file DfciUiSupportLib.inf +# +# Library Instance for UI support functions for DFCI. +# +# Copyright (C) Microsoft Corporation. All rights reserved. +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + + +[Defines] + INF_VERSION = 0x00010017 + BASE_NAME = DfciUiSupportLib + FILE_GUID = 522EBB9A-D224-40CF-BD3D-700C2D2E789C + VERSION_STRING = 1.0 + MODULE_TYPE = DXE_DRIVER + LIBRARY_CLASS = DfciUiSupportLib | DXE_DRIVER + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = ANY +# + + +[Sources] + DfciUiSupportLib.c + +[Packages] + MdePkg/MdePkg.dec + DfciPkg/DfciPkg.dec + MsGraphicsPkg/MsGraphicsPkg.dec + OemPkg/OemPkg.dec + +[LibraryClasses] + BaseLib + DebugLib + MemoryAllocationLib + SwmDialogsLib + UefiBootServicesTableLib + UefiLib + +[Protocols] + gMsSWMProtocolGuid #sometimes consumes + +[Guids] + gEfiEventPreReadyToBootGuid + diff --git a/OemPkg/Library/MsAltBootLib/MsAltBootLib.inf b/OemPkg/Library/MsAltBootLib/MsAltBootLib.inf index a6b5c67..7d05fc1 100644 --- a/OemPkg/Library/MsAltBootLib/MsAltBootLib.inf +++ b/OemPkg/Library/MsAltBootLib/MsAltBootLib.inf @@ -1,42 +1,42 @@ -## -# @file Library to interface with alternate boot variable -# -# Copyright (C) Microsoft Corporation. All rights reserved. -# SPDX-License-Identifier: BSD-2-Clause-Patent -# -## - -[Defines] - INF_VERSION = 0x00010005 - BASE_NAME = MsAltBootLib - FILE_GUID = 104ED46A-2D13-4B46-AEE6-5F9122F9F525 - MODULE_TYPE = DXE_DRIVER - VERSION_STRING = 1.0 - LIBRARY_CLASS = MsAltBootLib - -# -# The following information is for reference only and not required by the build -# tools. -# -# VALID_ARCHITECTURES = IA32 X64 -# - -[Sources] - MsAltBootLib.c - -[Packages] - MdePkg/MdePkg.dec - OemPkg/OemPkg.dec - PcBdsPkg/PcBdsPkg.dec - -[LibraryClasses] - -[Protocols] - -[Guids] - gAltBootGuid - -[Pcd] - -[Depex] - TRUE +## +# @file Library to interface with alternate boot variable +# +# Copyright (C) Microsoft Corporation. All rights reserved. +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = MsAltBootLib + FILE_GUID = 104ED46A-2D13-4B46-AEE6-5F9122F9F525 + MODULE_TYPE = DXE_DRIVER + VERSION_STRING = 1.0 + LIBRARY_CLASS = MsAltBootLib + +# +# The following information is for reference only and not required by the build +# tools. +# +# VALID_ARCHITECTURES = IA32 X64 +# + +[Sources] + MsAltBootLib.c + +[Packages] + MdePkg/MdePkg.dec + OemPkg/OemPkg.dec + PcBdsPkg/PcBdsPkg.dec + +[LibraryClasses] + +[Protocols] + +[Guids] + gAltBootGuid + +[Pcd] + +[Depex] + TRUE diff --git a/OemPkg/Library/MsBootPolicyLib/MsBootPolicyLib.inf b/OemPkg/Library/MsBootPolicyLib/MsBootPolicyLib.inf index 230b878..c37e570 100644 --- a/OemPkg/Library/MsBootPolicyLib/MsBootPolicyLib.inf +++ b/OemPkg/Library/MsBootPolicyLib/MsBootPolicyLib.inf @@ -1,49 +1,49 @@ -## @file -# Library that platform implemented to determine boot type -# -# Copyright (C) Microsoft Corporation. All rights reserved. -# SPDX-License-Identifier: BSD-2-Clause-Patent -## - -[Defines] - INF_VERSION = 0x00010005 - BASE_NAME = MsBootPolicyLib - FILE_GUID = 8F9D1D45-AA09-4028-BFB6-58B9EEAB3B25 - MODULE_TYPE = DXE_DRIVER - VERSION_STRING = 1.0 - LIBRARY_CLASS = MsBootPolicyLib|DXE_DRIVER UEFI_APPLICATION - CONSTRUCTOR = MsBootPolicyLibConstructor - -# -# The following information is for reference only and not required by the build tools. -# -# VALID_ARCHITECTURES = IA32 X64 IPF EBC -# - -[Sources] - MsBootPolicyLib.c - -[Packages] - MdePkg/MdePkg.dec - PcBdsPkg/PcBdsPkg.dec - OemPkg/OemPkg.dec - DfciPkg/DfciPkg.dec - MsCorePkg/MsCorePkg.dec - MdeModulePkg/MdeModulePkg.dec - -[LibraryClasses] - DebugLib - DevicePathLib - MemoryAllocationLib - UefiBootServicesTableLib - UefiRuntimeServicesTableLib - MsPlatformDevicesLib - -[Protocols] - gDfciSettingAccessProtocolGuid ## CONSUMES - gMsButtonServicesProtocolGuid ## CONSUMES - -[Guids] - -[Pcd] - gPcBdsPkgTokenSpaceGuid.PcdBdsBootPolicy +## @file +# Library that platform implemented to determine boot type +# +# Copyright (C) Microsoft Corporation. All rights reserved. +# SPDX-License-Identifier: BSD-2-Clause-Patent +## + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = MsBootPolicyLib + FILE_GUID = 8F9D1D45-AA09-4028-BFB6-58B9EEAB3B25 + MODULE_TYPE = DXE_DRIVER + VERSION_STRING = 1.0 + LIBRARY_CLASS = MsBootPolicyLib|DXE_DRIVER UEFI_APPLICATION + CONSTRUCTOR = MsBootPolicyLibConstructor + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = IA32 X64 IPF EBC +# + +[Sources] + MsBootPolicyLib.c + +[Packages] + MdePkg/MdePkg.dec + PcBdsPkg/PcBdsPkg.dec + OemPkg/OemPkg.dec + DfciPkg/DfciPkg.dec + MsCorePkg/MsCorePkg.dec + MdeModulePkg/MdeModulePkg.dec + +[LibraryClasses] + DebugLib + DevicePathLib + MemoryAllocationLib + UefiBootServicesTableLib + UefiRuntimeServicesTableLib + MsPlatformDevicesLib + +[Protocols] + gDfciSettingAccessProtocolGuid ## CONSUMES + gMsButtonServicesProtocolGuid ## CONSUMES + +[Guids] + +[Pcd] + gPcBdsPkgTokenSpaceGuid.PcdBdsBootPolicy diff --git a/OemPkg/Library/MsNVBootReasonLib/MsNVBootReasonLib.inf b/OemPkg/Library/MsNVBootReasonLib/MsNVBootReasonLib.inf index 031b1ff..d98a7e3 100644 --- a/OemPkg/Library/MsNVBootReasonLib/MsNVBootReasonLib.inf +++ b/OemPkg/Library/MsNVBootReasonLib/MsNVBootReasonLib.inf @@ -1,42 +1,42 @@ -## @file -# Library to provide interface on Reboot Reason non volatile variables -# -# Copyright (C) Microsoft Corporation. All rights reserved. -# SPDX-License-Identifier: BSD-2-Clause-Patent -# -## - -[Defines] - INF_VERSION = 0x00010005 - BASE_NAME = MsNVBootReasonLib - FILE_GUID = 4D3B9FF6-5790-4781-8D72-257A006C842A - MODULE_TYPE = DXE_DRIVER - VERSION_STRING = 1.0 - LIBRARY_CLASS = MsNVBootReasonLib|DXE_DRIVER UEFI_APPLICATION - -# -# The following information is for reference only and not required by the build tools. -# -# VALID_ARCHITECTURES = IA32 X64 AARCH64 -# - -[Sources] - MsNVBootReasonLib.c - -[Packages] - MdePkg/MdePkg.dec - PcBdsPkg/PcBdsPkg.dec - OemPkg/OemPkg.dec - MsCorePkg/MsCorePkg.dec - MdeModulePkg/MdeModulePkg.dec - -[LibraryClasses] - UefiRuntimeServicesTableLib - DebugLib - -[Protocols] - -[Guids] - gOemBootNVVarGuid - -[Pcd] +## @file +# Library to provide interface on Reboot Reason non volatile variables +# +# Copyright (C) Microsoft Corporation. All rights reserved. +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = MsNVBootReasonLib + FILE_GUID = 4D3B9FF6-5790-4781-8D72-257A006C842A + MODULE_TYPE = DXE_DRIVER + VERSION_STRING = 1.0 + LIBRARY_CLASS = MsNVBootReasonLib|DXE_DRIVER UEFI_APPLICATION + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = IA32 X64 AARCH64 +# + +[Sources] + MsNVBootReasonLib.c + +[Packages] + MdePkg/MdePkg.dec + PcBdsPkg/PcBdsPkg.dec + OemPkg/OemPkg.dec + MsCorePkg/MsCorePkg.dec + MdeModulePkg/MdeModulePkg.dec + +[LibraryClasses] + UefiRuntimeServicesTableLib + DebugLib + +[Protocols] + +[Guids] + gOemBootNVVarGuid + +[Pcd] diff --git a/OemPkg/Library/MsSecureBootModeSettingLib/MsSecureBootModeSettingLib.inf b/OemPkg/Library/MsSecureBootModeSettingLib/MsSecureBootModeSettingLib.inf index 62cae23..78bc8ff 100644 --- a/OemPkg/Library/MsSecureBootModeSettingLib/MsSecureBootModeSettingLib.inf +++ b/OemPkg/Library/MsSecureBootModeSettingLib/MsSecureBootModeSettingLib.inf @@ -1,57 +1,57 @@ -## @file MsSecureBootModeSettingLib.inf -# -# Copyright (C) Microsoft Corporation. All rights reserved. -# SPDX-License-Identifier: BSD-2-Clause-Patent -# -# Library to support Secure Boot Settings (get/set) -# -## - -[Defines] - INF_VERSION = 0x00010017 - BASE_NAME = MsSecureBootModeSettingLib - FILE_GUID = A5498DCA-6F34-4080-ABCF-DE9C05C334DE - MODULE_TYPE = DXE_DRIVER - VERSION_STRING = 1.0 - LIBRARY_CLASS = MsSecureBootModeSettingLib|DXE_DRIVER UEFI_APPLICATION UEFI_DRIVER - CONSTRUCTOR = MsSecureBootModeSettingLibConstructor -# -# The following information is for reference only and not required by the build tools. -# -# VALID_ARCHITECTURES = IA32 X64 AARCH64 -# - -[Sources] - SecureBootModeSetting.c - -[Packages] - MdePkg/MdePkg.dec - OemPkg/OemPkg.dec - MsCorePkg/MsCorePkg.dec - DfciPkg/DfciPkg.dec - SecurityPkg/SecurityPkg.dec - -[LibraryClasses] - DebugLib - UefiBootServicesTableLib - UefiRuntimeServicesTableLib - BaseLib - BaseMemoryLib - UefiLib - PcdLib - SecureBootVariableLib - MuSecureBootKeySelectorLib - SecureBootKeyStoreLib - -[Guids] - -[Protocols] - gDfciSettingsProviderSupportProtocolGuid - -[FeaturePcd] - gDfciPkgTokenSpaceGuid.PcdSettingsManagerInstallProvider - -[Pcd] - -[Depex] - TRUE +## @file MsSecureBootModeSettingLib.inf +# +# Copyright (C) Microsoft Corporation. All rights reserved. +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +# Library to support Secure Boot Settings (get/set) +# +## + +[Defines] + INF_VERSION = 0x00010017 + BASE_NAME = MsSecureBootModeSettingLib + FILE_GUID = A5498DCA-6F34-4080-ABCF-DE9C05C334DE + MODULE_TYPE = DXE_DRIVER + VERSION_STRING = 1.0 + LIBRARY_CLASS = MsSecureBootModeSettingLib|DXE_DRIVER UEFI_APPLICATION UEFI_DRIVER + CONSTRUCTOR = MsSecureBootModeSettingLibConstructor +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = IA32 X64 AARCH64 +# + +[Sources] + SecureBootModeSetting.c + +[Packages] + MdePkg/MdePkg.dec + OemPkg/OemPkg.dec + MsCorePkg/MsCorePkg.dec + DfciPkg/DfciPkg.dec + SecurityPkg/SecurityPkg.dec + +[LibraryClasses] + DebugLib + UefiBootServicesTableLib + UefiRuntimeServicesTableLib + BaseLib + BaseMemoryLib + UefiLib + PcdLib + SecureBootVariableLib + MuSecureBootKeySelectorLib + SecureBootKeyStoreLib + +[Guids] + +[Protocols] + gDfciSettingsProviderSupportProtocolGuid + +[FeaturePcd] + gDfciPkgTokenSpaceGuid.PcdSettingsManagerInstallProvider + +[Pcd] + +[Depex] + TRUE diff --git a/OemPkg/Library/MuUefiVersionLib/MuUefiVersionLib.inf b/OemPkg/Library/MuUefiVersionLib/MuUefiVersionLib.inf index 8ccd99e..47ab77b 100644 --- a/OemPkg/Library/MuUefiVersionLib/MuUefiVersionLib.inf +++ b/OemPkg/Library/MuUefiVersionLib/MuUefiVersionLib.inf @@ -1,47 +1,47 @@ -## -# @file Library to provide platform version information -# -# Copyright (C) Microsoft Corporation. All rights reserved. -# SPDX-License-Identifier: BSD-2-Clause-Patent -# -## - -[Defines] - INF_VERSION = 0x00010005 - BASE_NAME = MuUefiVersionLib - FILE_GUID = 287318BB-52BD-427A-929F-C4B6A0AD3E7E - MODULE_TYPE = BASE - VERSION_STRING = 1.0 - LIBRARY_CLASS = MuUefiVersionLib - -# -# The following information is for reference only and not required by the build -# tools. -# -# VALID_ARCHITECTURES = IA32 X64 -# - -[Sources] - MuUefiVersionLib.c - -[Packages] - MdePkg/MdePkg.dec - PcBdsPkg/PcBdsPkg.dec - OemPkg/OemPkg.dec - -[LibraryClasses] - BaseLib - DebugLib - PrintLib - PcdLib - -[Protocols] - -[Guids] - -[Pcd] - gOemPkgTokenSpaceGuid.PcdUefiVersionNumber - gOemPkgTokenSpaceGuid.PcdUefiBuildDate - -[Depex] - TRUE +## +# @file Library to provide platform version information +# +# Copyright (C) Microsoft Corporation. All rights reserved. +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = MuUefiVersionLib + FILE_GUID = 287318BB-52BD-427A-929F-C4B6A0AD3E7E + MODULE_TYPE = BASE + VERSION_STRING = 1.0 + LIBRARY_CLASS = MuUefiVersionLib + +# +# The following information is for reference only and not required by the build +# tools. +# +# VALID_ARCHITECTURES = IA32 X64 +# + +[Sources] + MuUefiVersionLib.c + +[Packages] + MdePkg/MdePkg.dec + PcBdsPkg/PcBdsPkg.dec + OemPkg/OemPkg.dec + +[LibraryClasses] + BaseLib + DebugLib + PrintLib + PcdLib + +[Protocols] + +[Guids] + +[Pcd] + gOemPkgTokenSpaceGuid.PcdUefiVersionNumber + gOemPkgTokenSpaceGuid.PcdUefiBuildDate + +[Depex] + TRUE diff --git a/OemPkg/Library/OemMfciLib/OemMfciLibDxe.inf b/OemPkg/Library/OemMfciLib/OemMfciLibDxe.inf index defad46..51fcb99 100644 --- a/OemPkg/Library/OemMfciLib/OemMfciLibDxe.inf +++ b/OemPkg/Library/OemMfciLib/OemMfciLibDxe.inf @@ -1,42 +1,42 @@ -## @file OemMfciLibDxe.inf -# -# MFCI based library instance for system mode related functions for -# configuration modules. -# -# Copyright (c) Microsoft Corporation. -# SPDX-License-Identifier: BSD-2-Clause-Patent -# -## - - -[Defines] - INF_VERSION = 0x00010017 - BASE_NAME = OemMfciLibDxe - FILE_GUID = 484BDBBF-9589-4CCE-996F-BB22618055EB - VERSION_STRING = 1.0 - MODULE_TYPE = DXE_DRIVER - LIBRARY_CLASS = OemMfciLib - -# -# The following information is for reference only and not required by the build tools. -# -# VALID_ARCHITECTURES = ANY -# - -[Sources] - OemMfciLibDxe.c - -[LibraryClasses] - UefiBootServicesTableLib - DebugLib - -[Packages] - MdePkg/MdePkg.dec - MfciPkg/MfciPkg.dec - OemPkg/OemPkg.dec - -[Protocols] - gMfciProtocolGuid ## CONSUMES - -[Depex] - gMfciProtocolGuid +## @file OemMfciLibDxe.inf +# +# MFCI based library instance for system mode related functions for +# configuration modules. +# +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + + +[Defines] + INF_VERSION = 0x00010017 + BASE_NAME = OemMfciLibDxe + FILE_GUID = 484BDBBF-9589-4CCE-996F-BB22618055EB + VERSION_STRING = 1.0 + MODULE_TYPE = DXE_DRIVER + LIBRARY_CLASS = OemMfciLib + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = ANY +# + +[Sources] + OemMfciLibDxe.c + +[LibraryClasses] + UefiBootServicesTableLib + DebugLib + +[Packages] + MdePkg/MdePkg.dec + MfciPkg/MfciPkg.dec + OemPkg/OemPkg.dec + +[Protocols] + gMfciProtocolGuid ## CONSUMES + +[Depex] + gMfciProtocolGuid diff --git a/OemPkg/Library/OemMfciLib/OemMfciLibPei.inf b/OemPkg/Library/OemMfciLib/OemMfciLibPei.inf index 9c9f8e1..b8d7d44 100644 --- a/OemPkg/Library/OemMfciLib/OemMfciLibPei.inf +++ b/OemPkg/Library/OemMfciLib/OemMfciLibPei.inf @@ -1,42 +1,42 @@ -## @file OemMfciLibPei.inf -# -# MFCI based library instance for system mode related functions for -# configuration modules. -# -# Copyright (c) Microsoft Corporation. -# SPDX-License-Identifier: BSD-2-Clause-Patent -# -## - - -[Defines] - INF_VERSION = 0x00010017 - BASE_NAME = OemMfciLibPei - FILE_GUID = 7822FA17-4EFA-4BFB-8CB5-CD08F0C44408 - VERSION_STRING = 1.0 - MODULE_TYPE = PEIM - LIBRARY_CLASS = OemMfciLib - -# -# The following information is for reference only and not required by the build tools. -# -# VALID_ARCHITECTURES = ANY -# - -[Sources] - OemMfciLibPei.c - -[LibraryClasses] - PeiServicesLib - DebugLib - -[Packages] - MdePkg/MdePkg.dec - MfciPkg/MfciPkg.dec - OemPkg/OemPkg.dec - -[Ppis] - gMfciPpiGuid ## CONSUMES - -[Depex] - gMfciPpiGuid +## @file OemMfciLibPei.inf +# +# MFCI based library instance for system mode related functions for +# configuration modules. +# +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + + +[Defines] + INF_VERSION = 0x00010017 + BASE_NAME = OemMfciLibPei + FILE_GUID = 7822FA17-4EFA-4BFB-8CB5-CD08F0C44408 + VERSION_STRING = 1.0 + MODULE_TYPE = PEIM + LIBRARY_CLASS = OemMfciLib + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = ANY +# + +[Sources] + OemMfciLibPei.c + +[LibraryClasses] + PeiServicesLib + DebugLib + +[Packages] + MdePkg/MdePkg.dec + MfciPkg/MfciPkg.dec + OemPkg/OemPkg.dec + +[Ppis] + gMfciPpiGuid ## CONSUMES + +[Depex] + gMfciPpiGuid diff --git a/OemPkg/Library/PasswordPolicyLib/PasswordPolicyLib.inf b/OemPkg/Library/PasswordPolicyLib/PasswordPolicyLib.inf index 9613a31..26ad4b7 100644 --- a/OemPkg/Library/PasswordPolicyLib/PasswordPolicyLib.inf +++ b/OemPkg/Library/PasswordPolicyLib/PasswordPolicyLib.inf @@ -1,54 +1,54 @@ -## @file PasswordPolicyLib.inf -# -# Library to support Password hashes -# -# Copyright (C) Microsoft Corporation. All rights reserved. -# SPDX-License-Identifier: BSD-2-Clause-Patent -# -## - -[Defines] - INF_VERSION = 0x00010017 - BASE_NAME = PasswordPolicyLib - FILE_GUID = 6917de11-041a-483f-980f-4018ffc33368 - MODULE_TYPE = DXE_DRIVER - VERSION_STRING = 1.0 - LIBRARY_CLASS = PasswordPolicyLib|DXE_DRIVER UEFI_APPLICATION UEFI_DRIVER -# -# The following information is for reference only and not required by the build tools. -# -# VALID_ARCHITECTURES = IA32 X64 AARCH64 -# - -[Sources] - PasswordPolicyInternal.h - PasswordPolicyLib.c - -[Packages] - MdePkg/MdePkg.dec - CryptoPkg/CryptoPkg.dec - MsCorePkg/MsCorePkg.dec - OemPkg/OemPkg.dec - -[LibraryClasses] - BaseLib - BaseCryptLib - BaseMemoryLib - DebugLib - MemoryAllocationLib - -[Guids] - gEfiRngAlgorithmSp80090Ctr256Guid - gEfiRngAlgorithmSp80090Hmac256Guid - gEfiRngAlgorithmSp80090Hash256Guid - -[Protocols] - gMuPKCS5PasswordHashProtocolGuid - gEfiRngProtocolGuid - -[FeaturePcd] - -[Pcd] - -[Depex] - TRUE +## @file PasswordPolicyLib.inf +# +# Library to support Password hashes +# +# Copyright (C) Microsoft Corporation. All rights reserved. +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + INF_VERSION = 0x00010017 + BASE_NAME = PasswordPolicyLib + FILE_GUID = 6917de11-041a-483f-980f-4018ffc33368 + MODULE_TYPE = DXE_DRIVER + VERSION_STRING = 1.0 + LIBRARY_CLASS = PasswordPolicyLib|DXE_DRIVER UEFI_APPLICATION UEFI_DRIVER +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = IA32 X64 AARCH64 +# + +[Sources] + PasswordPolicyInternal.h + PasswordPolicyLib.c + +[Packages] + MdePkg/MdePkg.dec + CryptoPkg/CryptoPkg.dec + MsCorePkg/MsCorePkg.dec + OemPkg/OemPkg.dec + +[LibraryClasses] + BaseLib + BaseCryptLib + BaseMemoryLib + DebugLib + MemoryAllocationLib + +[Guids] + gEfiRngAlgorithmSp80090Ctr256Guid + gEfiRngAlgorithmSp80090Hmac256Guid + gEfiRngAlgorithmSp80090Hash256Guid + +[Protocols] + gMuPKCS5PasswordHashProtocolGuid + gEfiRngProtocolGuid + +[FeaturePcd] + +[Pcd] + +[Depex] + TRUE diff --git a/OemPkg/Library/PasswordPolicyLibNull/PasswordPolicyLibNull.inf b/OemPkg/Library/PasswordPolicyLibNull/PasswordPolicyLibNull.inf index 650c13f..e54eae6 100644 --- a/OemPkg/Library/PasswordPolicyLibNull/PasswordPolicyLibNull.inf +++ b/OemPkg/Library/PasswordPolicyLibNull/PasswordPolicyLibNull.inf @@ -1,43 +1,43 @@ -## @file PasswordPolicyLibNull.inf -# -# NULL Library to support Password hashes -# -# Copyright (C) Microsoft Corporation. All rights reserved. -# SPDX-License-Identifier: BSD-2-Clause-Patent -# -## - -[Defines] - INF_VERSION = 0x00010017 - BASE_NAME = PasswordPolicyLib - FILE_GUID = d288a9ad-d990-4594-a9bf-60d435b75471 - MODULE_TYPE = DXE_DRIVER - VERSION_STRING = 1.0 - LIBRARY_CLASS = PasswordPolicyLib|DXE_DRIVER UEFI_APPLICATION UEFI_DRIVER -# -# The following information is for reference only and not required by the build tools. -# -# VALID_ARCHITECTURES = IA32 X64 AARCH64 -# - -[Sources] - PasswordPolicyLibNull.c - -[Packages] - MdePkg/MdePkg.dec - OemPkg/OemPkg.dec - -[LibraryClasses] - BaseLib - DebugLib - -[Guids] - -[Protocols] - -[FeaturePcd] - -[Pcd] - -[Depex] - TRUE +## @file PasswordPolicyLibNull.inf +# +# NULL Library to support Password hashes +# +# Copyright (C) Microsoft Corporation. All rights reserved. +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + INF_VERSION = 0x00010017 + BASE_NAME = PasswordPolicyLib + FILE_GUID = d288a9ad-d990-4594-a9bf-60d435b75471 + MODULE_TYPE = DXE_DRIVER + VERSION_STRING = 1.0 + LIBRARY_CLASS = PasswordPolicyLib|DXE_DRIVER UEFI_APPLICATION UEFI_DRIVER +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = IA32 X64 AARCH64 +# + +[Sources] + PasswordPolicyLibNull.c + +[Packages] + MdePkg/MdePkg.dec + OemPkg/OemPkg.dec + +[LibraryClasses] + BaseLib + DebugLib + +[Guids] + +[Protocols] + +[FeaturePcd] + +[Pcd] + +[Depex] + TRUE diff --git a/OemPkg/Library/SecureBootKeyStoreLibOem/SecureBootKeyStoreLibOem.inf b/OemPkg/Library/SecureBootKeyStoreLibOem/SecureBootKeyStoreLibOem.inf index 5b21599..2893a74 100644 --- a/OemPkg/Library/SecureBootKeyStoreLibOem/SecureBootKeyStoreLibOem.inf +++ b/OemPkg/Library/SecureBootKeyStoreLibOem/SecureBootKeyStoreLibOem.inf @@ -1,28 +1,28 @@ -## @file - SecureBootKeyStoreLib.inf -# Copyright (C) Microsoft Corporation. All rights reserved. -# SPDX-License-Identifier: BSD-2-Clause-Patent -# - -[Defines] - INF_VERSION = 0x00010005 - BASE_NAME = SecureBootKeyStoreLibOem - FILE_GUID = 02EEF9DA-5557-4090-BFF5-E07EF0344805 - VERSION_STRING = 1.0 - MODULE_TYPE = BASE - LIBRARY_CLASS = SecureBootKeyStoreLib - CONSTRUCTOR = SecureBootKeyStoreLibConstructor - DESTRUCTOR = SecureBootKeyStoreLibDestructor - -# -# The following information is for reference only and not required by the build tools. -# -# VALID_ARCHITECTURES = IA32 X64 AARCH64 -# - -[Packages] - MdePkg/MdePkg.dec - SecurityPkg/SecurityPkg.dec - -[Sources] - SecureBootKeyStoreLibOem.c - MsSecureBootDefaultVars.h +## @file - SecureBootKeyStoreLib.inf +# Copyright (C) Microsoft Corporation. All rights reserved. +# SPDX-License-Identifier: BSD-2-Clause-Patent +# + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = SecureBootKeyStoreLibOem + FILE_GUID = 02EEF9DA-5557-4090-BFF5-E07EF0344805 + VERSION_STRING = 1.0 + MODULE_TYPE = BASE + LIBRARY_CLASS = SecureBootKeyStoreLib + CONSTRUCTOR = SecureBootKeyStoreLibConstructor + DESTRUCTOR = SecureBootKeyStoreLibDestructor + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = IA32 X64 AARCH64 +# + +[Packages] + MdePkg/MdePkg.dec + SecurityPkg/SecurityPkg.dec + +[Sources] + SecureBootKeyStoreLibOem.c + MsSecureBootDefaultVars.h diff --git a/OemPkg/OemPkg.ci.yaml b/OemPkg/OemPkg.ci.yaml index 4b2939e..4bd6181 100644 --- a/OemPkg/OemPkg.ci.yaml +++ b/OemPkg/OemPkg.ci.yaml @@ -1,79 +1,79 @@ -## -# CI configuration for MsWheaPkg -# -# Copyright (c) Microsoft Corporation -# SPDX-License-Identifier: BSD-2-Clause-Patent -## -{ - ## options defined ci/Plugin/CompilerPlugin - "CompilerPlugin": { - "DscPath": "OemPkg.dsc" - }, - ## options defined ci/Plugin/CharEncodingCheck - "CharEncodingCheck": { - "IgnoreFiles": [] - }, - ## options defined ci/Plugin/DependencyCheck - "DependencyCheck": { - "AcceptableDependencies": [ - "MdePkg/MdePkg.dec", - "MdeModulePkg/MdeModulePkg.dec", - "MsCorePkg/MsCorePkg.dec", - "MsGraphicsPkg/MsGraphicsPkg.dec", - "PcBdsPkg/PcBdsPkg.dec", - "DfciPkg/DfciPkg.dec", - "SecurityPkg/SecurityPkg.dec", - "CryptoPkg/CryptoPkg.dec", - "OemPkg/OemPkg.dec", - "MsWheaPkg/MsWheaPkg.dec", - "MfciPkg/MfciPkg.dec" - ], - "AcceptableDependencies-HOST_APPLICATION":[ # for host based unit tests - "MdePkg/MdePkg.dec", - "MdeModulePkg/MdeModulePkg.dec", - "MsCorePkg/MsCorePkg.dec", - "MsGraphicsPkg/MsGraphicsPkg.dec", - "PcBdsPkg/PcBdsPkg.dec", - "OemPkg/OemPkg.dec" - ], - "IgnoreInf": [] - }, - ## options defined ci/Plugin/DscCompleteCheck - "DscCompleteCheck": { - "IgnoreInf": [], - "DscPath": "OemPkg.dsc" - }, - ## options defined ci/Plugin/GuidCheck - "GuidCheck": { - "IgnoreGuidName": [], - "IgnoreGuidValue": ["00000000-0000-0000-0000-000000000000"], - "IgnoreFoldersAndFiles": [], - "IgnoreDuplicates": [] - }, - ## options defined ci/Plugin/LibraryClassCheck - "LibraryClassCheck": { - "IgnoreLibraryClass": [], - "IgnoreHeaderFile": [] - }, - ## options defined ci/Plugin/SpellCheck - "SpellCheck": { - "IgnoreStandardPaths": [ # Standard Plugin defined paths that should be ignore - ], - "IgnoreFiles": [ # use gitignore syntax to ignore errors in matching files - ], - "ExtendWords": [ # words to extend to the dictionary for this package - "IDCANCEL", # Used in FrontPage dialogs. - "OKCANCEL", - "IDTRYAGAIN", - "blitting", - "FrontPage", - "fltused", - "MSLOGO", - "PCINFO", - "MFRAME", - "Passw", # Partial string for password name. Actual name is Passw0rd. - "SECUREBOOT" - ], - "AdditionalIncludePaths": [] # Additional paths to spell check relative to package root (wildcards supported) - } +## +# CI configuration for MsWheaPkg +# +# Copyright (c) Microsoft Corporation +# SPDX-License-Identifier: BSD-2-Clause-Patent +## +{ + ## options defined ci/Plugin/CompilerPlugin + "CompilerPlugin": { + "DscPath": "OemPkg.dsc" + }, + ## options defined ci/Plugin/CharEncodingCheck + "CharEncodingCheck": { + "IgnoreFiles": [] + }, + ## options defined ci/Plugin/DependencyCheck + "DependencyCheck": { + "AcceptableDependencies": [ + "MdePkg/MdePkg.dec", + "MdeModulePkg/MdeModulePkg.dec", + "MsCorePkg/MsCorePkg.dec", + "MsGraphicsPkg/MsGraphicsPkg.dec", + "PcBdsPkg/PcBdsPkg.dec", + "DfciPkg/DfciPkg.dec", + "SecurityPkg/SecurityPkg.dec", + "CryptoPkg/CryptoPkg.dec", + "OemPkg/OemPkg.dec", + "MsWheaPkg/MsWheaPkg.dec", + "MfciPkg/MfciPkg.dec" + ], + "AcceptableDependencies-HOST_APPLICATION":[ # for host based unit tests + "MdePkg/MdePkg.dec", + "MdeModulePkg/MdeModulePkg.dec", + "MsCorePkg/MsCorePkg.dec", + "MsGraphicsPkg/MsGraphicsPkg.dec", + "PcBdsPkg/PcBdsPkg.dec", + "OemPkg/OemPkg.dec" + ], + "IgnoreInf": [] + }, + ## options defined ci/Plugin/DscCompleteCheck + "DscCompleteCheck": { + "IgnoreInf": [], + "DscPath": "OemPkg.dsc" + }, + ## options defined ci/Plugin/GuidCheck + "GuidCheck": { + "IgnoreGuidName": [], + "IgnoreGuidValue": ["00000000-0000-0000-0000-000000000000"], + "IgnoreFoldersAndFiles": [], + "IgnoreDuplicates": [] + }, + ## options defined ci/Plugin/LibraryClassCheck + "LibraryClassCheck": { + "IgnoreLibraryClass": [], + "IgnoreHeaderFile": [] + }, + ## options defined ci/Plugin/SpellCheck + "SpellCheck": { + "IgnoreStandardPaths": [ # Standard Plugin defined paths that should be ignore + ], + "IgnoreFiles": [ # use gitignore syntax to ignore errors in matching files + ], + "ExtendWords": [ # words to extend to the dictionary for this package + "IDCANCEL", # Used in FrontPage dialogs. + "OKCANCEL", + "IDTRYAGAIN", + "blitting", + "FrontPage", + "fltused", + "MSLOGO", + "PCINFO", + "MFRAME", + "Passw", # Partial string for password name. Actual name is Passw0rd. + "SECUREBOOT" + ], + "AdditionalIncludePaths": [] # Additional paths to spell check relative to package root (wildcards supported) + } } \ No newline at end of file diff --git a/OemPkg/OemPkg.dec b/OemPkg/OemPkg.dec index ad3f123..f196ee9 100644 --- a/OemPkg/OemPkg.dec +++ b/OemPkg/OemPkg.dec @@ -1,96 +1,96 @@ -## @file -# Component declaration file for the oem sample package. -# -# Copyright (C) Microsoft Corporation. All rights reserved. -# SPDX-License-Identifier: BSD-2-Clause-Patent -# -## - -[Defines] - DEC_SPECIFICATION = 0x00010005 - PACKAGE_NAME = OemPkg - PACKAGE_GUID = 1CF89F9A-7C15-4702-A4D9-933B6C49D9AF - PACKAGE_VERSION = 0.1 - -[Includes] - Include - -[LibraryClasses] - ## @libraryclass Provides the password rules and hashing - # - PasswordPolicyLib|Include/Library/PasswordPolicyLib.h - - ## @libraryclass Provides the abstracted MFCI policy query function - # - OemMfciLib|Include/Library/OemMfciLib.h - - ## @libraryclass Provides the abstracted MFCI policy query and notification registration function - # - OemMfciDxeLib|Include/Library/OemMfciDxeLib.h - -[Guids] - # {B20F1063-8C75-4A83-BFE0-969EFB5AF0AA} - gOemPkgTokenSpaceGuid = { 0xB20F1063, 0x8C75, 0x4A83, { 0xBF, 0xE0, 0x96, 0x9E, 0xFB, 0x5A, 0xF0, 0xAA } } - - # - # Guid for Alt Boot tracking variables namespace - # - gAltBootGuid = {0x26D75FF0, 0xD5CD, 0x49EC, {0x80, 0x92, 0xF8, 0xEC, 0x4D, 0x18, 0xEF, 0x33}} - - # - # Guid for FrontPage NV variable - # 9B09B8C1-3CC0-4F3B-A6CB-A0214B7F4C63 - gOemBootNVVarGuid = { 0x9b09b8c1, 0x3cc0, 0x4f3b, { 0xa6, 0xcb, 0xa0, 0x21, 0x4b, 0x7f, 0x4c, 0x63 } } - - gFrontPageResetGuid = {0xa6fa93d3, 0x9e09, 0x4192, {0x84, 0x79, 0xf0, 0x81, 0x29, 0x6f, 0x74, 0xde}} - - # Include/Guid/PasswordStoreVariable.h - gOemPkgPasswordStoreVarGuid = {0xa2ee0f0b, 0xac46, 0x436e, {0xaf, 0xe6, 0x40, 0x60, 0xee, 0x63, 0xd6, 0xa2} } - -[Protocols] - gMsButtonServicesProtocolGuid = { 0xe0084c50, 0x3efd, 0x43f7, { 0x88, 0xdf, 0x19, 0x4d, 0xf2, 0xd1, 0x60, 0xf0 }} - - gMsFrontPageAuthTokenProtocolGuid = { 0xed285037, 0x228b, 0x4d48, { 0xad, 0xa0, 0x8b, 0x1, 0x8a, 0xcf, 0xef, 0xb1 }} - -[PcdsFixedAtBuild] - gOemPkgTokenSpaceGuid.PcdUefiVersionNumber |00000000|UINT32|0x00000001 - gOemPkgTokenSpaceGuid.PcdUefiBuildDate |00000000|UINT32|0x00000002 - - ## - # POST background color (default: black). - # - gOemPkgTokenSpaceGuid.PcdPostBackgroundColor|0x0|UINT32|0x00000003 - - ## FFS filename to find the default BMP Logo file. - # @Prompt FFS Name of Boot Logo File - gOemPkgTokenSpaceGuid.PcdLogoFile |{ 0x99, 0x8b, 0xB2, 0x7B, 0xBB, 0x61, 0xD5, 0x11, 0x9A, 0x5D, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }|VOID*|0x00000004 - - ## FFS filename to find the Too Hot BMP file. - # {7C3A8851-A6D2-445B-A53B-155F867AB4DA} - gOemPkgTokenSpaceGuid.PcdThermalFile |{ 0x51, 0x88, 0x3A, 0x7C, 0xD2, 0xA6, 0x5B, 0x44, 0xA5, 0x3B, 0x15, 0x5F, 0x86, 0x7A, 0xB4, 0xDA }|VOID*|0x00000005 - - ## FFS filename to find the Low Battery BMP file. - # {D2AF039E-9F1F-4616-97AF-BE4509A365EA} - gOemPkgTokenSpaceGuid.PcdLowBatteryFile |{ 0x9E, 0x03, 0xAF, 0xD2, 0x1F, 0x9F, 0x16, 0x46, 0x97, 0xAF, 0xBE, 0x45, 0x09, 0xA3, 0x65, 0xEA }|VOID*|0x00000006 - - ## FFS filename to find the Front Page Title Bar BMP file. - # {afdaeab5-3f81-934e-8ee3-228434ba283d} - gOemPkgTokenSpaceGuid.PcdFrontPageLogoFile |{ 0xb5, 0xea, 0xda, 0xaf, 0x81, 0x3f, 0x93, 0x4e, 0x8e, 0xe3, 0x22, 0x84, 0x34, 0xba, 0x28, 0x3d } | VOID* | 0x00000007 - - ## FFS filename to find the No Boot BMP file. - # {f1e7a352-46ae-4912-af92-36ab51781d8e} - gOemPkgTokenSpaceGuid.PcdBootFailIndicatorFile |{ 0x52, 0xa3, 0xe7, 0xf1, 0xae, 0x46, 0x12, 0x49, 0x92, 0xaf, 0x36, 0xab, 0x51, 0x78, 0x1d, 0x8e }|VOID*|0x00000008 - - ## FFS filename to find the Firmware Settings BMP file. - # {4f7fe6d5-b396-40f9-9246-7a8e4a821720 } - gOemPkgTokenSpaceGuid.PcdFirmwareSettingsIndicatorFile | { 0xd5, 0xe6, 0xfe, 0x4f, 0x96, 0xb3, 0xf9, 0x40, 0x92, 0x46, 0x7a, 0x8e, 0x4a, 0x82, 0x17, 0x20 }|VOID*|0x00000009 - - ## FFS filename to find the Volume Up BMP file. - # {ae2d011c-4128-4960-a536-b424ccc3d1ea} - gOemPkgTokenSpaceGuid.PcdVolumeUpIndicatorFile |{ 0x1c, 0x01, 0x2d, 0xae, 0x28, 0x41, 0x60, 0x49, 0xa5, 0x36, 0xb4, 0x24, 0xcc, 0xc3, 0xd1, 0xea }|VOID*|0x0000000A - - # The number of attempts the user has to type in the password. - # If the number of attempts is exceeded, a message dialog is displayed, and - # then user can access the front page as a limited user. - # If set to 0 gives an unlimited number of attempts. - gOemPkgTokenSpaceGuid.PcdMaxPasswordAttempts|0x3|UINT8|0x0000000B +## @file +# Component declaration file for the oem sample package. +# +# Copyright (C) Microsoft Corporation. All rights reserved. +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + DEC_SPECIFICATION = 0x00010005 + PACKAGE_NAME = OemPkg + PACKAGE_GUID = 1CF89F9A-7C15-4702-A4D9-933B6C49D9AF + PACKAGE_VERSION = 0.1 + +[Includes] + Include + +[LibraryClasses] + ## @libraryclass Provides the password rules and hashing + # + PasswordPolicyLib|Include/Library/PasswordPolicyLib.h + + ## @libraryclass Provides the abstracted MFCI policy query function + # + OemMfciLib|Include/Library/OemMfciLib.h + + ## @libraryclass Provides the abstracted MFCI policy query and notification registration function + # + OemMfciDxeLib|Include/Library/OemMfciDxeLib.h + +[Guids] + # {B20F1063-8C75-4A83-BFE0-969EFB5AF0AA} + gOemPkgTokenSpaceGuid = { 0xB20F1063, 0x8C75, 0x4A83, { 0xBF, 0xE0, 0x96, 0x9E, 0xFB, 0x5A, 0xF0, 0xAA } } + + # + # Guid for Alt Boot tracking variables namespace + # + gAltBootGuid = {0x26D75FF0, 0xD5CD, 0x49EC, {0x80, 0x92, 0xF8, 0xEC, 0x4D, 0x18, 0xEF, 0x33}} + + # + # Guid for FrontPage NV variable + # 9B09B8C1-3CC0-4F3B-A6CB-A0214B7F4C63 + gOemBootNVVarGuid = { 0x9b09b8c1, 0x3cc0, 0x4f3b, { 0xa6, 0xcb, 0xa0, 0x21, 0x4b, 0x7f, 0x4c, 0x63 } } + + gFrontPageResetGuid = {0xa6fa93d3, 0x9e09, 0x4192, {0x84, 0x79, 0xf0, 0x81, 0x29, 0x6f, 0x74, 0xde}} + + # Include/Guid/PasswordStoreVariable.h + gOemPkgPasswordStoreVarGuid = {0xa2ee0f0b, 0xac46, 0x436e, {0xaf, 0xe6, 0x40, 0x60, 0xee, 0x63, 0xd6, 0xa2} } + +[Protocols] + gMsButtonServicesProtocolGuid = { 0xe0084c50, 0x3efd, 0x43f7, { 0x88, 0xdf, 0x19, 0x4d, 0xf2, 0xd1, 0x60, 0xf0 }} + + gMsFrontPageAuthTokenProtocolGuid = { 0xed285037, 0x228b, 0x4d48, { 0xad, 0xa0, 0x8b, 0x1, 0x8a, 0xcf, 0xef, 0xb1 }} + +[PcdsFixedAtBuild] + gOemPkgTokenSpaceGuid.PcdUefiVersionNumber |00000000|UINT32|0x00000001 + gOemPkgTokenSpaceGuid.PcdUefiBuildDate |00000000|UINT32|0x00000002 + + ## + # POST background color (default: black). + # + gOemPkgTokenSpaceGuid.PcdPostBackgroundColor|0x0|UINT32|0x00000003 + + ## FFS filename to find the default BMP Logo file. + # @Prompt FFS Name of Boot Logo File + gOemPkgTokenSpaceGuid.PcdLogoFile |{ 0x99, 0x8b, 0xB2, 0x7B, 0xBB, 0x61, 0xD5, 0x11, 0x9A, 0x5D, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }|VOID*|0x00000004 + + ## FFS filename to find the Too Hot BMP file. + # {7C3A8851-A6D2-445B-A53B-155F867AB4DA} + gOemPkgTokenSpaceGuid.PcdThermalFile |{ 0x51, 0x88, 0x3A, 0x7C, 0xD2, 0xA6, 0x5B, 0x44, 0xA5, 0x3B, 0x15, 0x5F, 0x86, 0x7A, 0xB4, 0xDA }|VOID*|0x00000005 + + ## FFS filename to find the Low Battery BMP file. + # {D2AF039E-9F1F-4616-97AF-BE4509A365EA} + gOemPkgTokenSpaceGuid.PcdLowBatteryFile |{ 0x9E, 0x03, 0xAF, 0xD2, 0x1F, 0x9F, 0x16, 0x46, 0x97, 0xAF, 0xBE, 0x45, 0x09, 0xA3, 0x65, 0xEA }|VOID*|0x00000006 + + ## FFS filename to find the Front Page Title Bar BMP file. + # {afdaeab5-3f81-934e-8ee3-228434ba283d} + gOemPkgTokenSpaceGuid.PcdFrontPageLogoFile |{ 0xb5, 0xea, 0xda, 0xaf, 0x81, 0x3f, 0x93, 0x4e, 0x8e, 0xe3, 0x22, 0x84, 0x34, 0xba, 0x28, 0x3d } | VOID* | 0x00000007 + + ## FFS filename to find the No Boot BMP file. + # {f1e7a352-46ae-4912-af92-36ab51781d8e} + gOemPkgTokenSpaceGuid.PcdBootFailIndicatorFile |{ 0x52, 0xa3, 0xe7, 0xf1, 0xae, 0x46, 0x12, 0x49, 0x92, 0xaf, 0x36, 0xab, 0x51, 0x78, 0x1d, 0x8e }|VOID*|0x00000008 + + ## FFS filename to find the Firmware Settings BMP file. + # {4f7fe6d5-b396-40f9-9246-7a8e4a821720 } + gOemPkgTokenSpaceGuid.PcdFirmwareSettingsIndicatorFile | { 0xd5, 0xe6, 0xfe, 0x4f, 0x96, 0xb3, 0xf9, 0x40, 0x92, 0x46, 0x7a, 0x8e, 0x4a, 0x82, 0x17, 0x20 }|VOID*|0x00000009 + + ## FFS filename to find the Volume Up BMP file. + # {ae2d011c-4128-4960-a536-b424ccc3d1ea} + gOemPkgTokenSpaceGuid.PcdVolumeUpIndicatorFile |{ 0x1c, 0x01, 0x2d, 0xae, 0x28, 0x41, 0x60, 0x49, 0xa5, 0x36, 0xb4, 0x24, 0xcc, 0xc3, 0xd1, 0xea }|VOID*|0x0000000A + + # The number of attempts the user has to type in the password. + # If the number of attempts is exceeded, a message dialog is displayed, and + # then user can access the front page as a limited user. + # If set to 0 gives an unlimited number of attempts. + gOemPkgTokenSpaceGuid.PcdMaxPasswordAttempts|0x3|UINT8|0x0000000B diff --git a/OemPkg/OemPkg.dsc b/OemPkg/OemPkg.dsc index ca9b585..24235e2 100644 --- a/OemPkg/OemPkg.dsc +++ b/OemPkg/OemPkg.dsc @@ -1,156 +1,156 @@ -## @file -# Oem Sample Package Localized Libraries and Content -# -# Copyright (C) Microsoft Corporation. All rights reserved. -# SPDX-License-Identifier: BSD-2-Clause-Patent -# -## - -[Defines] - PLATFORM_NAME = OemPkg - PLATFORM_GUID = 17820FE5-2B34-4B97-80E8-FB435FC3E8DD - PLATFORM_VERSION = 1.0 - DSC_SPECIFICATION = 0x00010005 - OUTPUT_DIRECTORY = Build/OemPkg - SUPPORTED_ARCHITECTURES = IA32|X64 - BUILD_TARGETS = DEBUG|RELEASE - SKUID_IDENTIFIER = DEFAULT - -[PcdsFeatureFlag] - - -[PcdsFixedAtBuild] - -!include MdePkg/MdeLibs.dsc.inc - -[LibraryClasses.common] - BaseLib|MdePkg/Library/BaseLib/BaseLib.inf - BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf - DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf - UefiLib|MdePkg/Library/UefiLib/UefiLib.inf - UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf - MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf - PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf - ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf - UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf - - PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf - HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf - UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf - UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf - UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf - UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf - MemoryTypeInformationChangeLib|MdeModulePkg/Library/MemoryTypeInformationChangeLibNull/MemoryTypeInformationChangeLibNull.inf # MU_CHANGE - DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf - DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf - SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf - BmpSupportLib|MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSupportLib.inf - PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf - PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf - DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf - SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf - ResetUtilityLib|MdeModulePkg/Library/ResetUtilityLib/ResetUtilityLib.inf - ResetSystemLib|MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.inf - TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf - VariablePolicyHelperLib|MdeModulePkg/Library/VariablePolicyHelperLib/VariablePolicyHelperLib.inf - DeviceStateLib|MdeModulePkg/Library/DeviceStateLib/DeviceStateLib.inf - - UIToolKitLib|MsGraphicsPkg/Library/SimpleUIToolKit/SimpleUIToolKit.inf - MsUiThemeLib|MsGraphicsPkg/Library/MsUiThemeLib/Dxe/MsUiThemeLib.inf - BootGraphicsLib|MsGraphicsPkg/Library/BootGraphicsLibNull/BootGraphicsLib.inf - BootGraphicsProviderLib|MsGraphicsPkg/Library/BootGraphicsProviderLibNull/BootGraphicsProviderLib.inf - MsColorTableLib|MsGraphicsPkg/Library/MsColorTableLib/MsColorTableLib.inf - SwmDialogsLib|MsGraphicsPkg/Library/SwmDialogsLib/SwmDialogs.inf - - GraphicsConsoleHelperLib|PcBdsPkg/Library/GraphicsConsoleHelperLib/GraphicsConsoleHelper.inf - MsBootOptionsLib|PcBdsPkg/Library/MsBootOptionsLib/MsBootOptionsLib.inf - MsPlatformDevicesLib|PcBdsPkg/Library/MsPlatformDevicesLibNull/MsPlatformDevicesLibNull.inf - - MsAltBootLib|OemPkg/Library/MsAltBootLib/MsAltBootLib.inf - MsBootPolicyLib|OemPkg/Library/MsBootPolicyLib/MsBootPolicyLib.inf - MsNVBootReasonLib|OemPkg/Library/MsNVBootReasonLib/MsNVBootReasonLib.inf - MuUefiVersionLib|OemPkg/Library/MuUefiVersionLib/MuUefiVersionLib.inf - PasswordStoreLib|OemPkg/Library/PasswordStoreLib/PasswordStoreLib.inf - PasswordPolicyLib|OemPkg/Library/PasswordPolicyLibNull/PasswordPolicyLibNull.inf - SecureBootVariableLib|SecurityPkg/Library/SecureBootVariableLib/SecureBootVariableLib.inf - MuSecureBootKeySelectorLib|MsCorePkg/Library/MuSecureBootKeySelectorLib/MuSecureBootKeySelectorLib.inf - SecureBootKeyStoreLib|OemPkg/Library/SecureBootKeyStoreLibOem/SecureBootKeyStoreLibOem.inf - DeviceBootManagerLib|MsCorePkg/Library/DeviceBootManagerLibNull/DeviceBootManagerLibNull.inf - MathLib|MsCorePkg/Library/MathLib/MathLib.inf - FltUsedLib|MdePkg/Library/FltUsedLib/FltUsedLib.inf - - RngLib|MdePkg/Library/BaseRngLib/BaseRngLib.inf - PlatformPKProtectionLib|SecurityPkg/Library/PlatformPKProtectionLibVarPolicy/PlatformPKProtectionLibVarPolicy.inf - -[LibraryClasses.IA32] - MsUiThemeLib|MsGraphicsPkg/Library/MsUiThemeLib/Pei/MsUiThemeLib.inf - -[LibraryClasses.X64] - - -!if $(TARGET) == DEBUG -!if $(TOOL_CHAIN_TAG) == VS2017 or $(TOOL_CHAIN_TAG) == VS2019 - #if debug is enabled provide StackCookie support lib so that we can link to /GS exports - NULL|MdePkg/Library/BaseBinSecurityLibRng/BaseBinSecurityLibRng.inf - BaseBinSecurityLib|MdePkg/Library/BaseBinSecurityLibRng/BaseBinSecurityLibRng.inf -!else - # otherwise use the null version for GCC and CLANG - BaseBinSecurityLib|MdePkg/Library/BaseBinSecurityLibNull/BaseBinSecurityLibNull.inf -!endif -!endif - - HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf - -[LibraryClasses.common.PEIM] - PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf - PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf - PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf - HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf - MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf -############################################################### -# -# Components Section - list of the modules and components that will be processed by compilation -# tools and the EDK II tools to generate PE32/PE32+/Coff image files. -# -# Note: The EDK II DSC file is not used to specify how compiled binary images get placed -# into firmware volume images. This section is just a list of modules to compile from -# source into UEFI-compliant binaries. -# It is the FDF file that contains information on combining binary files into firmware -# volume images, whose concept is beyond UEFI and is described in PI specification. -# Binary modules do not need to be listed in this section, as they should be -# specified in the FDF file. For example: Shell binary (Shell_Full.efi), FAT binary (Fat.efi), -# Logo (Logo.bmp), and etc. -# There may also be modules listed in this section that are not required in the FDF file, -# When a module listed here is excluded from FDF file, then UEFI-compliant binary will be -# generated for it, but the binary will not be put into any firmware volume. -# -################################################################################################### -[Components] - OemPkg/Library/MsAltBootLib/MsAltBootLib.inf - OemPkg/Library/MsBootPolicyLib/MsBootPolicyLib.inf - OemPkg/Library/MsNVBootReasonLib/MsNVBootReasonLib.inf - OemPkg/Library/MuUefiVersionLib/MuUefiVersionLib.inf - OemPkg/Library/BootGraphicsProviderLib/BootGraphicsProviderLib.inf - OemPkg/Library/PasswordStoreLib/PasswordStoreLib.inf - OemPkg/Library/PasswordPolicyLib/PasswordPolicyLib.inf - OemPkg/Library/PasswordPolicyLibNull/PasswordPolicyLibNull.inf - OemPkg/Library/MsSecureBootModeSettingLib/MsSecureBootModeSettingLib.inf - OemPkg/Library/DfciUiSupportLib/DfciUiSupportLib.inf - OemPkg/Library/DfciGroupLib/DfciGroups.inf - OemPkg/Library/DfciDeviceIdSupportLib/DfciDeviceIdSupportLib.inf - OemPkg/Library/SecureBootKeyStoreLibOem/SecureBootKeyStoreLibOem.inf - OemPkg/Library/OemMfciLib/OemMfciLibPei.inf - OemPkg/Library/OemMfciLib/OemMfciLibDxe.inf - OemPkg/FrontpageButtonsVolumeUp/FrontpageButtonsVolumeUp.inf - -[Components.IA32] - OemPkg/DeviceStatePei/DeviceStatePei.inf - -[Components.X64] - OemPkg/FrontPage/FrontPage.inf - OemPkg/BootMenu/BootMenu.inf - OemPkg/Override/MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxe.inf - -[BuildOptions] -#force deprecated interfaces off - *_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES +## @file +# Oem Sample Package Localized Libraries and Content +# +# Copyright (C) Microsoft Corporation. All rights reserved. +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + PLATFORM_NAME = OemPkg + PLATFORM_GUID = 17820FE5-2B34-4B97-80E8-FB435FC3E8DD + PLATFORM_VERSION = 1.0 + DSC_SPECIFICATION = 0x00010005 + OUTPUT_DIRECTORY = Build/OemPkg + SUPPORTED_ARCHITECTURES = IA32|X64 + BUILD_TARGETS = DEBUG|RELEASE + SKUID_IDENTIFIER = DEFAULT + +[PcdsFeatureFlag] + + +[PcdsFixedAtBuild] + +!include MdePkg/MdeLibs.dsc.inc + +[LibraryClasses.common] + BaseLib|MdePkg/Library/BaseLib/BaseLib.inf + BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf + UefiLib|MdePkg/Library/UefiLib/UefiLib.inf + UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf + MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf + ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf + UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf + + PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf + HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf + UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf + UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf + UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf + UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf + MemoryTypeInformationChangeLib|MdeModulePkg/Library/MemoryTypeInformationChangeLibNull/MemoryTypeInformationChangeLibNull.inf # MU_CHANGE + DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf + DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf + SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf + BmpSupportLib|MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSupportLib.inf + PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf + PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf + DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf + SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf + ResetUtilityLib|MdeModulePkg/Library/ResetUtilityLib/ResetUtilityLib.inf + ResetSystemLib|MdeModulePkg/Library/DxeResetSystemLib/DxeResetSystemLib.inf + TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf + VariablePolicyHelperLib|MdeModulePkg/Library/VariablePolicyHelperLib/VariablePolicyHelperLib.inf + DeviceStateLib|MdeModulePkg/Library/DeviceStateLib/DeviceStateLib.inf + + UIToolKitLib|MsGraphicsPkg/Library/SimpleUIToolKit/SimpleUIToolKit.inf + MsUiThemeLib|MsGraphicsPkg/Library/MsUiThemeLib/Dxe/MsUiThemeLib.inf + BootGraphicsLib|MsGraphicsPkg/Library/BootGraphicsLibNull/BootGraphicsLib.inf + BootGraphicsProviderLib|MsGraphicsPkg/Library/BootGraphicsProviderLibNull/BootGraphicsProviderLib.inf + MsColorTableLib|MsGraphicsPkg/Library/MsColorTableLib/MsColorTableLib.inf + SwmDialogsLib|MsGraphicsPkg/Library/SwmDialogsLib/SwmDialogs.inf + + GraphicsConsoleHelperLib|PcBdsPkg/Library/GraphicsConsoleHelperLib/GraphicsConsoleHelper.inf + MsBootOptionsLib|PcBdsPkg/Library/MsBootOptionsLib/MsBootOptionsLib.inf + MsPlatformDevicesLib|PcBdsPkg/Library/MsPlatformDevicesLibNull/MsPlatformDevicesLibNull.inf + + MsAltBootLib|OemPkg/Library/MsAltBootLib/MsAltBootLib.inf + MsBootPolicyLib|OemPkg/Library/MsBootPolicyLib/MsBootPolicyLib.inf + MsNVBootReasonLib|OemPkg/Library/MsNVBootReasonLib/MsNVBootReasonLib.inf + MuUefiVersionLib|OemPkg/Library/MuUefiVersionLib/MuUefiVersionLib.inf + PasswordStoreLib|OemPkg/Library/PasswordStoreLib/PasswordStoreLib.inf + PasswordPolicyLib|OemPkg/Library/PasswordPolicyLibNull/PasswordPolicyLibNull.inf + SecureBootVariableLib|SecurityPkg/Library/SecureBootVariableLib/SecureBootVariableLib.inf + MuSecureBootKeySelectorLib|MsCorePkg/Library/MuSecureBootKeySelectorLib/MuSecureBootKeySelectorLib.inf + SecureBootKeyStoreLib|OemPkg/Library/SecureBootKeyStoreLibOem/SecureBootKeyStoreLibOem.inf + DeviceBootManagerLib|MsCorePkg/Library/DeviceBootManagerLibNull/DeviceBootManagerLibNull.inf + MathLib|MsCorePkg/Library/MathLib/MathLib.inf + FltUsedLib|MdePkg/Library/FltUsedLib/FltUsedLib.inf + + RngLib|MdePkg/Library/BaseRngLib/BaseRngLib.inf + PlatformPKProtectionLib|SecurityPkg/Library/PlatformPKProtectionLibVarPolicy/PlatformPKProtectionLibVarPolicy.inf + +[LibraryClasses.IA32] + MsUiThemeLib|MsGraphicsPkg/Library/MsUiThemeLib/Pei/MsUiThemeLib.inf + +[LibraryClasses.X64] + + +!if $(TARGET) == DEBUG +!if $(TOOL_CHAIN_TAG) == VS2017 or $(TOOL_CHAIN_TAG) == VS2019 + #if debug is enabled provide StackCookie support lib so that we can link to /GS exports + NULL|MdePkg/Library/BaseBinSecurityLibRng/BaseBinSecurityLibRng.inf + BaseBinSecurityLib|MdePkg/Library/BaseBinSecurityLibRng/BaseBinSecurityLibRng.inf +!else + # otherwise use the null version for GCC and CLANG + BaseBinSecurityLib|MdePkg/Library/BaseBinSecurityLibNull/BaseBinSecurityLibNull.inf +!endif +!endif + + HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf + +[LibraryClasses.common.PEIM] + PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf + PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf + PeiServicesTablePointerLib|MdePkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf + HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf + MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf +############################################################### +# +# Components Section - list of the modules and components that will be processed by compilation +# tools and the EDK II tools to generate PE32/PE32+/Coff image files. +# +# Note: The EDK II DSC file is not used to specify how compiled binary images get placed +# into firmware volume images. This section is just a list of modules to compile from +# source into UEFI-compliant binaries. +# It is the FDF file that contains information on combining binary files into firmware +# volume images, whose concept is beyond UEFI and is described in PI specification. +# Binary modules do not need to be listed in this section, as they should be +# specified in the FDF file. For example: Shell binary (Shell_Full.efi), FAT binary (Fat.efi), +# Logo (Logo.bmp), and etc. +# There may also be modules listed in this section that are not required in the FDF file, +# When a module listed here is excluded from FDF file, then UEFI-compliant binary will be +# generated for it, but the binary will not be put into any firmware volume. +# +################################################################################################### +[Components] + OemPkg/Library/MsAltBootLib/MsAltBootLib.inf + OemPkg/Library/MsBootPolicyLib/MsBootPolicyLib.inf + OemPkg/Library/MsNVBootReasonLib/MsNVBootReasonLib.inf + OemPkg/Library/MuUefiVersionLib/MuUefiVersionLib.inf + OemPkg/Library/BootGraphicsProviderLib/BootGraphicsProviderLib.inf + OemPkg/Library/PasswordStoreLib/PasswordStoreLib.inf + OemPkg/Library/PasswordPolicyLib/PasswordPolicyLib.inf + OemPkg/Library/PasswordPolicyLibNull/PasswordPolicyLibNull.inf + OemPkg/Library/MsSecureBootModeSettingLib/MsSecureBootModeSettingLib.inf + OemPkg/Library/DfciUiSupportLib/DfciUiSupportLib.inf + OemPkg/Library/DfciGroupLib/DfciGroups.inf + OemPkg/Library/DfciDeviceIdSupportLib/DfciDeviceIdSupportLib.inf + OemPkg/Library/SecureBootKeyStoreLibOem/SecureBootKeyStoreLibOem.inf + OemPkg/Library/OemMfciLib/OemMfciLibPei.inf + OemPkg/Library/OemMfciLib/OemMfciLibDxe.inf + OemPkg/FrontpageButtonsVolumeUp/FrontpageButtonsVolumeUp.inf + +[Components.IA32] + OemPkg/DeviceStatePei/DeviceStatePei.inf + +[Components.X64] + OemPkg/FrontPage/FrontPage.inf + OemPkg/BootMenu/BootMenu.inf + OemPkg/Override/MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxe.inf + +[BuildOptions] +#force deprecated interfaces off + *_*_*_CC_FLAGS = -D DISABLE_NEW_DEPRECATED_INTERFACES diff --git a/OemPkg/Override/MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxe.inf b/OemPkg/Override/MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxe.inf index 1a41a11..973be58 100644 --- a/OemPkg/Override/MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxe.inf +++ b/OemPkg/Override/MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxe.inf @@ -1,63 +1,63 @@ -## @file -# This module produces Boot Manager Policy protocol. -# -# Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.
-# SPDX-License-Identifier: BSD-2-Clause-Patent -# -## - -[Defines] - INF_VERSION = 0x00010005 - BASE_NAME = BootManagerPolicyDxe - MODULE_UNI_FILE = BootManagerPolicyDxe.uni - FILE_GUID = A1BB8452-623A-410F-A72F-53A7E98EC94B - MODULE_TYPE = DXE_DRIVER - VERSION_STRING = 1.0 - ENTRY_POINT = BootManagerPolicyInitialize - -# -# The following information is for reference only and not required by the build tools. -# -# VALID_ARCHITECTURES = IA32 X64 EBC -# - -# This driver 1. satisfies the NetworkDependency Protocol, 2. does a ConnectAll to insure the network stack and related devices start. -# The override is here in case TianoCore changes the other functionality of the original driver. -#Override : 00000002 | MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxe.inf | 1394582abed01310637425761cf02e4e | 2022-02-06T04-32-51 | 683ed68b7ecab2be6740359535a52a3ea086dd8a - - -[Sources] - BootManagerPolicyDxe.c - - -[Packages] - MdePkg/MdePkg.dec - MdeModulePkg/MdeModulePkg.dec - PcBdsPkg/PcBdsPkg.dec - -[LibraryClasses] - BaseMemoryLib - MemoryAllocationLib - UefiLib - DevicePathLib - DebugLib - UefiDriverEntryPoint - UefiBootServicesTableLib - UefiRuntimeServicesTableLib - UefiBootManagerLib - -[Guids] - gEfiBootManagerPolicyConnectAllGuid ## CONSUMES ## GUID - gEfiBootManagerPolicyNetworkGuid ## CONSUMES ## GUID - gEfiBootManagerPolicyConsoleGuid ## CONSUMES ## GUID - -[Protocols] - gEfiManagedNetworkServiceBindingProtocolGuid ## CONSUMES - gEfiBootManagerPolicyProtocolGuid ## PRODUCES - gMsNetworkDelayProtocolGuid ## PRODUCES ## MS_CHANGE - -[Depex] - TRUE - -[UserExtensions.TianoCore."ExtraFiles"] - BootManagerPolicyDxeExtra.uni +## @file +# This module produces Boot Manager Policy protocol. +# +# Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = BootManagerPolicyDxe + MODULE_UNI_FILE = BootManagerPolicyDxe.uni + FILE_GUID = A1BB8452-623A-410F-A72F-53A7E98EC94B + MODULE_TYPE = DXE_DRIVER + VERSION_STRING = 1.0 + ENTRY_POINT = BootManagerPolicyInitialize + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = IA32 X64 EBC +# + +# This driver 1. satisfies the NetworkDependency Protocol, 2. does a ConnectAll to insure the network stack and related devices start. +# The override is here in case TianoCore changes the other functionality of the original driver. +#Override : 00000002 | MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxe.inf | 1394582abed01310637425761cf02e4e | 2022-02-06T04-32-51 | 683ed68b7ecab2be6740359535a52a3ea086dd8a + + +[Sources] + BootManagerPolicyDxe.c + + +[Packages] + MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec + PcBdsPkg/PcBdsPkg.dec + +[LibraryClasses] + BaseMemoryLib + MemoryAllocationLib + UefiLib + DevicePathLib + DebugLib + UefiDriverEntryPoint + UefiBootServicesTableLib + UefiRuntimeServicesTableLib + UefiBootManagerLib + +[Guids] + gEfiBootManagerPolicyConnectAllGuid ## CONSUMES ## GUID + gEfiBootManagerPolicyNetworkGuid ## CONSUMES ## GUID + gEfiBootManagerPolicyConsoleGuid ## CONSUMES ## GUID + +[Protocols] + gEfiManagedNetworkServiceBindingProtocolGuid ## CONSUMES + gEfiBootManagerPolicyProtocolGuid ## PRODUCES + gMsNetworkDelayProtocolGuid ## PRODUCES ## MS_CHANGE + +[Depex] + TRUE + +[UserExtensions.TianoCore."ExtraFiles"] + BootManagerPolicyDxeExtra.uni diff --git a/OemPkg/Override/MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxe.uni b/OemPkg/Override/MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxe.uni index cfbc974..8949cd3 100644 --- a/OemPkg/Override/MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxe.uni +++ b/OemPkg/Override/MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxe.uni @@ -1,13 +1,13 @@ -// /** @file -// This module produces Boot Manager Policy protocol. -// -// Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.
-// SPDX-License-Identifier: BSD-2-Clause-Patent -// -// **/ - - -#string STR_MODULE_ABSTRACT #language en-US "This module produces Boot Manager Policy protocol" - -#string STR_MODULE_DESCRIPTION #language en-US "This module produces Boot Manager Policy protocol, which is used by EFI Applications to request the UEFI Boot Manager to connect devices using platform policy." - +// /** @file +// This module produces Boot Manager Policy protocol. +// +// Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.
+// SPDX-License-Identifier: BSD-2-Clause-Patent +// +// **/ + + +#string STR_MODULE_ABSTRACT #language en-US "This module produces Boot Manager Policy protocol" + +#string STR_MODULE_DESCRIPTION #language en-US "This module produces Boot Manager Policy protocol, which is used by EFI Applications to request the UEFI Boot Manager to connect devices using platform policy." + diff --git a/OemPkg/Override/MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxeExtra.uni b/OemPkg/Override/MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxeExtra.uni index 132f3bd..fba8755 100644 --- a/OemPkg/Override/MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxeExtra.uni +++ b/OemPkg/Override/MdeModulePkg/Universal/BootManagerPolicyDxe/BootManagerPolicyDxeExtra.uni @@ -1,14 +1,14 @@ -// /** @file -// This module produces Boot Manager Policy protocol. -// -// Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.
-// -// SPDX-License-Identifier: BSD-2-Clause-Patent -// -// **/ - -#string STR_PROPERTIES_MODULE_NAME -#language en-US -"Boot Manager Policy DXE Driver" - - +// /** @file +// This module produces Boot Manager Policy protocol. +// +// Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.
+// +// SPDX-License-Identifier: BSD-2-Clause-Patent +// +// **/ + +#string STR_PROPERTIES_MODULE_NAME +#language en-US +"Boot Manager Policy DXE Driver" + + diff --git a/Readme.rst b/Readme.rst index fd771a6..9b8e8fc 100644 --- a/Readme.rst +++ b/Readme.rst @@ -1,86 +1,86 @@ -================================ -Project Mu Oem Sample Repository -================================ - -============================= ================= =============== =================== - Host Type & Toolchain Build Status Test Status Code Coverage -============================= ================= =============== =================== -Windows_VS_ |WindowsCiBuild| |WindowsCiTest| |WindowsCiCoverage| -Ubuntu_GCC5_ |UbuntuCiBuild| |UbuntuCiTest| |UbuntuCiCoverage| -============================= ================= =============== =================== - -This repository is part of Project Mu. Please see Project Mu for details https://microsoft.github.io/mu - -Branch Status - release/202202 -============================== - -:Status: - In Development - -:Entered Development: - Feb 2022 - -:Anticipated Stabilization: - May 2022 - -Branch Changes - release/202202 -=============================== - -Breaking Changes-dev --------------------- - -- Incomplete - -Main Changes-dev ----------------- - -- Incomplete - -Bug Fixes-dev -------------- - -- Incomplete - -Branched from 202111 --------------------- - -Commit: 463392d508cb36802f12384c45ecb8842d334bfa - -Code of Conduct -=============== - -This project has adopted the Microsoft Open Source Code of Conduct https://opensource.microsoft.com/codeofconduct/ - -For more information see the Code of Conduct FAQ https://opensource.microsoft.com/codeofconduct/faq/ -or contact `opencode@microsoft.com `_. with any additional questions or comments. - -Contributions -============= - -Contributions are always welcome and encouraged! -Please open any issues in the Project Mu GitHub tracker and read https://microsoft.github.io/mu/How/contributing/ - - -Copyright & License -=================== - -| Copyright (C) Microsoft Corporation -| SPDX-License-Identifier: BSD-2-Clause-Patent - -.. =================================================================== -.. This is a bunch of directives to make the README file more readable -.. =================================================================== - -.. CoreCI - -.. _Windows_VS: https://dev.azure.com/projectmu/mu/_build/latest?definitionId=47&&branchName=release%2F202202 -.. |WindowsCiBuild| image:: https://dev.azure.com/projectmu/mu/_apis/build/status/CI/OEM%20Sample/Mu%20OEM%20Sample%20-%20CI%20-%20Windows%20VS?repoName=microsoft%2Fmu_oem_sample&branchName=release%2F202202 -.. |WindowsCiTest| image:: https://img.shields.io/azure-devops/tests/projectmu/mu/47.svg -.. |WindowsCiCoverage| image:: https://img.shields.io/badge/coverage-coming_soon-blue - -.. _Ubuntu_GCC5: https://dev.azure.com/projectmu/mu/_build/latest?definitionId=48&&branchName=release%2F202202 -.. |UbuntuCiBuild| image:: https://dev.azure.com/projectmu/mu/_apis/build/status/CI/OEM%20Sample/Mu%20OEM%20Sample%20-%20CI%20-%20GCC5?repoName=microsoft%2Fmu_oem_sample&branchName=release%2F202202 -.. |UbuntuCiTest| image:: https://img.shields.io/azure-devops/tests/projectmu/mu/48.svg -.. |UbuntuCiCoverage| image:: https://img.shields.io/badge/coverage-coming_soon-blue - -.. |build_status_windows| image:: https://img.shields.io/badge/build-coming_soon-red +================================ +Project Mu Oem Sample Repository +================================ + +============================= ================= =============== =================== + Host Type & Toolchain Build Status Test Status Code Coverage +============================= ================= =============== =================== +Windows_VS_ |WindowsCiBuild| |WindowsCiTest| |WindowsCiCoverage| +Ubuntu_GCC5_ |UbuntuCiBuild| |UbuntuCiTest| |UbuntuCiCoverage| +============================= ================= =============== =================== + +This repository is part of Project Mu. Please see Project Mu for details https://microsoft.github.io/mu + +Branch Status - release/202202 +============================== + +:Status: + In Development + +:Entered Development: + Feb 2022 + +:Anticipated Stabilization: + May 2022 + +Branch Changes - release/202202 +=============================== + +Breaking Changes-dev +-------------------- + +- Incomplete + +Main Changes-dev +---------------- + +- Incomplete + +Bug Fixes-dev +------------- + +- Incomplete + +Branched from 202111 +-------------------- + +Commit: 463392d508cb36802f12384c45ecb8842d334bfa + +Code of Conduct +=============== + +This project has adopted the Microsoft Open Source Code of Conduct https://opensource.microsoft.com/codeofconduct/ + +For more information see the Code of Conduct FAQ https://opensource.microsoft.com/codeofconduct/faq/ +or contact `opencode@microsoft.com `_. with any additional questions or comments. + +Contributions +============= + +Contributions are always welcome and encouraged! +Please open any issues in the Project Mu GitHub tracker and read https://microsoft.github.io/mu/How/contributing/ + + +Copyright & License +=================== + +| Copyright (C) Microsoft Corporation +| SPDX-License-Identifier: BSD-2-Clause-Patent + +.. =================================================================== +.. This is a bunch of directives to make the README file more readable +.. =================================================================== + +.. CoreCI + +.. _Windows_VS: https://dev.azure.com/projectmu/mu/_build/latest?definitionId=47&&branchName=release%2F202202 +.. |WindowsCiBuild| image:: https://dev.azure.com/projectmu/mu/_apis/build/status/CI/OEM%20Sample/Mu%20OEM%20Sample%20-%20CI%20-%20Windows%20VS?repoName=microsoft%2Fmu_oem_sample&branchName=release%2F202202 +.. |WindowsCiTest| image:: https://img.shields.io/azure-devops/tests/projectmu/mu/47.svg +.. |WindowsCiCoverage| image:: https://img.shields.io/badge/coverage-coming_soon-blue + +.. _Ubuntu_GCC5: https://dev.azure.com/projectmu/mu/_build/latest?definitionId=48&&branchName=release%2F202202 +.. |UbuntuCiBuild| image:: https://dev.azure.com/projectmu/mu/_apis/build/status/CI/OEM%20Sample/Mu%20OEM%20Sample%20-%20CI%20-%20GCC5?repoName=microsoft%2Fmu_oem_sample&branchName=release%2F202202 +.. |UbuntuCiTest| image:: https://img.shields.io/azure-devops/tests/projectmu/mu/48.svg +.. |UbuntuCiCoverage| image:: https://img.shields.io/badge/coverage-coming_soon-blue + +.. |build_status_windows| image:: https://img.shields.io/badge/build-coming_soon-red diff --git a/pip-requirements.txt b/pip-requirements.txt index 5677174..cca0f27 100644 --- a/pip-requirements.txt +++ b/pip-requirements.txt @@ -1,19 +1,19 @@ -## @file -# EDK II Python PIP requirements file -# -# This file provides the list of python components to install using PIP. -# -# Copyright (c) Microsoft Corporation. -# SPDX-License-Identifier: BSD-2-Clause-Patent -# -# https://pypi.org/project/pip/ -# https://pip.pypa.io/en/stable/user_guide/#requirements-files -# https://pip.pypa.io/en/stable/reference/pip_install/#requirements-file-format -# https://www.python.org/dev/peps/pep-0440/#version-specifiers -## - -edk2-pytool-library~=0.11.6 -edk2-pytool-extensions~=0.17.2 -edk2-basetools==0.1.29 -antlr4-python3-runtime==4.11.1 -regex==2022.8.17 +## @file +# EDK II Python PIP requirements file +# +# This file provides the list of python components to install using PIP. +# +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +# https://pypi.org/project/pip/ +# https://pip.pypa.io/en/stable/user_guide/#requirements-files +# https://pip.pypa.io/en/stable/reference/pip_install/#requirements-file-format +# https://www.python.org/dev/peps/pep-0440/#version-specifiers +## + +edk2-pytool-library~=0.11.6 +edk2-pytool-extensions~=0.17.2 +edk2-basetools==0.1.29 +antlr4-python3-runtime==4.11.1 +regex==2022.8.17