Acidanthera UEFI Development Kit based on EDK II edk2-stable202311
Go to file
Cinnamon Shia a6d594c5fa OvmfPkg: use StatusCode Router and Handler from MdeModulePkg
In the Platform Init v1.4a spec,
- Volume 1 "4.7 Status Code Service" defines the
  EFI_PEI_SERVICES.ReportStatusCode() service,
- Volume 1 "6.3.5 Status Code PPI (Optional)" defines the
  EFI_PEI_PROGRESS_CODE_PPI (equivalent to the above),
- Volume 2 "14.2 Status Code Runtime Protocol" defines the
  EFI_STATUS_CODE_PROTOCOL.

These allow PEIMs and DXE (and later) modules to report status codes.

Currently OvmfPkg uses modules from under
"IntelFrameworkModulePkg/Universal/StatusCode/", which produce the above
abstractions (PPI and PROTOCOL) directly, and write the status codes, as
they are reported, to the serial port or to a memory buffer. This is
called "handling" the status codes.

In the Platform Init v1.4a spec,
- Volume 3 "7.2.2 Report Status Code Handler PPI" defines
  EFI_PEI_RSC_HANDLER_PPI,
- Volume 3 "7.2.1 Report Status Code Handler Protocol" defines
  EFI_RSC_HANDLER_PROTOCOL.

These allow several PEIMs and runtime DXE drivers to register callbacks
for status code handling.

MdeModulePkg offers a PEIM under
"MdeModulePkg/Universal/ReportStatusCodeRouter/Pei" that produces both
EFI_PEI_PROGRESS_CODE_PPI and EFI_PEI_RSC_HANDLER_PPI, and a runtime DXE
driver under "MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe"
that produces both EFI_STATUS_CODE_PROTOCOL and EFI_RSC_HANDLER_PROTOCOL.

MdeModulePkg also offers status code handler modules under
MdeModulePkg/Universal/StatusCodeHandler/ that depend on
EFI_PEI_RSC_HANDLER_PPI and EFI_RSC_HANDLER_PROTOCOL, respectively.

The StatusCodeHandler modules register themselves with
ReportStatusCodeRouter through EFI_PEI_RSC_HANDLER_PPI /
EFI_RSC_HANDLER_PROTOCOL. When another module reports a status code
through EFI_PEI_PROGRESS_CODE_PPI / EFI_STATUS_CODE_PROTOCOL, it reaches
the phase-matching ReportStatusCodeRouter module first, which in turn
passes the status code to the pre-registered, phase-matching
StatusCodeHandler module.

