This patch series introduces a mechanism for determining the firmware boot media device. This allows the firmware boot media to be discovered through a standardized API.
Traditionally, most systems have only supported firmware storage on SPI flash. Presently, several other storage technologies are being used to store boot system firmware such as eMMC, UFS, and NVMe. The API for all board, platform, and silicon code to consume the firmware boot media device is provided by the FirmwareBootMediaLib in IntelSiliconPkg. A driver (FirmwareBootMediaInfoPei) is added to BoardModulePkg to serve as a consistent location for reporting the firmware boot device information. In order to abstract the potentially hardware-specific details to determine the boot media (for platforms that support multiple firmware boot media devices), the driver retrieves the boot media information using a new library class introduced called FirmwareBootMediaInfoLib. A default instance of this library class is provided in BoardModulePkg that always returns SPI flash. This is intended to serve as a default implementation of the library for the most common scenario and to easily allow a board package to substitute the logic required to determine the boot media in more complex scenarios. Ultimately, FirmwareBootMediaInfoPei produces a HOB containing the firmware boot media device information so it can be used in the HOB consumer phase. Cc: Sai Chaganty <rangasai.v.chaga...@intel.com> Cc: Eric Dong <eric.d...@intel.com> Cc: Liming Gao <liming....@intel.com> Cc: Ray Ni <ray...@intel.com> Signed-off-by: Michael Kubacki <michael.a.kuba...@intel.com> Michael Kubacki (3): IntelSiliconPkg/FirmwareBootMediaLib: Add library BoardModulePkg/FirmwareBootMediaInfoLib: Add library BoardModulePkg/FirmwareBootMediaInfoPei: Add module Platform/Intel/BoardModulePkg/BoardModulePkg.dec | 3 + Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dec | 4 +- Platform/Intel/BoardModulePkg/BoardModulePkg.dsc | 5 + Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dsc | 4 +- Platform/Intel/BoardModulePkg/FirmwareBootMediaInfo/FirmwareBootMediaInfoPei.inf | 46 +++++++++ Platform/Intel/BoardModulePkg/Library/PeiFirmwareBootMediaInfoLib/PeiFirmwareBootMediaInfoLib.inf | 35 +++++++ Silicon/Intel/IntelSiliconPkg/Library/PeiDxeSmmBootMediaLib/DxeSmmFirmwareBootMediaLib.inf | 43 ++++++++ Silicon/Intel/IntelSiliconPkg/Library/PeiDxeSmmBootMediaLib/PeiFirmwareBootMediaLib.inf | 38 +++++++ Platform/Intel/BoardModulePkg/Include/Library/FirmwareBootMediaInfoLib.h | 26 +++++ Silicon/Intel/IntelSiliconPkg/Include/Library/FirmwareBootMediaLib.h | 106 +++++++++++++++++++ Platform/Intel/BoardModulePkg/FirmwareBootMediaInfo/FirmwareBootMediaInfoPei.c | 76 ++++++++++++++ Platform/Intel/BoardModulePkg/Library/PeiFirmwareBootMediaInfoLib/PeiFirmwareBootMediaInfoLib.c | 24 +++++ Silicon/Intel/IntelSiliconPkg/Library/PeiDxeSmmBootMediaLib/DxeSmmFirmwareBootMediaLib.c | 107 +++++++++++++++++++ Silicon/Intel/IntelSiliconPkg/Library/PeiDxeSmmBootMediaLib/FirmwareBootMediaLib.c | 109 ++++++++++++++++++++ Silicon/Intel/IntelSiliconPkg/Library/PeiDxeSmmBootMediaLib/PeiFirmwareBootMediaLib.c | 82 +++++++++++++++ 15 files changed, 706 insertions(+), 2 deletions(-) create mode 100644 Platform/Intel/BoardModulePkg/FirmwareBootMediaInfo/FirmwareBootMediaInfoPei.inf create mode 100644 Platform/Intel/BoardModulePkg/Library/PeiFirmwareBootMediaInfoLib/PeiFirmwareBootMediaInfoLib.inf create mode 100644 Silicon/Intel/IntelSiliconPkg/Library/PeiDxeSmmBootMediaLib/DxeSmmFirmwareBootMediaLib.inf create mode 100644 Silicon/Intel/IntelSiliconPkg/Library/PeiDxeSmmBootMediaLib/PeiFirmwareBootMediaLib.inf create mode 100644 Platform/Intel/BoardModulePkg/Include/Library/FirmwareBootMediaInfoLib.h create mode 100644 Silicon/Intel/IntelSiliconPkg/Include/Library/FirmwareBootMediaLib.h create mode 100644 Platform/Intel/BoardModulePkg/FirmwareBootMediaInfo/FirmwareBootMediaInfoPei.c create mode 100644 Platform/Intel/BoardModulePkg/Library/PeiFirmwareBootMediaInfoLib/PeiFirmwareBootMediaInfoLib.c create mode 100644 Silicon/Intel/IntelSiliconPkg/Library/PeiDxeSmmBootMediaLib/DxeSmmFirmwareBootMediaLib.c create mode 100644 Silicon/Intel/IntelSiliconPkg/Library/PeiDxeSmmBootMediaLib/FirmwareBootMediaLib.c create mode 100644 Silicon/Intel/IntelSiliconPkg/Library/PeiDxeSmmBootMediaLib/PeiFirmwareBootMediaLib.c -- 2.16.2.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#48331): https://edk2.groups.io/g/devel/message/48331 Mute This Topic: https://groups.io/mt/34352432/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-