diff --git a/IntelFrameworkPkg/Include/Protocol/LegacyBiosPlatform.h b/IntelFrameworkPkg/Include/Protocol/LegacyBiosPlatform.h index 005d327f58..4b39f85280 100644 --- a/IntelFrameworkPkg/Include/Protocol/LegacyBiosPlatform.h +++ b/IntelFrameworkPkg/Include/Protocol/LegacyBiosPlatform.h @@ -34,376 +34,376 @@ typedef struct _EFI_LEGACY_BIOS_PLATFORM_PROTOCOL EFI_LEGACY_BIOS_PLATFORM_PROTOCOL; /** - This enum specifies the Mode param values for GetPlatformInfo() + 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 and 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 fix ups 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 where EfiCompatibility code will place the MP table. - /// - /// LegacyOffset Offset where 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. - /// + /// + /// 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 and 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 fix ups 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 where EfiCompatibility code will place the MP table. + /// + /// LegacyOffset Offset where 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 contents 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 and 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 fix ups 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 where EfiCompatibility code will place the table or data. - /// - /// LegacyOffset Offset where 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. - /// + /// + /// This mode returns a block of data. The contents 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 and 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 fix ups 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 where EfiCompatibility code will place the table or data. + /// + /// LegacyOffset Offset where 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 contents 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. - /// An example usage might be 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 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 where EfiCompatibility code will place the table or data. - /// - /// LegacyOffset Offset where 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. - /// + /// + /// This mode returns a block of data. The contents 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. + /// An example usage might be 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 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 where EfiCompatibility code will place the table or data. + /// + /// LegacyOffset Offset where 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 contents and usage is 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. - /// An example usage might be 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 – 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 where EfiCompatibility code will place the table or data. - /// - /// LegacyOffset Offset where 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 where EfiCompatibility code will place the table or data. - /// - /// LegacyOffset Offset where 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. - /// +/// +/// This mode returns a block of data. The contents and usage is 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. +/// An example usage might be 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 – 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 where EfiCompatibility code will place the table or data. +/// +/// LegacyOffset Offset where 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 where EfiCompatibility code will place the table or data. + /// + /// LegacyOffset Offset where 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. - /// + /// + /// 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. - /// + /// + /// 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() + 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 - /// + /// + /// 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. - /// + /// + /// 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 - /// + /// + /// 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 - /// + /// + /// 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 + 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 - /// + /// + /// 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 Compatability16 Table. - /// - /// AdditionalData NULL - /// + /// + /// 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 Compatability16 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 - /// + /// + /// 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; @@ -429,21 +429,21 @@ typedef enum { // // typedef struct { - /// - /// IRQ for this entry. - /// + /// + /// 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; + /// + /// 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; // @@ -452,95 +452,95 @@ typedef struct { #define EFI_LEGACY_PIRQ_TABLE_SIGNATURE SIGNATURE_32 ('$', 'P', 'I', 'R') typedef struct { - /// - /// $PIR. - /// + /// + /// $PIR. + /// UINT32 Signature; - /// - /// 0x00. - /// + /// + /// 0x00. + /// UINT8 MinorVersion; - /// - /// 0x01 for table version 1.0. - /// + /// + /// 0x01 for table version 1.0. + /// UINT8 MajorVersion; - /// - /// 0x20 + RoutingTableEntries * 0x10. - /// + /// + /// 0x20 + RoutingTableEntries * 0x10. + /// UINT16 TableSize; - /// - /// PCI interrupt router bus. - /// + /// + /// PCI interrupt router bus. + /// UINT8 Bus; - /// - /// PCI interrupt router device/function. - /// + /// + /// PCI interrupt router device/function. + /// UINT8 DevFun; - /// - /// If nonzero, bit map of IRQs reserved for PCI. - /// + /// + /// If nonzero, bit map of IRQs reserved for PCI. + /// UINT16 PciOnlyIrq; - /// - /// Vendor ID of a compatible PCI interrupt router. - /// + /// + /// Vendor ID of a compatible PCI interrupt router. + /// UINT16 CompatibleVid; - /// - /// Device ID of a compatible PCI interrupt router. - /// + /// + /// Device ID of a compatible PCI interrupt router. + /// UINT16 CompatibleDid; - /// - /// If nonzero, a value passed directly to the IRQ miniport’s Initialize function. + /// + /// If nonzero, a value passed directly to the IRQ miniport’s Initialize function. /// UINT32 Miniport; - /// - /// Reserved for future usage. - /// + /// + /// Reserved for future usage. + /// UINT8 Reserved[11]; - /// - /// This byte plus the sum of all other bytes in the LocalPirqTable equal 0x00. - /// + /// + /// This byte plus the sum of all other bytes in the LocalPirqTable equal 0x00. + /// UINT8 Checksum; } EFI_LEGACY_PIRQ_TABLE_HEADER; typedef struct { - /// - /// IRQ for this entry. - /// + /// + /// IRQ for this entry. + /// UINT8 Pirq; - /// - /// 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. - /// - UINT16 IrqMask; + /// + /// 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. + /// +UINT16 IrqMask; } EFI_LEGACY_PIRQ_ENTRY; typedef struct { - /// - /// PCI bus of the entry. - /// + /// + /// PCI bus of the entry. + /// UINT8 Bus; - /// - /// PCI device of this entry. - /// + /// + /// PCI device of this entry. + /// UINT8 Device; - /// - /// An IBV value and IRQ mask for PIRQ pins A through D. - /// + /// + /// 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. - /// + /// + /// If nonzero, the slot number assigned by the board manufacturer. + /// UINT8 Slot; - /// - /// Reserved for future use. - /// + /// + /// Reserved for future use. + /// UINT8 Reserved; } EFI_LEGACY_IRQ_ROUTING_ENTRY; @@ -580,9 +580,9 @@ EFI_STATUS /** Returns a buffer of handles for the requested subfunction. - @param This Protocol instance pointer. + @param This 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 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. @@ -622,7 +622,7 @@ EFI_STATUS /** Allows platform to perform any required action after a LegacyBios operation. - Invokes the specific sub function specified by Mode. + Invokes the specific sub function specified by Mode. @param This Protocol instance pointer. @param Mode Specifies what handle to return. See EFI_GET_PLATFORM_HOOK_MODE enum. @@ -650,14 +650,14 @@ EFI_STATUS /** 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 + 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 Protocol instance pointer. @param RoutingTable Pointer to PCI IRQ Routing table. - This location is the $PIR table minus the header. + This location is the $PIR table minus the header. @param RoutingTableEntries Number of entries in table. @param LocalPirqTable $PIR table @param PirqTableSize $PIR table size @@ -681,8 +681,8 @@ EFI_STATUS /** 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. + This function translates the given PIRQ back through all buses, if required, + and returns the true PIRQ and associated IRQ. @param This Protocol instance pointer. @param PciBus PCI bus number for this device. @@ -735,32 +735,32 @@ EFI_STATUS 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. - /// + /// + /// 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; + /// + /// 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; diff --git a/IntelFrameworkPkg/Include/Protocol/PciPlatform.h b/IntelFrameworkPkg/Include/Protocol/PciPlatform.h index d9c198cc0c..080952dc57 100644 --- a/IntelFrameworkPkg/Include/Protocol/PciPlatform.h +++ b/IntelFrameworkPkg/Include/Protocol/PciPlatform.h @@ -98,8 +98,8 @@ typedef enum { typedef EFI_STATUS (EFIAPI *EFI_PCI_PLATFORM_PHASE_NOTIFY)( - IN EFI_PCI_PLATFORM_PROTOCOL *This, - IN EFI_HANDLE HostBridge, + IN EFI_PCI_PLATFORM_PROTOCOL *This, + IN EFI_HANDLE HostBridge, IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PHASE Phase, IN EFI_PCI_CHIPSET_EXECUTION_PHASE ChipsetPhase ); @@ -209,23 +209,23 @@ EFI_STATUS /// the unique features of a platform. /// struct _EFI_PCI_PLATFORM_PROTOCOL { - /// - /// The notification from the PCI bus enumerator to the platform that it is about to - /// enter a certain phase during the enumeration process. - /// + /// + /// The notification from the PCI bus enumerator to the platform that it is about to + /// enter a certain phase during the enumeration process. + /// EFI_PCI_PLATFORM_PHASE_NOTIFY PlatformNotify; - /// - /// The notification from the PCI bus enumerator to the platform for each PCI - /// controller at several predefined points during PCI controller initialization. - /// + /// + /// The notification from the PCI bus enumerator to the platform for each PCI + /// controller at several predefined points during PCI controller initialization. + /// EFI_PCI_PLATFORM_PREPROCESS_CONTROLLER PlatformPrepController; - /// - /// Retrieves the platform policy regarding enumeration. - /// + /// + /// Retrieves the platform policy regarding enumeration. + /// EFI_PCI_PLATFORM_GET_PLATFORM_POLICY GetPlatformPolicy; - /// - /// Gets the PCI device’s option ROM from a platform-specific location. - /// + /// + /// Gets the PCI device’s option ROM from a platform-specific location. + /// EFI_PCI_PLATFORM_GET_PCI_ROM GetPciRom; }; diff --git a/IntelFrameworkPkg/Include/Protocol/SmmControl.h b/IntelFrameworkPkg/Include/Protocol/SmmControl.h index 725614a34f..1097179b4d 100644 --- a/IntelFrameworkPkg/Include/Protocol/SmmControl.h +++ b/IntelFrameworkPkg/Include/Protocol/SmmControl.h @@ -41,15 +41,15 @@ typedef struct _EFI_SMM_CONTROL_PROTOCOL EFI_SMM_CONTROL_PROTOCOL; // SMM Access specification Data Structures // typedef struct { - /// - /// Describes the I/O location of the particular port that engendered the synchronous - /// SMI. For example, this location can include but is not limited to the traditional - /// PCAT* APM port of 0B2h. - /// + /// + /// Describes the I/O location of the particular port that engendered the synchronous + /// SMI. For example, this location can include but is not limited to the traditional + /// PCAT* APM port of 0B2h. + /// UINT8 SmiTriggerRegister; - /// - /// Describes the value that was written to the respective activation port. - /// + /// + /// Describes the value that was written to the respective activation port. + /// UINT8 SmiDataRegister; } EFI_SMM_CONTROL_REGISTER; @@ -108,8 +108,8 @@ EFI_STATUS @param SmiRegister Pointer to the SMI register description structure @retval EFI_SUCCESS The register structure has been returned. - @retval EFI_DEVICE_ERROR The source could not be cleared. - @retval EFI_INVALID_PARAMETER The service did not support the Periodic input argument. + @retval EFI_DEVICE_ERROR The source could not be cleared. + @retval EFI_INVALID_PARAMETER The service did not support the Periodic input argument. **/ typedef @@ -135,20 +135,20 @@ EFI_STATUS @param MinimumTriggerPeriod Minimum interval at which the platform can set the period. - @retval EFI_SUCCESS The register structure has been returned. + @retval EFI_SUCCESS The register structure has been returned. **/ // // SMM Control Protocol // /** - This protocol is used initiate SMI/PMI activations. - This protocol could be published by either of the following: - - A processor driver to abstract the SMI/PMI IPI - - The driver that abstracts the ASIC that is supporting the APM port, such as the ICH in an Intel® chipset - Because of the possibility of performing SMI or PMI IPI transactions, the ability to generate this + This protocol is used initiate SMI/PMI activations. + This protocol could be published by either of the following: + - A processor driver to abstract the SMI/PMI IPI + - The driver that abstracts the ASIC that is supporting the APM port, such as the ICH in an Intel® chipset + Because of the possibility of performing SMI or PMI IPI transactions, the ability to generate this - The EFI_SMM_CONTROL_PROTOCOL is used by the platform chipset or processor driver. This + The EFI_SMM_CONTROL_PROTOCOL is used by the platform chipset or processor driver. This protocol is useable both in boot services and runtime. The runtime aspect is so that an implementation of EFI_SMM_BASE_PROTOCOL.Communicate() can layer upon this service and provide an SMI callback from a general EFI runtime driver. @@ -156,24 +156,24 @@ EFI_STATUS SMI or PMI. There are often I/O ports that, when accessed, will engender the **/ struct _EFI_SMM_CONTROL_PROTOCOL { - /// - /// Initiates the SMI/PMI activation. - /// + /// + /// Initiates the SMI/PMI activation. + /// EFI_SMM_ACTIVATE Trigger; - /// - /// Quiesces the SMI/PMI activation. - /// + /// + /// Quiesces the SMI/PMI activation. + /// EFI_SMM_DEACTIVATE Clear; - /// - /// Provides data on the register used as the source of the SMI. - /// + /// + /// Provides data on the register used as the source of the SMI. + /// EFI_SMM_GET_REGISTER_INFO GetRegisterInfo; - /// - /// Minimum interval at which the platform can set the period. A maximum is not - /// specified in that the SMM infrastructure code can emulate a maximum interval that is - /// greater than the hardware capabilities by using software emulation in the SMM - /// infrastructure code. - /// + /// + /// Minimum interval at which the platform can set the period. A maximum is not + /// specified in that the SMM infrastructure code can emulate a maximum interval that is + /// greater than the hardware capabilities by using software emulation in the SMM + /// infrastructure code. + /// UINTN MinimumTriggerPeriod; }; diff --git a/IntelFrameworkPkg/Include/Protocol/SmmStandbyButtonDispatch.h b/IntelFrameworkPkg/Include/Protocol/SmmStandbyButtonDispatch.h index 78c6ff844f..ae2ed464eb 100644 --- a/IntelFrameworkPkg/Include/Protocol/SmmStandbyButtonDispatch.h +++ b/IntelFrameworkPkg/Include/Protocol/SmmStandbyButtonDispatch.h @@ -131,17 +131,17 @@ EFI_STATUS // Interface structure for the SMM Standby Button SMI Dispatch Protocol // /** - This protocol provices the parent dispatch service for the standby button SMI source generator. - Provides the ability to install child handlers for the given event types. + This protocol provices the parent dispatch service for the standby button SMI source generator. + Provides the ability to install child handlers for the given event types. **/ struct _EFI_SMM_STANDBY_BUTTON_DISPATCH_PROTOCOL { - /// + /// /// Installs a child service to be dispatched by this protocol. /// EFI_SMM_STANDBY_BUTTON_REGISTER Register;\ - /// - /// Removes a child service dispatched by this protocol. - /// + /// + /// Removes a child service dispatched by this protocol. + /// EFI_SMM_STANDBY_BUTTON_UNREGISTER UnRegister; };