The status code handling in the StatusCodeHandler modules is identical to
the one currently provided by the IntelFrameworkModulePkg modules. Replace
the IntelFrameworkModulePkg modules with the MdeModulePkg ones, so we can
decrease our dependency on IntelFrameworkModulePkg.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Cinnamon Shia <cinnamon.shia@hpe.com>
Suggested-by: Liming Gao <liming.gao@intel.com>
Fixes: https://tianocore.acgmultimedia.com/show_bug.cgi?id=63
[jordan.l.justen@intel.com: point out IntelFareworkModulePkg typos]
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
[lersek@redhat.com: rewrap to 74 cols; fix IntelFareworkModulePkg typos]
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
2016-08-02 20:52:10 +02:00
AppPkg
ArmPkg ArmPkg: add prebuilt glue binaries for GCC5 LTO support 2016-08-02 10:53:57 +02:00
ArmPlatformPkg ArmPlatformPkg: Convert ArmJunoDxe to use common juno revision code 2016-07-28 15:29:35 +01:00
ArmVirtPkg ArmVirtPkg/ArmVirtPrePiUniCoreRelocatable: deal with relaxed XIP alignment 2016-08-02 14:04:00 +02:00
BaseTools BaseTools: Keep the Pcd order in the Asbuilt Inf is same with Source 2016-08-02 19:39:01 +08:00
BeagleBoardPkg
Conf
CorebootModulePkg
CorebootPayloadPkg
CryptoPkg MdePkg CryptoPkg EdkCompatibilityPkg: retire NO_BUILTIN_VA_FUNCS define 2016-07-21 13:32:09 +02:00
DuetPkg
EdkCompatibilityPkg EdkCompatibilityPkg: Fix GCC build failure 2016-08-01 12:44:44 +08:00
EdkShellBinPkg
EdkShellPkg
EmbeddedPkg EmbeddedPkg/AcpiLib: add GICC table init macro for ACPI 6.0 2016-07-06 10:51:38 +02:00
EmulatorPkg BaseTools GCC: use 'gcc' as the linker command for GCC44 and later 2016-08-02 08:40:43 +02:00
FatBinPkg
FatPkg
IntelFrameworkModulePkg IntelFrameworkModulePkg BdsDxe: Use definition in IndustryStandard/Smbios.h 2016-07-29 10:10:55 +08:00
IntelFrameworkPkg
IntelFsp2Pkg IntelFsp2Pkg: Locate FSP Info Header dynamically 2016-08-02 21:12:54 +08:00
IntelFsp2WrapperPkg IntelFsp2WrapperPkg: Add missing License.txt. 2016-07-26 10:52:04 +08:00
IntelFspPkg IntelFspPkg: Add missing License.txt. 2016-07-26 10:52:05 +08:00
IntelFspWrapperPkg IntelFspWrapperPkg: Add missing License.txt. 2016-07-26 10:52:06 +08:00
IntelSiliconPkg IntelSiliconPkg/IgdOpRegion: Add definition for Intel IGD 2016-06-16 08:42:44 +08:00
MdeModulePkg MdeModulePkg: Add new LoadFileOnFv2 in Package DSC for Build 2016-08-01 12:58:33 +08:00
MdePkg BaseTools GCC: introduce GCC5 toolchain to support GCC v5.x in LTO mode 2016-08-02 10:54:11 +02:00
NetworkPkg NetworkPkg: Add missed character in copyright. 2016-08-01 10:21:04 +08:00
Nt32Pkg Nt32Pkg: Make Shell as the first boot option 2016-08-01 12:58:43 +08:00
Omap35xxPkg
OptionRomPkg OptionRomPkg: Fix typos in comments 2016-07-11 10:29:47 +08:00
OvmfPkg OvmfPkg: use StatusCode Router and Handler from MdeModulePkg 2016-08-02 20:52:10 +02:00
PcAtChipsetPkg PcAtChipsetPkg/PcRtc: Fix a NULL pointer deference issue 2016-07-27 10:27:16 +08:00
PerformancePkg PerformancePkg: Replace UnicodeStrToAsciiStr/AsciiStrToUnicodeStr 2016-06-21 12:46:25 +08:00
QuarkPlatformPkg QuarkPlatformPkg: fix ASSERT_EFI_ERROR() typos 2016-06-30 13:08:14 +02:00
QuarkSocPkg
SecurityPkg SecurityPkg: AuthVariableLib: Revert UserPhysicalPresent feature from AuthVariableLib 2016-07-22 09:48:00 +08:00
ShellBinPkg ShellBinPkg Arm/AArch64 Shell binary update 2016-08-02 12:25:13 +02:00
ShellPkg ShellPkg: Unregister hotkey callback when exiting Shell 2016-07-29 09:52:40 +08:00
SourceLevelDebugPkg SourceLevelDebugPkg DebugAgentLib: Add nasm source file into LIB INF files. 2016-06-28 09:52:25 +08:00
StdLib StdLib: Series of patches to fix typos - availabe to available 2016-07-07 15:23:19 -07:00
StdLibPrivateInternalFiles
UefiCpuPkg UefiCpuPkg/PiSmmCpuDxeSmm: SMM_CPU_DATA_BLOCK is not cleared 2016-07-20 18:50:53 -07:00
UnixPkg
Vlv2DeviceRefCodePkg Vlv2DeviceRefCodePkg&Vlv2DevicePkg:Add sample WSMT table. 2016-07-31 11:59:54 +08:00
Vlv2TbltDevicePkg Vlv2DeviceRefCodePkg&Vlv2DevicePkg:Add sample WSMT table. 2016-07-31 11:59:54 +08:00
.gitignore
BuildNotes2.txt
Edk2Setup.bat
Maintainers.txt Change ShellPkg&ShellBinPkg maintainer 2016-07-06 08:05:21 -07:00
edksetup.bat Update edksetup.bat to check NASM system environment variable 2016-07-26 10:16:48 +08:00
edksetup.sh