From: "Laszlo Ersek" <lersek@redhat.com>
To: devel@edk2.groups.io
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>,
Gerd Hoffmann <kraxel@redhat.com>,
Jiewen Yao <jiewen.yao@intel.com>
Subject: [edk2-devel] [PATCH 24/37] OvmfPkg: remove gEfiLegacyBiosPlatformProtocolGuid
Date: Sat, 11 Nov 2023 00:58:07 +0100 [thread overview]
Message-ID: <20231110235820.644381-25-lersek@redhat.com> (raw)
In-Reply-To: <20231110235820.644381-1-lersek@redhat.com>
At this point, gEfiLegacyBiosPlatformProtocolGuid is unused; remove it.
This shrinks the list of resources scheduled for removal to:
- GUIDs (protocols or otherwise):
- SYSTEM_ROM_FILE_GUID (1547B4F3-3E8A-4FEF-81C8-328ED647AB1A)
- gEfiLegacy8259ProtocolGuid
- gEfiLegacyBiosProtocolGuid
- gEfiLegacyInterruptProtocolGuid
- headers:
- FrameworkDxe.h
- Protocol/Legacy8259.h
- Protocol/LegacyBios.h
- Protocol/LegacyInterrupt.h
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=4588
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
OvmfPkg/OvmfPkg.dec | 1 -
OvmfPkg/Csm/Include/Protocol/LegacyBiosPlatform.h | 753 --------------------
2 files changed, 754 deletions(-)
diff --git a/OvmfPkg/OvmfPkg.dec b/OvmfPkg/OvmfPkg.dec
index 94ad22d9501b..d257007c236a 100644
--- a/OvmfPkg/OvmfPkg.dec
+++ b/OvmfPkg/OvmfPkg.dec
@@ -184,7 +184,6 @@ [Protocols]
gIoMmuAbsentProtocolGuid = {0xf8775d50, 0x8abd, 0x4adf, {0x92, 0xac, 0x85, 0x3e, 0x51, 0xf6, 0xc8, 0xdc}}
gEfiLegacy8259ProtocolGuid = {0x38321dba, 0x4fe0, 0x4e17, {0x8a, 0xec, 0x41, 0x30, 0x55, 0xea, 0xed, 0xc1}}
gEfiLegacyBiosProtocolGuid = {0xdb9a1e3d, 0x45cb, 0x4abb, {0x85, 0x3b, 0xe5, 0x38, 0x7f, 0xdb, 0x2e, 0x2d}}
- gEfiLegacyBiosPlatformProtocolGuid = {0x783658a3, 0x4172, 0x4421, {0xa2, 0x99, 0xe0, 0x09, 0x07, 0x9c, 0x0c, 0xb4}}
gEfiLegacyInterruptProtocolGuid = {0x31ce593d, 0x108a, 0x485d, {0xad, 0xb2, 0x78, 0xf2, 0x1f, 0x29, 0x66, 0xbe}}
gOvmfLoadedX86LinuxKernelProtocolGuid = {0xa3edc05d, 0xb618, 0x4ff6, {0x95, 0x52, 0x76, 0xd7, 0x88, 0x63, 0x43, 0xc8}}
gOvmfSevMemoryAcceptanceProtocolGuid = {0xc5a010fe, 0x38a7, 0x4531, {0x8a, 0x4a, 0x05, 0x00, 0xd2, 0xfd, 0x16, 0x49}}
diff --git a/OvmfPkg/Csm/Include/Protocol/LegacyBiosPlatform.h b/OvmfPkg/Csm/Include/Protocol/LegacyBiosPlatform.h
deleted file mode 100644
index 941b1c833159..000000000000
--- a/OvmfPkg/Csm/Include/Protocol/LegacyBiosPlatform.h
+++ /dev/null
@@ -1,753 +0,0 @@
-/** @file
- The EFI Legacy BIOS Platform Protocol is used to mate a Legacy16
- implementation with this EFI code. The EFI driver that produces
- the Legacy BIOS protocol is generic and consumes this protocol.
- A driver that matches the Legacy16 produces this protocol
-
-Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
-SPDX-License-Identifier: BSD-2-Clause-Patent
-
- @par Revision Reference:
- This protocol is defined in Framework for EFI Compatibility Support Module spec
- Version 0.97.
-
-**/
-
-#ifndef _EFI_LEGACY_BIOS_PLATFORM_H_
-#define _EFI_LEGACY_BIOS_PLATFORM_H_
-
-///
-/// Legacy BIOS Platform depends on HDD_INFO and EFI_COMPATIBILITY16_TABLE that
-/// are defined with the Legacy BIOS Protocol
-///
-#include <Protocol/LegacyBios.h>
-
-#define EFI_LEGACY_BIOS_PLATFORM_PROTOCOL_GUID \
- { \
- 0x783658a3, 0x4172, 0x4421, {0xa2, 0x99, 0xe0, 0x9, 0x7, 0x9c, 0xc, 0xb4 } \
- }
-
-typedef struct _EFI_LEGACY_BIOS_PLATFORM_PROTOCOL EFI_LEGACY_BIOS_PLATFORM_PROTOCOL;
-
-/**
- This enum specifies the Mode param values for GetPlatformInfo()
-**/
-typedef enum {
- ///
- /// This mode is invoked twice. The first invocation has LegacySegment and
- /// LegacyOffset set to 0. The mode returns the MP table address in EFI memory, along with its size.
- /// The second invocation has LegacySegment and LegacyOffset set to the location
- /// in the 0xF0000 or 0xE0000 block to which the MP table is to be copied. The second
- /// invocation allows any MP table address fixes to occur in the EFI memory copy of the
- /// MP table. The caller, not EfiGetPlatformBinaryMpTable, copies the modified MP
- /// table to the allocated region in 0xF0000 or 0xE0000 block after the second invocation.
- ///
- /// The function parameters associated with this mode are:
- ///
- /// Table Pointer to the MP table.
- ///
- /// TableSize Size in bytes of the MP table.
- ///
- /// Location Location to place table. 0x00. Either 0xE0000 or 0xF0000 64 KB blocks.
- /// Bit 0 = 1 0xF0000 64 KB block.
- /// Bit 1 = 1 0xE0000 64 KB block.
- /// Multiple bits can be set.
- ///
- /// Alignment Bit-mapped address alignment granularity.
- /// The first nonzero bit from the right is the address granularity.
- ///
- // LegacySegment Segment in which EfiCompatibility code will place the MP table.
- ///
- /// LegacyOffset Offset in which EfiCompatibility code will place the MP table.
- ///
- /// The return values associated with this mode are:
- ///
- /// EFI_SUCCESS The MP table was returned.
- ///
- /// EFI_UNSUPPORTED The MP table is not supported on this platform.
- ///
- EfiGetPlatformBinaryMpTable = 0,
- ///
- /// This mode returns a block of data. The content and usage is IBV or OEM defined.
- /// OEMs or IBVs normally use this function for nonstandard Compatibility16 runtime soft
- /// INTs. It is the responsibility of this routine to coalesce multiple OEM 16 bit functions, if
- /// they exist, into one coherent package that is understandable by the Compatibility16 code.
- /// This function is invoked twice. The first invocation has LegacySegment and
- /// LegacyOffset set to 0. The function returns the table address in EFI memory, as well as its size.
- /// The second invocation has LegacySegment and LegacyOffset set to the location
- /// in the 0xF0000 or 0xE0000 block to which the data (table) is to be copied. The second
- /// invocation allows any data (table) address fixes to occur in the EFI memory copy of
- /// the table. The caller, not GetOemIntData(), copies the modified data (table) to the
- /// allocated region in 0xF0000 or 0xE0000 block after the second invocation.
- ///
- /// The function parameters associated with this mode are:
- ///
- /// Table Pointer to OEM legacy 16 bit code or data.
- ///
- /// TableSize Size of data.
- ///
- /// Location Location to place table. 0x00. Either 0xE0000 or 0xF0000 64 KB blocks.
- /// Bit 0 = 1 0xF0000 64 KB block.
- /// Bit 1 = 1 0xE0000 64 KB block.
- /// Multiple bits can be set.
- ///
- /// Alignment Bit mapped address alignment granularity.
- /// The first nonzero bit from the right is the address granularity.
- ///
- /// LegacySegment Segment in which EfiCompatibility code will place the table or data.
- ///
- /// LegacyOffset Offset in which EfiCompatibility code will place the table or data.
- ///
- /// The return values associated with this mode are:
- ///
- /// EFI_SUCCESS The data was returned successfully.
- ///
- /// EFI_UNSUPPORTED Oem INT is not supported on this platform.
- ///
- EfiGetPlatformBinaryOemIntData = 1,
- ///
- /// This mode returns a block of data. The content and usage is IBV defined. OEMs or
- /// IBVs normally use this mode for nonstandard Compatibility16 runtime 16 bit routines. It
- /// is the responsibility of this routine to coalesce multiple OEM 16 bit functions, if they
- /// exist, into one coherent package that is understandable by the Compatibility16 code.
- ///
- /// Example usage: A legacy mobile BIOS that has a pre-existing runtime
- /// interface to return the battery status to calling applications.
- ///
- /// This mode is invoked twice. The first invocation has LegacySegment and
- /// LegacyOffset set to 0. The mode returns the table address in EFI memory and its size.
- /// The second invocation has LegacySegment and LegacyOffset set to the location
- /// in the 0xF0000 or 0xE0000 block to which the table is to be copied. The second
- /// invocation allows any table address fixes to occur in the EFI memory copy of the table.
- /// The caller, not EfiGetPlatformBinaryOem16Data, copies the modified table to
- /// the allocated region in 0xF0000 or 0xE0000 block after the second invocation.
- ///
- /// The function parameters associated with this mode are:
- ///
- /// Table Pointer to OEM legacy 16 bit code or data.
- ///
- /// TableSize Size of data.
- ///
- /// Location Location to place the table. 0x00. Either 0xE0000 or 0xF0000 64 KB blocks.
- /// Bit 0 = 1 0xF0000 64 KB block.
- /// Bit 1 = 1 0xE0000 64 KB block.
- /// Multiple bits can be set.
- ///
- /// Alignment Bit mapped address alignment granularity.
- /// The first nonzero bit from the right is the address granularity.
- ///
- /// LegacySegment Segment in which EfiCompatibility code will place the table or data.
- ///
- /// LegacyOffset Offset in which EfiCompatibility code will place the table or data.
- ///
- /// The return values associated with this mode are:
- ///
- /// EFI_SUCCESS The data was returned successfully.
- ///
- /// EFI_UNSUPPORTED Oem16 is not supported on this platform.
- ///
- EfiGetPlatformBinaryOem16Data = 2,
- ///
- /// This mode returns a block of data. The content and usage are IBV defined. OEMs or
- /// IBVs normally use this mode for nonstandard Compatibility16 runtime 32 bit routines. It
- /// is the responsibility of this routine to coalesce multiple OEM 32 bit functions, if they
- /// exist, into one coherent package that is understandable by the Compatibility16 code.
- ///
- /// Example usage: A legacy mobile BIOS that has a pre existing runtime
- /// interface to return the battery status to calling applications.
- ///
- /// This mode is invoked twice. The first invocation has LegacySegment and
- /// LegacyOffset set to 0. The mode returns the table address in EFI memory and its size.
- ///
- /// The second invocation has LegacySegment and LegacyOffset set to the location
- /// in the 0xF0000 or 0xE0000 block to which the table is to be copied. The second
- /// invocation allows any table address fix ups to occur in the EFI memory copy of the table.
- /// The caller, not EfiGetPlatformBinaryOem32Data, copies the modified table to
- /// the allocated region in 0xF0000 or 0xE0000 block after the second invocation..
- ///
- /// Note: There are two generic mechanisms by which this mode can be used.
- /// Mechanism 1: This mode returns the data and the Legacy BIOS Protocol copies
- /// the data into the F0000 or E0000 block in the Compatibility16 code. The
- /// EFI_COMPATIBILITY16_TABLE entries Oem32Segment and Oem32Offset can
- /// be viewed as two UINT16 entries.
- /// Mechanism 2: This mode directly fills in the EFI_COMPATIBILITY16_TABLE with
- /// a pointer to the INT15 E820 region containing the 32 bit code. It returns
- /// EFI_UNSUPPORTED. The EFI_COMPATIBILITY16_TABLE entries,
- /// Oem32Segment and Oem32Offset, can be viewed as two UINT16 entries or
- /// as a single UINT32 entry as determined by the IBV.
- ///
- /// The function parameters associated with this mode are:
- ///
- /// TableSize Size of data.
- ///
- /// Location Location to place the table. 0x00 or 0xE0000 or 0xF0000 64 KB blocks.
- /// Bit 0 = 1 0xF0000 64 KB block.
- /// Bit 1 = 1 0xE0000 64 KB block.
- /// Multiple bits can be set.
- ///
- /// Alignment Bit mapped address alignment granularity.
- /// The first nonzero bit from the right is the address granularity.
- ///
- /// LegacySegment Segment in which EfiCompatibility code will place the table or data.
- ///
- /// LegacyOffset Offset in which EfiCompatibility code will place the table or data.
- ///
- /// The return values associated with this mode are:
- /// EFI_SUCCESS The data was returned successfully.
- /// EFI_UNSUPPORTED Oem32 is not supported on this platform.
- ///
- EfiGetPlatformBinaryOem32Data = 3,
- ///
- /// This mode returns a TPM binary image for the onboard TPM device.
- ///
- /// The function parameters associated with this mode are:
- ///
- /// Table TPM binary image for the onboard TPM device.
- ///
- /// TableSize Size of BinaryImage in bytes.
- ///
- /// Location Location to place the table. 0x00. Either 0xE0000 or 0xF0000 64 KB blocks.
- /// Bit 0 = 1 0xF0000 64 KB block.
- /// Bit 1 = 1 0xE0000 64 KB block.
- /// Multiple bits can be set.
- ///
- /// Alignment Bit mapped address alignment granularity.
- /// The first nonzero bit from the right is the address granularity.
- ///
- /// LegacySegment Segment in which EfiCompatibility code will place the table or data.
- ///
- /// LegacyOffset Offset in which EfiCompatibility code will place the table or data.
- ///
- /// The return values associated with this mode are:
- ///
- /// EFI_SUCCESS BinaryImage is valid.
- ///
- /// EFI_UNSUPPORTED Mode is not supported on this platform.
- ///
- /// EFI_NOT_FOUND No BinaryImage was found.
- ///
- EfiGetPlatformBinaryTpmBinary = 4,
- ///
- /// The mode finds the Compatibility16 Rom Image.
- ///
- /// The function parameters associated with this mode are:
- ///
- /// System ROM image for the platform.
- ///
- /// TableSize Size of Table in bytes.
- ///
- /// Location Ignored.
- ///
- /// Alignment Ignored.
- ///
- /// LegacySegment Ignored.
- ///
- /// LegacyOffset Ignored.
- ///
- /// The return values associated with this mode are:
- ///
- /// EFI_SUCCESS ROM image found.
- ///
- /// EFI_NOT_FOUND ROM not found.
- ///
- EfiGetPlatformBinarySystemRom = 5,
- ///
- /// This mode returns the Base address of PciExpress memory mapped configuration
- /// address space.
- ///
- /// The function parameters associated with this mode are:
- ///
- /// Table System ROM image for the platform.
- ///
- /// TableSize Size of Table in bytes.
- ///
- /// Location Ignored.
- ///
- /// Alignment Ignored.
- ///
- /// LegacySegment Ignored.
- ///
- /// LegacyOffset Ignored.
- ///
- /// The return values associated with this mode are:
- ///
- /// EFI_SUCCESS Address is valid.
- ///
- /// EFI_UNSUPPORTED System does not PciExpress.
- ///
- EfiGetPlatformPciExpressBase = 6,
- ///
- EfiGetPlatformPmmSize = 7,
- ///
- EfiGetPlatformEndOpromShadowAddr = 8,
- ///
-} EFI_GET_PLATFORM_INFO_MODE;
-
-/**
- This enum specifies the Mode param values for GetPlatformHandle().
-**/
-typedef enum {
- ///
- /// This mode returns the Compatibility16 policy for the device that should be the VGA
- /// controller used during a Compatibility16 boot.
- ///
- /// The function parameters associated with this mode are:
- ///
- /// Type 0x00.
- ///
- /// HandleBuffer Buffer of all VGA handles found.
- ///
- /// HandleCount Number of VGA handles found.
- ///
- /// AdditionalData NULL.
- ///
- EfiGetPlatformVgaHandle = 0,
- ///
- /// This mode returns the Compatibility16 policy for the device that should be the IDE
- /// controller used during a Compatibility16 boot.
- ///
- /// The function parameters associated with this mode are:
- ///
- /// Type 0x00.
- ///
- /// HandleBuffer Buffer of all IDE handles found.
- ///
- /// HandleCount Number of IDE handles found.
- ///
- /// AdditionalData Pointer to HddInfo.
- /// Information about all onboard IDE controllers.
- ///
- EfiGetPlatformIdeHandle = 1,
- ///
- /// This mode returns the Compatibility16 policy for the device that should be the ISA bus
- /// controller used during a Compatibility16 boot.
- ///
- /// The function parameters associated with this mode are:
- ///
- /// Type 0x00.
- ///
- /// HandleBuffer Buffer of all ISA bus handles found.
- ///
- /// HandleCount Number of ISA bus handles found.
- ///
- /// AdditionalData NULL.
- ///
- EfiGetPlatformIsaBusHandle = 2,
- ///
- /// This mode returns the Compatibility16 policy for the device that should be the USB
- /// device used during a Compatibility16 boot.
- ///
- /// The function parameters associated with this mode are:
- ///
- /// Type 0x00.
- ///
- /// HandleBuffer Buffer of all USB handles found.
- ///
- /// HandleCount Number of USB bus handles found.
- ///
- /// AdditionalData NULL.
- ///
- EfiGetPlatformUsbHandle = 3
-} EFI_GET_PLATFORM_HANDLE_MODE;
-
-/**
- This enum specifies the Mode param values for PlatformHooks().
- Note: Any OEM defined hooks start with 0x8000.
-**/
-typedef enum {
- ///
- /// This mode allows any preprocessing before scanning OpROMs.
- ///
- /// The function parameters associated with this mode are:
- ///
- /// Type 0.
- ///
- /// DeviceHandle Handle of device OpROM is associated with.
- ///
- /// ShadowAddress Address where OpROM is shadowed.
- ///
- /// Compatibility16Table NULL.
- ///
- /// AdditionalData NULL.
- ///
- EfiPlatformHookPrepareToScanRom = 0,
- ///
- /// This mode shadows legacy OpROMS that may not have a physical device associated with
- /// them. It returns EFI_SUCCESS if the ROM was shadowed.
- ///
- /// The function parameters associated with this mode are:
- ///
- /// Type 0.
- ///
- /// DeviceHandle 0.
- ///
- /// ShadowAddress First free OpROM area, after other OpROMs have been dispatched..
- ///
- /// Compatibility16Table Pointer to the Compatibility16 Table.
- ///
- /// AdditionalData NULL.
- ///
- EfiPlatformHookShadowServiceRoms = 1,
- ///
- /// This mode allows platform to perform any required operation after an OpROM has
- /// completed its initialization.
- ///
- /// The function parameters associated with this mode are:
- ///
- /// Type 0.
- ///
- /// DeviceHandle Handle of device OpROM is associated with.
- ///
- /// ShadowAddress Address where OpROM is shadowed.
- ///
- /// Compatibility16Table NULL.
- ///
- /// AdditionalData NULL.
- ///
- EfiPlatformHookAfterRomInit = 2
-} EFI_GET_PLATFORM_HOOK_MODE;
-
-///
-/// This IRQ has not been assigned to PCI.
-///
-#define PCI_UNUSED 0x00
-///
-/// This IRQ has been assigned to PCI.
-///
-#define PCI_USED 0xFF
-///
-/// This IRQ has been used by an SIO legacy device and cannot be used by PCI.
-///
-#define LEGACY_USED 0xFE
-
-#pragma pack(1)
-
-typedef struct {
- ///
- /// IRQ for this entry.
- ///
- UINT8 Irq;
- ///
- /// Status of this IRQ.
- ///
- /// PCI_UNUSED 0x00. This IRQ has not been assigned to PCI.
- ///
- /// PCI_USED 0xFF. This IRQ has been assigned to PCI.
- ///
- /// LEGACY_USED 0xFE. This IRQ has been used by an SIO legacy
- /// device and cannot be used by PCI.
- ///
- UINT8 Used;
-} EFI_LEGACY_IRQ_PRIORITY_TABLE_ENTRY;
-
-//
-// Define PIR table structures
-//
-#define EFI_LEGACY_PIRQ_TABLE_SIGNATURE SIGNATURE_32 ('$', 'P', 'I', 'R')
-
-typedef struct {
- ///
- /// $PIR.
- ///
- UINT32 Signature;
- ///
- /// 0x00.
- ///
- UINT8 MinorVersion;
- ///
- /// 0x01 for table version 1.0.
- ///
- UINT8 MajorVersion;
- ///
- /// 0x20 + RoutingTableEntries * 0x10.
- ///
- UINT16 TableSize;
- ///
- /// PCI interrupt router bus.
- ///
- UINT8 Bus;
- ///
- /// PCI interrupt router device/function.
- ///
- UINT8 DevFun;
- ///
- /// If nonzero, bit map of IRQs reserved for PCI.
- ///
- UINT16 PciOnlyIrq;
- ///
- /// Vendor ID of a compatible PCI interrupt router.
- ///
- UINT16 CompatibleVid;
- ///
- /// Device ID of a compatible PCI interrupt router.
- ///
- UINT16 CompatibleDid;
- ///
- /// If nonzero, a value passed directly to the IRQ miniport's Initialize function.
- ///
- UINT32 Miniport;
- ///
- /// Reserved for future usage.
- ///
- UINT8 Reserved[11];
- ///
- /// This byte plus the sum of all other bytes in the LocalPirqTable equal 0x00.
- ///
- UINT8 Checksum;
-} EFI_LEGACY_PIRQ_TABLE_HEADER;
-
-typedef struct {
- ///
- /// If nonzero, a value assigned by the IBV.
- ///
- UINT8 Pirq;
- ///
- /// If nonzero, the IRQs that can be assigned to this device.
- ///
- UINT16 IrqMask;
-} EFI_LEGACY_PIRQ_ENTRY;
-
-typedef struct {
- ///
- /// PCI bus of the entry.
- ///
- UINT8 Bus;
- ///
- /// PCI device of this entry.
- ///
- UINT8 Device;
- ///
- /// An IBV value and IRQ mask for PIRQ pins A through D.
- ///
- EFI_LEGACY_PIRQ_ENTRY PirqEntry[4];
- ///
- /// If nonzero, the slot number assigned by the board manufacturer.
- ///
- UINT8 Slot;
- ///
- /// Reserved for future use.
- ///
- UINT8 Reserved;
-} EFI_LEGACY_IRQ_ROUTING_ENTRY;
-
-#pragma pack()
-
-/**
- Finds the binary data or other platform information.
-
- @param This The protocol instance pointer.
- @param Mode Specifies what data to return. See See EFI_GET_PLATFORM_INFO_MODE enum.
- @param Table Mode specific. See EFI_GET_PLATFORM_INFO_MODE enum.
- @param TableSize Mode specific. See EFI_GET_PLATFORM_INFO_MODE enum.
- @param Location Mode specific. See EFI_GET_PLATFORM_INFO_MODE enum.
- @param Alignment Mode specific. See EFI_GET_PLATFORM_INFO_MODE enum.
- @param LegacySegment Mode specific. See EFI_GET_PLATFORM_INFO_MODE enum.
- @param LegacyOffset Mode specific. See EFI_GET_PLATFORM_INFO_MODE enum.
-
- @retval EFI_SUCCESS Data returned successfully.
- @retval EFI_UNSUPPORTED Mode is not supported on the platform.
- @retval EFI_NOT_FOUND Binary image or table not found.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_LEGACY_BIOS_PLATFORM_GET_PLATFORM_INFO)(
- IN EFI_LEGACY_BIOS_PLATFORM_PROTOCOL *This,
- IN EFI_GET_PLATFORM_INFO_MODE Mode,
- OUT VOID **Table,
- OUT UINTN *TableSize,
- OUT UINTN *Location,
- OUT UINTN *Alignment,
- IN UINT16 LegacySegment,
- IN UINT16 LegacyOffset
- );
-
-/**
- Returns a buffer of handles for the requested subfunction.
-
- @param This The protocol instance pointer.
- @param Mode Specifies what handle to return. See EFI_GET_PLATFORM_HANDLE_MODE enum.
- @param Type Mode specific. See EFI_GET_PLATFORM_HANDLE_MODE enum.
- @param HandleBuffer Mode specific. See EFI_GET_PLATFORM_HANDLE_MODE enum.
- @param HandleCount Mode specific. See EFI_GET_PLATFORM_HANDLE_MODE enum.
- @param AdditionalData Mode specific. See EFI_GET_PLATFORM_HANDLE_MODE enum.
-
- @retval EFI_SUCCESS Handle is valid.
- @retval EFI_UNSUPPORTED Mode is not supported on the platform.
- @retval EFI_NOT_FOUND Handle is not known.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_LEGACY_BIOS_PLATFORM_GET_PLATFORM_HANDLE)(
- IN EFI_LEGACY_BIOS_PLATFORM_PROTOCOL *This,
- IN EFI_GET_PLATFORM_HANDLE_MODE Mode,
- IN UINT16 Type,
- OUT EFI_HANDLE **HandleBuffer,
- OUT UINTN *HandleCount,
- IN VOID **AdditionalData OPTIONAL
- );
-
-/**
- Load and initialize the Legacy BIOS SMM handler.
-
- @param This The protocol instance pointer.
- @param EfiToLegacy16BootTable A pointer to Legacy16 boot table.
-
- @retval EFI_SUCCESS SMM code loaded.
- @retval EFI_DEVICE_ERROR SMM code failed to load
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_LEGACY_BIOS_PLATFORM_SMM_INIT)(
- IN EFI_LEGACY_BIOS_PLATFORM_PROTOCOL *This,
- IN VOID *EfiToLegacy16BootTable
- );
-
-/**
- Allows platform to perform any required action after a LegacyBios operation.
- Invokes the specific sub function specified by Mode.
-
- @param This The protocol instance pointer.
- @param Mode Specifies what handle to return. See EFI_GET_PLATFORM_HOOK_MODE enum.
- @param Type Mode specific. See EFI_GET_PLATFORM_HOOK_MODE enum.
- @param DeviceHandle Mode specific. See EFI_GET_PLATFORM_HOOK_MODE enum.
- @param ShadowAddress Mode specific. See EFI_GET_PLATFORM_HOOK_MODE enum.
- @param Compatibility16Table Mode specific. See EFI_GET_PLATFORM_HOOK_MODE enum.
- @param AdditionalData Mode specific. See EFI_GET_PLATFORM_HOOK_MODE enum.
-
- @retval EFI_SUCCESS The operation performed successfully. Mode specific.
- @retval EFI_UNSUPPORTED Mode is not supported on the platform.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_LEGACY_BIOS_PLATFORM_HOOKS)(
- IN EFI_LEGACY_BIOS_PLATFORM_PROTOCOL *This,
- IN EFI_GET_PLATFORM_HOOK_MODE Mode,
- IN UINT16 Type,
- IN EFI_HANDLE DeviceHandle OPTIONAL,
- IN OUT UINTN *ShadowAddress OPTIONAL,
- IN EFI_COMPATIBILITY16_TABLE *Compatibility16Table OPTIONAL,
- OUT VOID **AdditionalData OPTIONAL
- );
-
-/**
- Returns information associated with PCI IRQ routing.
- This function returns the following information associated with PCI IRQ routing:
- * An IRQ routing table and number of entries in the table.
- * The $PIR table and its size.
- * A list of PCI IRQs and the priority order to assign them.
-
- @param This The protocol instance pointer.
- @param RoutingTable The pointer to PCI IRQ Routing table.
- This location is the $PIR table minus the header.
- @param RoutingTableEntries The number of entries in table.
- @param LocalPirqTable $PIR table.
- @param PirqTableSize $PIR table size.
- @param LocalIrqPriorityTable A list of interrupts in priority order to assign.
- @param IrqPriorityTableEntries The number of entries in the priority table.
-
- @retval EFI_SUCCESS Data was successfully returned.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_LEGACY_BIOS_PLATFORM_GET_ROUTING_TABLE)(
- IN EFI_LEGACY_BIOS_PLATFORM_PROTOCOL *This,
- OUT VOID **RoutingTable,
- OUT UINTN *RoutingTableEntries,
- OUT VOID **LocalPirqTable OPTIONAL,
- OUT UINTN *PirqTableSize OPTIONAL,
- OUT VOID **LocalIrqPriorityTable OPTIONAL,
- OUT UINTN *IrqPriorityTableEntries OPTIONAL
- );
-
-/**
- Translates the given PIRQ accounting for bridge.
- This function translates the given PIRQ back through all buses, if required,
- and returns the true PIRQ and associated IRQ.
-
- @param This The protocol instance pointer.
- @param PciBus The PCI bus number for this device.
- @param PciDevice The PCI device number for this device.
- @param PciFunction The PCI function number for this device.
- @param Pirq Input is PIRQ reported by device, and output is true PIRQ.
- @param PciIrq The IRQ already assigned to the PIRQ, or the IRQ to be
- assigned to the PIRQ.
-
- @retval EFI_SUCCESS The PIRQ was translated.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_LEGACY_BIOS_PLATFORM_TRANSLATE_PIRQ)(
- IN EFI_LEGACY_BIOS_PLATFORM_PROTOCOL *This,
- IN UINTN PciBus,
- IN UINTN PciDevice,
- IN UINTN PciFunction,
- IN OUT UINT8 *Pirq,
- OUT UINT8 *PciIrq
- );
-
-/**
- Attempt to legacy boot the BootOption. If the EFI contexted has been
- compromised this function will not return.
-
- @param This The protocol instance pointer.
- @param BbsDevicePath The EFI Device Path from BootXXXX variable.
- @param BbsTable The Internal BBS table.
- @param LoadOptionSize The size of LoadOption in size.
- @param LoadOption The LoadOption from BootXXXX variable
- @param EfiToLegacy16BootTable A pointer to BootTable structure
-
- @retval EFI_SUCCESS Ready to boot.
-
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_LEGACY_BIOS_PLATFORM_PREPARE_TO_BOOT)(
- IN EFI_LEGACY_BIOS_PLATFORM_PROTOCOL *This,
- IN BBS_BBS_DEVICE_PATH *BbsDevicePath,
- IN VOID *BbsTable,
- IN UINT32 LoadOptionsSize,
- IN VOID *LoadOptions,
- IN VOID *EfiToLegacy16BootTable
- );
-
-/**
- This protocol abstracts the platform portion of the traditional BIOS.
-**/
-struct _EFI_LEGACY_BIOS_PLATFORM_PROTOCOL {
- ///
- /// Gets binary data or other platform information.
- ///
- EFI_LEGACY_BIOS_PLATFORM_GET_PLATFORM_INFO GetPlatformInfo;
- ///
- /// Returns a buffer of all handles matching the requested subfunction.
- ///
- EFI_LEGACY_BIOS_PLATFORM_GET_PLATFORM_HANDLE GetPlatformHandle;
- ///
- /// Loads and initializes the traditional BIOS SMM handler.
- EFI_LEGACY_BIOS_PLATFORM_SMM_INIT SmmInit;
- ///
- /// Allows platform to perform any required actions after a LegacyBios operation.
- ///
- EFI_LEGACY_BIOS_PLATFORM_HOOKS PlatformHooks;
- ///
- /// Gets $PIR table.
- EFI_LEGACY_BIOS_PLATFORM_GET_ROUTING_TABLE GetRoutingTable;
- ///
- /// Translates the given PIRQ to the final value after traversing any PCI bridges.
- ///
- EFI_LEGACY_BIOS_PLATFORM_TRANSLATE_PIRQ TranslatePirq;
- ///
- /// Final platform function before the system attempts to boot to a traditional OS.
- ///
- EFI_LEGACY_BIOS_PLATFORM_PREPARE_TO_BOOT PrepareToBoot;
-};
-
-extern EFI_GUID gEfiLegacyBiosPlatformProtocolGuid;
-
-#endif
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#111094): https://edk2.groups.io/g/devel/message/111094
Mute This Topic: https://groups.io/mt/102518663/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/leave/12367111/7686176/1913456212/xyzzy [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
next prev parent reply other threads:[~2023-11-10 23:59 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-10 23:57 [edk2-devel] [PATCH 00/37] OvmfPkg: remove the CSM (after edk2-stable202311) Laszlo Ersek
2023-11-10 23:57 ` [edk2-devel] [PATCH 01/37] OvmfPkg: cripple CSM_ENABLE macro Laszlo Ersek
2023-11-10 23:57 ` [edk2-devel] [PATCH 02/37] OvmfPkg: remove PcdCsmEnable Laszlo Ersek
2023-11-10 23:57 ` [edk2-devel] [PATCH 03/37] OvmfPkg: unplug LegacyBootManagerLib from BdsDxe and UiApp Laszlo Ersek
2023-11-10 23:57 ` [edk2-devel] [PATCH 04/37] OvmfPkg: remove LegacyBootManagerLib Laszlo Ersek
2023-11-10 23:57 ` [edk2-devel] [PATCH 05/37] OvmfPkg: unplug LegacyBootMaintUiLib from UiApp Laszlo Ersek
2023-11-10 23:57 ` [edk2-devel] [PATCH 06/37] OvmfPkg: remove LegacyBootMaintUiLib Laszlo Ersek
2023-11-10 23:57 ` [edk2-devel] [PATCH 07/37] OvmfPkg: remove gEfiLegacyDevOrderVariableGuid Laszlo Ersek
2023-11-10 23:57 ` [edk2-devel] [PATCH 08/37] OvmfPkg: exclude the CSM-based VideoDxe driver Laszlo Ersek
2023-11-10 23:57 ` [edk2-devel] [PATCH 09/37] OvmfPkg: remove Csm/BiosThunk/VideoDxe Laszlo Ersek
2023-11-10 23:57 ` [edk2-devel] [PATCH 10/37] OvmfPkg: remove gEfiVgaMiniPortProtocolGuid Laszlo Ersek
2023-11-10 23:57 ` [edk2-devel] [PATCH 11/37] OvmfPkg: remove Bios Video PCDs Laszlo Ersek
2023-11-10 23:57 ` [edk2-devel] [PATCH 12/37] OvmfPkg: exclude LegacyBiosDxe Laszlo Ersek
2023-11-10 23:57 ` [edk2-devel] [PATCH 13/37] OvmfPkg/IncompatiblePciDeviceSupportDxe: ignore CSM presence Laszlo Ersek
2023-11-10 23:57 ` [edk2-devel] [PATCH 14/37] Revert "OvmfPkg: don't assign PCI BARs above 4GiB when CSM enabled" Laszlo Ersek
2023-11-10 23:57 ` [edk2-devel] [PATCH 15/37] OvmfPkg: remove LegacyBiosDxe Laszlo Ersek
2023-11-10 23:57 ` [edk2-devel] [PATCH 16/37] OvmfPkg: exclude NullMemoryTestDxe driver Laszlo Ersek
2024-04-24 11:02 ` Corvin Köhne
2023-11-10 23:58 ` [edk2-devel] [PATCH 17/37] OvmfPkg: remove gEfiIsaIoProtocolGuid Laszlo Ersek
2023-11-10 23:58 ` [edk2-devel] [PATCH 18/37] OvmfPkg: remove gEfiIsaAcpiProtocolGuid Laszlo Ersek
2023-11-10 23:58 ` [edk2-devel] [PATCH 19/37] OvmfPkg: remove gEfiLegacyBiosGuid Laszlo Ersek
2023-11-10 23:58 ` [edk2-devel] [PATCH 20/37] OvmfPkg: remove LegacyBiosDxe PCDs Laszlo Ersek
2023-11-10 23:58 ` [edk2-devel] [PATCH 21/37] OvmfPkg: unplug CsmSupportLib from BdsDxe Laszlo Ersek
2023-11-10 23:58 ` [edk2-devel] [PATCH 22/37] OvmfPkg: remove CsmSupportLib Laszlo Ersek
2023-11-10 23:58 ` [edk2-devel] [PATCH 23/37] OvmfPkg: remove gEfiFirmwareVolumeProtocolGuid Laszlo Ersek
2023-11-10 23:58 ` Laszlo Ersek [this message]
2023-11-10 23:58 ` [edk2-devel] [PATCH 25/37] OvmfPkg: remove gEfiLegacyBiosProtocolGuid Laszlo Ersek
2023-11-10 23:58 ` [edk2-devel] [PATCH 26/37] OvmfPkg: remove gEfiLegacyInterruptProtocolGuid Laszlo Ersek
2023-11-10 23:58 ` [edk2-devel] [PATCH 27/37] OvmfPkg: remove <FrameworkDxe.h> Laszlo Ersek
2023-11-10 23:58 ` [edk2-devel] [PATCH 28/37] OvmfPkg: exclude Csm16.inf / Csm16.bin Laszlo Ersek
2023-11-10 23:58 ` [edk2-devel] [PATCH 29/37] OvmfPkg: remove Rule.Common.USER_DEFINED.CSM from all FDF files Laszlo Ersek
2023-11-10 23:58 ` [edk2-devel] [PATCH 30/37] OvmfPkg: remove Csm16 Laszlo Ersek
2023-11-10 23:58 ` [edk2-devel] [PATCH 31/37] OvmfPkg: exclude 8254TimerDxe Laszlo Ersek
2023-11-10 23:58 ` [edk2-devel] [PATCH 32/37] OvmfPkg: remove 8254TimerDxe Laszlo Ersek
2023-11-10 23:58 ` [edk2-devel] [PATCH 33/37] OvmfPkg: exclude 8259InterruptControllerDxe Laszlo Ersek
2023-11-10 23:58 ` [edk2-devel] [PATCH 34/37] OvmfPkg: remove 8259InterruptControllerDxe Laszlo Ersek
2023-11-10 23:58 ` [edk2-devel] [PATCH 35/37] OvmfPkg: remove gEfiLegacy8259ProtocolGuid Laszlo Ersek
2023-11-10 23:58 ` [edk2-devel] [PATCH 36/37] OvmfPkg: remove Pcd8259LegacyModeEdgeLevel and Pcd8259LegacyModeMask Laszlo Ersek
2023-11-10 23:58 ` [edk2-devel] [PATCH 37/37] OvmfPkg: remove CSM_ENABLE build macro Laszlo Ersek
2023-11-11 2:12 ` [edk2-devel] [PATCH 00/37] OvmfPkg: remove the CSM (after edk2-stable202311) Yao, Jiewen
2023-11-11 10:54 ` Ard Biesheuvel
2023-11-13 7:52 ` Corvin Köhne
2023-11-13 10:44 ` Gerd Hoffmann
2023-12-07 18:10 ` Laszlo Ersek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231110235820.644381-25-lersek@redhat.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox