From e5d8bd476c1e8dfaa95f2b0c1cdda144e3b985d8 Mon Sep 17 00:00:00 2001 From: Sami Mujawar Date: Wed, 6 Mar 2024 10:08:09 +0000 Subject: [PATCH] DynamicTablesPkg: Move Serial Port Info Objects to Arch Common Move Serial port info objects like the generic serial port info, Serial console port info and Serial debug port info from Arm Namespace to the Arch Common namespace. i.e. EArmObjSerialPortInfo -> EArchCommonObjSerialPortInfo EArmObjConsolePortInfo -> EArchCommonObjConsolePortInfo EArmObjSerialDebugPortInfo -> EArchCommonObjSerialDebugPortInfo CM_ARM_SERIAL_PORT_INFO -> CM_ARCH_COMMON_SERIAL_PORT_INFO Correspondingly also update the following modules to reflect the changes introduced by the move: - DBG2 Generator - SPCR Generator - SSDT Serial Port Fixup Lib - SSDT Serial Port Generator - FdtHwInfoParserLib/ArmSerialPortParser - ConfigurationManagerObjectParser - Dynamic Plat Repo TokenFixer map. Cc: Pierre Gondois Cc: Yeo Reum Yun Cc: AbdulLateef Attar Cc: Jeshua Smith Cc: Jeff Brasen Cc: Girish Mahadevan Cc: Leif Lindholm Cc: Meenakshi Aggarwal Signed-off-by: Sami Mujawar Reviewed-by: Sunil V L --- .../Include/ArchCommonNameSpaceObjects.h | 35 ++++++ .../Include/ArmNameSpaceObjects.h | 112 ++++++------------ .../Include/Library/SsdtSerialPortFixupLib.h | 16 +-- .../Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c | 20 ++-- .../Acpi/Arm/AcpiSpcrLibArm/SpcrGenerator.c | 18 +-- .../SsdtSerialPortGenerator.c | 24 ++-- .../DynamicPlatRepoLib/CmObjectTokenFixer.c | 79 ++++++------ .../SsdtSerialPortFixupLib.c | 46 +++---- .../ConfigurationManagerObjectParser.c | 12 +- .../Serial/ArmSerialPortParser.c | 79 ++++++------ .../Serial/ArmSerialPortParser.h | 8 +- DynamicTablesPkg/Readme.md | 82 ++++++------- 12 files changed, 264 insertions(+), 267 deletions(-) diff --git a/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h b/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h index bbf3cd1e2e..4eabb4d38b 100644 --- a/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h +++ b/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h @@ -22,6 +22,9 @@ typedef enum ArchCommonObjectID { EArchCommonObjReserved, ///< 0 - Reserved EArchCommonObjPowerManagementProfileInfo, ///< 1 - Power Management Profile Info + EArchCommonObjSerialPortInfo, ///< 2 - Generic Serial Port Info + EArchCommonObjConsolePortInfo, ///< 3 - Serial Console Port Info + EArchCommonObjSerialDebugPortInfo, ///< 4 - Serial Debug Port Info EArchCommonObjMax } EARCH_COMMON_OBJECT_ID; @@ -39,6 +42,38 @@ typedef struct CmArchCommonPowerManagementProfileInfo { UINT8 PowerManagementProfile; } CM_ARCH_COMMON_POWER_MANAGEMENT_PROFILE_INFO; +/** A structure that describes the + Serial Port information for the Platform. + + ID: EArchCommonObjConsolePortInfo or + EArchCommonObjSerialDebugPortInfo or + EArchCommonObjSerialPortInfo +*/ +typedef struct EArchCommonSerialPortInfo { + /// The physical base address for the serial port + UINT64 BaseAddress; + + /** The serial port interrupt. + 0 indicates that the serial port does not + have an interrupt wired. + */ + UINT32 Interrupt; + + /// The serial port baud rate + UINT64 BaudRate; + + /// The serial port clock + UINT32 Clock; + + /// Serial Port subtype + UINT16 PortSubtype; + + /// The Base address length + UINT64 BaseAddressLength; + + /// The access size + UINT8 AccessSize; +} CM_ARCH_COMMON_SERIAL_PORT_INFO; #pragma pack() diff --git a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h index 3d9a151846..4878eb60e3 100644 --- a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h +++ b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h @@ -35,47 +35,44 @@ typedef enum ArmObjectID { EArmObjGicMsiFrameInfo, ///< 4 - GIC MSI Frame Info EArmObjGicRedistributorInfo, ///< 5 - GIC Redistributor Info EArmObjGicItsInfo, ///< 6 - GIC ITS Info - EArmObjSerialConsolePortInfo, ///< 7 - Serial Console Port Info - EArmObjSerialDebugPortInfo, ///< 8 - Serial Debug Port Info - EArmObjGenericTimerInfo, ///< 9 - Generic Timer Info - EArmObjPlatformGTBlockInfo, ///< 10 - Platform GT Block Info - EArmObjGTBlockTimerFrameInfo, ///< 11 - Generic Timer Block Frame Info - EArmObjPlatformGenericWatchdogInfo, ///< 12 - Platform Generic Watchdog - EArmObjPciConfigSpaceInfo, ///< 13 - PCI Configuration Space Info - EArmObjHypervisorVendorIdentity, ///< 14 - Hypervisor Vendor Id - EArmObjFixedFeatureFlags, ///< 15 - Fixed feature flags for FADT - EArmObjItsGroup, ///< 16 - ITS Group - EArmObjNamedComponent, ///< 17 - Named Component - EArmObjRootComplex, ///< 18 - Root Complex - EArmObjSmmuV1SmmuV2, ///< 19 - SMMUv1 or SMMUv2 - EArmObjSmmuV3, ///< 20 - SMMUv3 - EArmObjPmcg, ///< 21 - PMCG - EArmObjGicItsIdentifierArray, ///< 22 - GIC ITS Identifier Array - EArmObjIdMappingArray, ///< 23 - ID Mapping Array - EArmObjSmmuInterruptArray, ///< 24 - SMMU Interrupt Array - EArmObjProcHierarchyInfo, ///< 25 - Processor Hierarchy Info - EArmObjCacheInfo, ///< 26 - Cache Info - EArmObjCmRef, ///< 27 - CM Object Reference - EArmObjMemoryAffinityInfo, ///< 28 - Memory Affinity Info - EArmObjDeviceHandleAcpi, ///< 29 - Device Handle Acpi - EArmObjDeviceHandlePci, ///< 30 - Device Handle Pci - EArmObjGenericInitiatorAffinityInfo, ///< 31 - Generic Initiator Affinity - EArmObjSerialPortInfo, ///< 32 - Generic Serial Port Info - EArmObjCmn600Info, ///< 33 - CMN-600 Info - EArmObjLpiInfo, ///< 34 - Lpi Info - EArmObjPciAddressMapInfo, ///< 35 - Pci Address Map Info - EArmObjPciInterruptMapInfo, ///< 36 - Pci Interrupt Map Info - EArmObjRmr, ///< 37 - Reserved Memory Range Node - EArmObjMemoryRangeDescriptor, ///< 38 - Memory Range Descriptor - EArmObjCpcInfo, ///< 39 - Continuous Performance Control Info - EArmObjPccSubspaceType0Info, ///< 40 - Pcc Subspace Type 0 Info - EArmObjPccSubspaceType1Info, ///< 41 - Pcc Subspace Type 2 Info - EArmObjPccSubspaceType2Info, ///< 42 - Pcc Subspace Type 2 Info - EArmObjPccSubspaceType3Info, ///< 43 - Pcc Subspace Type 3 Info - EArmObjPccSubspaceType4Info, ///< 44 - Pcc Subspace Type 4 Info - EArmObjPccSubspaceType5Info, ///< 45 - Pcc Subspace Type 5 Info - EArmObjEtInfo, ///< 46 - Embedded Trace Extension/Module Info - EArmObjPsdInfo, ///< 47 - P-State Dependency (PSD) Info + EArmObjGenericTimerInfo, ///< 7 - Generic Timer Info + EArmObjPlatformGTBlockInfo, ///< 8 - Platform GT Block Info + EArmObjGTBlockTimerFrameInfo, ///< 9 - Generic Timer Block Frame Info + EArmObjPlatformGenericWatchdogInfo, ///< 10 - Platform Generic Watchdog + EArmObjPciConfigSpaceInfo, ///< 11 - PCI Configuration Space Info + EArmObjHypervisorVendorIdentity, ///< 12 - Hypervisor Vendor Id + EArmObjFixedFeatureFlags, ///< 13 - Fixed feature flags for FADT + EArmObjItsGroup, ///< 14 - ITS Group + EArmObjNamedComponent, ///< 15 - Named Component + EArmObjRootComplex, ///< 16 - Root Complex + EArmObjSmmuV1SmmuV2, ///< 17 - SMMUv1 or SMMUv2 + EArmObjSmmuV3, ///< 18 - SMMUv3 + EArmObjPmcg, ///< 19 - PMCG + EArmObjGicItsIdentifierArray, ///< 20 - GIC ITS Identifier Array + EArmObjIdMappingArray, ///< 21 - ID Mapping Array + EArmObjSmmuInterruptArray, ///< 22 - SMMU Interrupt Array + EArmObjProcHierarchyInfo, ///< 23 - Processor Hierarchy Info + EArmObjCacheInfo, ///< 24 - Cache Info + EArmObjCmRef, ///< 25 - CM Object Reference + EArmObjMemoryAffinityInfo, ///< 26 - Memory Affinity Info + EArmObjDeviceHandleAcpi, ///< 27 - Device Handle Acpi + EArmObjDeviceHandlePci, ///< 28 - Device Handle Pci + EArmObjGenericInitiatorAffinityInfo, ///< 29 - Generic Initiator Affinity + EArmObjCmn600Info, ///< 30 - CMN-600 Info + EArmObjLpiInfo, ///< 31 - Lpi Info + EArmObjPciAddressMapInfo, ///< 32 - Pci Address Map Info + EArmObjPciInterruptMapInfo, ///< 33 - Pci Interrupt Map Info + EArmObjRmr, ///< 34 - Reserved Memory Range Node + EArmObjMemoryRangeDescriptor, ///< 35 - Memory Range Descriptor + EArmObjCpcInfo, ///< 36 - Continuous Performance Control Info + EArmObjPccSubspaceType0Info, ///< 37 - Pcc Subspace Type 0 Info + EArmObjPccSubspaceType1Info, ///< 38 - Pcc Subspace Type 2 Info + EArmObjPccSubspaceType2Info, ///< 39 - Pcc Subspace Type 2 Info + EArmObjPccSubspaceType3Info, ///< 40 - Pcc Subspace Type 3 Info + EArmObjPccSubspaceType4Info, ///< 41 - Pcc Subspace Type 4 Info + EArmObjPccSubspaceType5Info, ///< 42 - Pcc Subspace Type 5 Info + EArmObjEtInfo, ///< 43 - Embedded Trace Extension/Module Info + EArmObjPsdInfo, ///< 44 - P-State Dependency (PSD) Info EArmObjMax } EARM_OBJECT_ID; @@ -297,39 +294,6 @@ typedef struct CmArmGicItsInfo { UINT32 ProximityDomain; } CM_ARM_GIC_ITS_INFO; -/** A structure that describes the - Serial Port information for the Platform. - - ID: EArmObjSerialConsolePortInfo or - EArmObjSerialDebugPortInfo or - EArmObjSerialPortInfo -*/ -typedef struct CmArmSerialPortInfo { - /// The physical base address for the serial port - UINT64 BaseAddress; - - /** The serial port interrupt. - 0 indicates that the serial port does not - have an interrupt wired. - */ - UINT32 Interrupt; - - /// The serial port baud rate - UINT64 BaudRate; - - /// The serial port clock - UINT32 Clock; - - /// Serial Port subtype - UINT16 PortSubtype; - - /// The Base address length - UINT64 BaseAddressLength; - - /// The access size - UINT8 AccessSize; -} CM_ARM_SERIAL_PORT_INFO; - /** A structure that describes the Generic Timer information for the Platform. diff --git a/DynamicTablesPkg/Include/Library/SsdtSerialPortFixupLib.h b/DynamicTablesPkg/Include/Library/SsdtSerialPortFixupLib.h index 4835f314c4..ac7b39f552 100644 --- a/DynamicTablesPkg/Include/Library/SsdtSerialPortFixupLib.h +++ b/DynamicTablesPkg/Include/Library/SsdtSerialPortFixupLib.h @@ -29,11 +29,11 @@ EFI_STATUS EFIAPI BuildSsdtSerialPortTable ( - IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *AcpiTableInfo, - IN CONST CM_ARM_SERIAL_PORT_INFO *SerialPortInfo, - IN CONST CHAR8 *Name, - IN CONST UINT64 Uid, - OUT EFI_ACPI_DESCRIPTION_HEADER **Table + IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *AcpiTableInfo, + IN CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo, + IN CONST CHAR8 *Name, + IN CONST UINT64 Uid, + OUT EFI_ACPI_DESCRIPTION_HEADER **Table ); /** Free an SSDT table previously created by @@ -52,7 +52,7 @@ FreeSsdtSerialPortTable ( /** Validate the Serial Port Information. - @param [in] SerialPortInfoTable Table of CM_ARM_SERIAL_PORT_INFO. + @param [in] SerialPortInfoTable Table of CM_ARCH_COMMON_SERIAL_PORT_INFO. @param [in] SerialPortCount Count of SerialPort in the table. @retval EFI_SUCCESS Success. @@ -61,8 +61,8 @@ FreeSsdtSerialPortTable ( EFI_STATUS EFIAPI ValidateSerialPortInfo ( - IN CONST CM_ARM_SERIAL_PORT_INFO *SerialPortInfoTable, - IN UINT32 SerialPortCount + IN CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfoTable, + IN UINT32 SerialPortCount ); #endif // SSDT_SERIAL_PORT_LIB_H_ diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c index f6dfb3d94c..fbf2ba3733 100644 --- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c +++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiDbg2LibArm/Dbg2Generator.c @@ -33,7 +33,7 @@ Requirements: The following Configuration Manager Object(s) are required by this Generator: - - EArmObjSerialDebugPortInfo + - EArchCommonObjSerialDebugPortInfo */ #pragma pack(1) @@ -181,9 +181,9 @@ DBG2_TABLE AcpiDbg2 = { debug port information from the Configuration Manager */ GET_OBJECT_LIST ( - EObjNameSpaceArm, - EArmObjSerialDebugPortInfo, - CM_ARM_SERIAL_PORT_INFO + EObjNameSpaceArchCommon, + EArchCommonObjSerialDebugPortInfo, + CM_ARCH_COMMON_SERIAL_PORT_INFO ); /** Initialize the PL011/SBSA UART with the parameters obtained from @@ -198,7 +198,7 @@ GET_OBJECT_LIST ( STATIC EFI_STATUS SetupDebugUart ( - IN CONST CM_ARM_SERIAL_PORT_INFO *CONST SerialPortInfo + IN CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *CONST SerialPortInfo ) { EFI_STATUS Status; @@ -329,10 +329,10 @@ BuildDbg2TableEx ( OUT UINTN *CONST TableCount ) { - EFI_STATUS Status; - CM_ARM_SERIAL_PORT_INFO *SerialPortInfo; - UINT32 SerialPortCount; - EFI_ACPI_DESCRIPTION_HEADER **TableList; + EFI_STATUS Status; + CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo; + UINT32 SerialPortCount; + EFI_ACPI_DESCRIPTION_HEADER **TableList; ASSERT (This != NULL); ASSERT (AcpiTableInfo != NULL); @@ -358,7 +358,7 @@ BuildDbg2TableEx ( *Table = NULL; - Status = GetEArmObjSerialDebugPortInfo ( + Status = GetEArchCommonObjSerialDebugPortInfo ( CfgMgrProtocol, CM_NULL_TOKEN, &SerialPortInfo, diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/SpcrGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/SpcrGenerator.c index 59cbacbfbb..6f027f3bf9 100644 --- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/SpcrGenerator.c +++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSpcrLibArm/SpcrGenerator.c @@ -33,7 +33,7 @@ Requirements: The following Configuration Manager Object(s) are required by this Generator: - - EArmObjSerialConsolePortInfo + - EArchCommonObjConsolePortInfo NOTE: This implementation ignores the possibility that the Serial settings may be modified from the UEFI Shell. A more complex handler would be needed @@ -98,9 +98,9 @@ EFI_ACPI_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE AcpiSpcr = { Port Information from the Configuration Manager. */ GET_OBJECT_LIST ( - EObjNameSpaceArm, - EArmObjSerialConsolePortInfo, - CM_ARM_SERIAL_PORT_INFO + EObjNameSpaceArchCommon, + EArchCommonObjConsolePortInfo, + CM_ARCH_COMMON_SERIAL_PORT_INFO ) /** Free any resources allocated for constructing the tables. @@ -200,10 +200,10 @@ BuildSpcrTableEx ( OUT UINTN *CONST TableCount ) { - EFI_STATUS Status; - CM_ARM_SERIAL_PORT_INFO *SerialPortInfo; - UINT32 SerialPortCount; - EFI_ACPI_DESCRIPTION_HEADER **TableList; + EFI_STATUS Status; + CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo; + UINT32 SerialPortCount; + EFI_ACPI_DESCRIPTION_HEADER **TableList; ASSERT (This != NULL); ASSERT (AcpiTableInfo != NULL); @@ -229,7 +229,7 @@ BuildSpcrTableEx ( *Table = NULL; - Status = GetEArmObjSerialConsolePortInfo ( + Status = GetEArchCommonObjConsolePortInfo ( CfgMgrProtocol, CM_NULL_TOKEN, &SerialPortInfo, diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtSerialPortLibArm/SsdtSerialPortGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtSerialPortLibArm/SsdtSerialPortGenerator.c index b850320eed..671ba05740 100644 --- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtSerialPortLibArm/SsdtSerialPortGenerator.c +++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtSerialPortLibArm/SsdtSerialPortGenerator.c @@ -29,16 +29,16 @@ Requirements: The following Configuration Manager Object(s) are required by this Generator: - - EArmObjSerialPortInfo + - EArchCommonObjSerialPortInfo */ /** This macro expands to a function that retrieves the Serial-port information from the Configuration Manager. */ GET_OBJECT_LIST ( - EObjNameSpaceArm, - EArmObjSerialPortInfo, - CM_ARM_SERIAL_PORT_INFO + EObjNameSpaceArchCommon, + EArchCommonObjSerialPortInfo, + CM_ARCH_COMMON_SERIAL_PORT_INFO ); /** Starting value for the UID to represent the serial ports. @@ -167,13 +167,13 @@ BuildSsdtSerialPortTableEx ( OUT UINTN *CONST TableCount ) { - EFI_STATUS Status; - CM_ARM_SERIAL_PORT_INFO *SerialPortInfo; - UINT32 SerialPortCount; - UINTN Index; - CHAR8 NewName[AML_NAME_SEG_SIZE + 1]; - UINT64 Uid; - EFI_ACPI_DESCRIPTION_HEADER **TableList; + EFI_STATUS Status; + CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo; + UINT32 SerialPortCount; + UINTN Index; + CHAR8 NewName[AML_NAME_SEG_SIZE + 1]; + UINT64 Uid; + EFI_ACPI_DESCRIPTION_HEADER **TableList; ASSERT (This != NULL); ASSERT (AcpiTableInfo != NULL); @@ -185,7 +185,7 @@ BuildSsdtSerialPortTableEx ( *Table = NULL; - Status = GetEArmObjSerialPortInfo ( + Status = GetEArchCommonObjSerialPortInfo ( CfgMgrProtocol, CM_NULL_TOKEN, &SerialPortInfo, diff --git a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c index ef2a8dcfdd..412bf41647 100644 --- a/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c +++ b/DynamicTablesPkg/Library/Common/DynamicPlatRepoLib/CmObjectTokenFixer.c @@ -150,47 +150,44 @@ CM_OBJECT_TOKEN_FIXER TokenFixer[EArmObjMax] = { NULL, ///< 4 - GIC MSI Frame Info NULL, ///< 5 - GIC Redistributor Info NULL, ///< 6 - GIC ITS Info - NULL, ///< 7 - Serial Console Port Info - NULL, ///< 8 - Serial Debug Port Info - NULL, ///< 9 - Generic Timer Info - NULL, ///< 10 - Platform GT Block Info - NULL, ///< 11 - Generic Timer Block Frame Info - NULL, ///< 12 - Platform Generic Watchdog - NULL, ///< 13 - PCI Configuration Space Info - NULL, ///< 14 - Hypervisor Vendor Id - NULL, ///< 15 - Fixed feature flags for FADT - TokenFixerItsGroup, ///< 16 - ITS Group - TokenFixerNamedComponentNode, ///< 17 - Named Component - TokenFixerRootComplexNode, ///< 18 - Root Complex - TokenFixerNotImplemented, ///< 19 - SMMUv1 or SMMUv2 - TokenFixerSmmuV3Node, ///< 20 - SMMUv3 - TokenFixerNotImplemented, ///< 21 - PMCG - NULL, ///< 22 - GIC ITS Identifier Array - NULL, ///< 23 - ID Mapping Array - NULL, ///< 24 - SMMU Interrupt Array - TokenFixerNotImplemented, ///< 25 - Processor Hierarchy Info - TokenFixerNotImplemented, ///< 26 - Cache Info - NULL, ///< 27 - CM Object Reference - NULL, ///< 28 - Memory Affinity Info - NULL, ///< 29 - Device Handle Acpi - NULL, ///< 30 - Device Handle Pci - NULL, ///< 31 - Generic Initiator Affinity - NULL, ///< 32 - Generic Serial Port Info - NULL, ///< 33 - CMN-600 Info - NULL, ///< 34 - Lpi Info - NULL, ///< 35 - Pci Address Map Info - NULL, ///< 36 - Pci Interrupt Map Info - NULL, ///< 37 - Reserved Memory Range Node - NULL, ///< 38 - Memory Range Descriptor - NULL, ///< 39 - Continuous Performance Control Info - NULL, ///< 40 - Pcc Subspace Type 0 Info - NULL, ///< 41 - Pcc Subspace Type 2 Info - NULL, ///< 42 - Pcc Subspace Type 2 Info - NULL, ///< 43 - Pcc Subspace Type 3 Info - NULL, ///< 44 - Pcc Subspace Type 4 Info - NULL, ///< 45 - Pcc Subspace Type 5 Info - NULL, ///< 46 - Embedded Trace Extension/Module Info - NULL ///< 47 - P-State Dependency (PSD) Info + NULL, ///< 7 - Generic Timer Info + NULL, ///< 8 - Platform GT Block Info + NULL, ///< 9 - Generic Timer Block Frame Info + NULL, ///< 10 - Platform Generic Watchdog + NULL, ///< 11 - PCI Configuration Space Info + NULL, ///< 12 - Hypervisor Vendor Id + NULL, ///< 13 - Fixed feature flags for FADT + TokenFixerItsGroup, ///< 14 - ITS Group + TokenFixerNamedComponentNode, ///< 15 - Named Component + TokenFixerRootComplexNode, ///< 16 - Root Complex + TokenFixerNotImplemented, ///< 17 - SMMUv1 or SMMUv2 + TokenFixerSmmuV3Node, ///< 18 - SMMUv3 + TokenFixerNotImplemented, ///< 19 - PMCG + NULL, ///< 20 - GIC ITS Identifier Array + NULL, ///< 21 - ID Mapping Array + NULL, ///< 22 - SMMU Interrupt Array + TokenFixerNotImplemented, ///< 23 - Processor Hierarchy Info + TokenFixerNotImplemented, ///< 24 - Cache Info + NULL, ///< 25 - Memory Affinity Info + NULL, ///< 26 - Memory Affinity Info + NULL, ///< 27 - Device Handle Acpi + NULL, ///< 28 - Device Handle Pci + NULL, ///< 29 - Generic Initiator Affinity + NULL, ///< 30 - CMN-600 Info + NULL, ///< 31 - Lpi Info + NULL, ///< 32 - Pci Address Map Info + NULL, ///< 33 - Pci Interrupt Map Info + NULL, ///< 34 - Reserved Memory Range Node + NULL, ///< 35 - Memory Range Descriptor + NULL, ///< 36 - Continuous Performance Control Info + NULL, ///< 37 - Pcc Subspace Type 0 Info + NULL, ///< 38 - Pcc Subspace Type 2 Info + NULL, ///< 39 - Pcc Subspace Type 2 Info + NULL, ///< 40 - Pcc Subspace Type 3 Info + NULL, ///< 41 - Pcc Subspace Type 4 Info + NULL, ///< 42 - Pcc Subspace Type 5 Info + NULL, ///< 43 - Embedded Trace Extension/Module Info + NULL ///< 44 - P-State Dependency (PSD) Info }; /** CmObj token fixer. diff --git a/DynamicTablesPkg/Library/Common/SsdtSerialPortFixupLib/SsdtSerialPortFixupLib.c b/DynamicTablesPkg/Library/Common/SsdtSerialPortFixupLib/SsdtSerialPortFixupLib.c index f2594de2e9..e8eef4048d 100644 --- a/DynamicTablesPkg/Library/Common/SsdtSerialPortFixupLib/SsdtSerialPortFixupLib.c +++ b/DynamicTablesPkg/Library/Common/SsdtSerialPortFixupLib/SsdtSerialPortFixupLib.c @@ -46,7 +46,7 @@ extern CHAR8 ssdtserialporttemplate_aml_code[]; /** Validate the Serial Port Information. - @param [in] SerialPortInfoTable Table of CM_ARM_SERIAL_PORT_INFO. + @param [in] SerialPortInfoTable Table of CM_ARCH_COMMON_SERIAL_PORT_INFO. @param [in] SerialPortCount Count of SerialPort in the table. @retval EFI_SUCCESS Success. @@ -55,12 +55,12 @@ extern CHAR8 ssdtserialporttemplate_aml_code[]; EFI_STATUS EFIAPI ValidateSerialPortInfo ( - IN CONST CM_ARM_SERIAL_PORT_INFO *SerialPortInfoTable, - IN UINT32 SerialPortCount + IN CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfoTable, + IN UINT32 SerialPortCount ) { - UINT32 Index; - CONST CM_ARM_SERIAL_PORT_INFO *SerialPortInfo; + UINT32 Index; + CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo; if ((SerialPortInfoTable == NULL) || (SerialPortCount == 0)) @@ -163,9 +163,9 @@ STATIC EFI_STATUS EFIAPI FixupIds ( - IN AML_ROOT_NODE_HANDLE RootNodeHandle, - IN CONST UINT64 Uid, - IN CONST CM_ARM_SERIAL_PORT_INFO *SerialPortInfo + IN AML_ROOT_NODE_HANDLE RootNodeHandle, + IN CONST UINT64 Uid, + IN CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo ) { EFI_STATUS Status; @@ -290,8 +290,8 @@ STATIC EFI_STATUS EFIAPI FixupCrs ( - IN AML_ROOT_NODE_HANDLE RootNodeHandle, - IN CONST CM_ARM_SERIAL_PORT_INFO *SerialPortInfo + IN AML_ROOT_NODE_HANDLE RootNodeHandle, + IN CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo ) { EFI_STATUS Status; @@ -366,9 +366,9 @@ STATIC EFI_STATUS EFIAPI FixupName ( - IN AML_ROOT_NODE_HANDLE RootNodeHandle, - IN CONST CM_ARM_SERIAL_PORT_INFO *SerialPortInfo, - IN CONST CHAR8 *Name + IN AML_ROOT_NODE_HANDLE RootNodeHandle, + IN CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo, + IN CONST CHAR8 *Name ) { EFI_STATUS Status; @@ -410,11 +410,11 @@ STATIC EFI_STATUS EFIAPI FixupSerialPortInfo ( - IN AML_ROOT_NODE_HANDLE RootNodeHandle, - IN CONST CM_ARM_SERIAL_PORT_INFO *SerialPortInfo, - IN CONST CHAR8 *Name, - IN CONST UINT64 Uid, - OUT EFI_ACPI_DESCRIPTION_HEADER **Table + IN AML_ROOT_NODE_HANDLE RootNodeHandle, + IN CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo, + IN CONST CHAR8 *Name, + IN CONST UINT64 Uid, + OUT EFI_ACPI_DESCRIPTION_HEADER **Table ) { EFI_STATUS Status; @@ -480,11 +480,11 @@ FreeSsdtSerialPortTable ( EFI_STATUS EFIAPI BuildSsdtSerialPortTable ( - IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *AcpiTableInfo, - IN CONST CM_ARM_SERIAL_PORT_INFO *SerialPortInfo, - IN CONST CHAR8 *Name, - IN CONST UINT64 Uid, - OUT EFI_ACPI_DESCRIPTION_HEADER **Table + IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *AcpiTableInfo, + IN CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo, + IN CONST CHAR8 *Name, + IN CONST UINT64 Uid, + OUT EFI_ACPI_DESCRIPTION_HEADER **Table ) { EFI_STATUS Status; diff --git a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c index 0d3e53312b..334d2a0265 100644 --- a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c +++ b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c @@ -122,10 +122,10 @@ STATIC CONST CM_OBJ_PARSER CmArmGicItsInfoParser[] = { { "ProximityDomain", 4, "0x%x", NULL } }; -/** A parser for EArmObjSerialConsolePortInfo, - EArmObjSerialDebugPortInfo and EArmObjSerialPortInfo. +/** A parser for EArchCommonObjConsolePortInfo, + EArchCommonObjSerialDebugPortInfo and EArchCommonObjSerialPortInfo. */ -STATIC CONST CM_OBJ_PARSER CmArmSerialPortInfoParser[] = { +STATIC CONST CM_OBJ_PARSER CmArchCommonSerialPortInfoParser[] = { { "BaseAddress", 8, "0x%llx", NULL }, { "Interrupt", 4, "0x%x", NULL }, { "BaudRate", 8, "0x%llx", NULL }, @@ -672,6 +672,9 @@ STATIC CONST CM_OBJ_PARSER CmArmPsdInfoParser[] = { STATIC CONST CM_OBJ_PARSER_ARRAY ArchCommonNamespaceObjectParser[] = { CM_PARSER_ADD_OBJECT_RESERVED (EArchCommonObjReserved), CM_PARSER_ADD_OBJECT (EArchCommonObjPowerManagementProfileInfo,CmArchCommonPowerManagementProfileInfoParser), + CM_PARSER_ADD_OBJECT (EArchCommonObjSerialPortInfo, CmArchCommonSerialPortInfoParser), + CM_PARSER_ADD_OBJECT (EArchCommonObjConsolePortInfo, CmArchCommonSerialPortInfoParser), + CM_PARSER_ADD_OBJECT (EArchCommonObjSerialDebugPortInfo, CmArchCommonSerialPortInfoParser), CM_PARSER_ADD_OBJECT_RESERVED (EArchCommonObjMax) }; @@ -685,8 +688,6 @@ STATIC CONST CM_OBJ_PARSER_ARRAY ArmNamespaceObjectParser[] = { CM_PARSER_ADD_OBJECT (EArmObjGicMsiFrameInfo, CmArmGicMsiFrameInfoParser), CM_PARSER_ADD_OBJECT (EArmObjGicRedistributorInfo, CmArmGicRedistInfoParser), CM_PARSER_ADD_OBJECT (EArmObjGicItsInfo, CmArmGicItsInfoParser), - CM_PARSER_ADD_OBJECT (EArmObjSerialConsolePortInfo, CmArmSerialPortInfoParser), - CM_PARSER_ADD_OBJECT (EArmObjSerialDebugPortInfo, CmArmSerialPortInfoParser), CM_PARSER_ADD_OBJECT (EArmObjGenericTimerInfo, CmArmGenericTimerInfoParser), CM_PARSER_ADD_OBJECT (EArmObjPlatformGTBlockInfo, CmArmGTBlockInfoParser), CM_PARSER_ADD_OBJECT (EArmObjGTBlockTimerFrameInfo, CmArmGTBlockTimerFrameInfoParser), @@ -710,7 +711,6 @@ STATIC CONST CM_OBJ_PARSER_ARRAY ArmNamespaceObjectParser[] = { CM_PARSER_ADD_OBJECT (EArmObjDeviceHandleAcpi, CmArmDeviceHandleAcpiParser), CM_PARSER_ADD_OBJECT (EArmObjDeviceHandlePci, CmArmDeviceHandlePciParser), CM_PARSER_ADD_OBJECT (EArmObjGenericInitiatorAffinityInfo,CmArmGenericInitiatorAffinityInfoParser), - CM_PARSER_ADD_OBJECT (EArmObjSerialPortInfo, CmArmSerialPortInfoParser), CM_PARSER_ADD_OBJECT (EArmObjCmn600Info, CmArmCmn600InfoParser), CM_PARSER_ADD_OBJECT (EArmObjLpiInfo, CmArmLpiInfoParser), CM_PARSER_ADD_OBJECT (EArmObjPciAddressMapInfo, CmArmPciAddressMapInfoParser), diff --git a/DynamicTablesPkg/Library/FdtHwInfoParserLib/Serial/ArmSerialPortParser.c b/DynamicTablesPkg/Library/FdtHwInfoParserLib/Serial/ArmSerialPortParser.c index 732b482eeb..f17ad2e842 100644 --- a/DynamicTablesPkg/Library/FdtHwInfoParserLib/Serial/ArmSerialPortParser.c +++ b/DynamicTablesPkg/Library/FdtHwInfoParserLib/Serial/ArmSerialPortParser.c @@ -71,7 +71,7 @@ CONST COMPATIBILITY_INFO SerialSbsaCompatibleInfo = { @param [in] Fdt Pointer to a Flattened Device Tree (Fdt). @param [in] SerialPortNode Offset of a serial-port node. - @param [in] SerialPortInfo The CM_ARM_SERIAL_PORT_INFO to populate. + @param [in] SerialPortInfo The CM_ARCH_COMMON_SERIAL_PORT_INFO to populate. @retval EFI_SUCCESS The function completed successfully. @retval EFI_ABORTED An error occurred. @@ -82,9 +82,9 @@ STATIC EFI_STATUS EFIAPI SerialPortNodeParser ( - IN CONST VOID *Fdt, - IN INT32 SerialPortNode, - IN CM_ARM_SERIAL_PORT_INFO *SerialPortInfo + IN CONST VOID *Fdt, + IN INT32 SerialPortNode, + IN CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo ) { EFI_STATUS Status; @@ -313,7 +313,7 @@ GetSerialConsoleNode ( return EFI_SUCCESS; } -/** CM_ARM_SERIAL_PORT_INFO dispatcher function (for a generic serial-port). +/** CM_ARCH_COMMON_SERIAL_PORT_INFO dispatcher function (for a generic serial-port). @param [in] FdtParserHandle A handle to the parser instance. @param [in] GenericSerialInfo Pointer to a serial port info list. @@ -331,9 +331,9 @@ EFI_STATUS EFIAPI ArmSerialPortInfoDispatch ( IN CONST FDT_HW_INFO_PARSER_HANDLE FdtParserHandle, - IN CM_ARM_SERIAL_PORT_INFO *GenericSerialInfo, + IN CM_ARCH_COMMON_SERIAL_PORT_INFO *GenericSerialInfo, IN INT32 NodeCount, - IN EARM_OBJECT_ID SerialObjectId + IN EARCH_COMMON_OBJECT_ID SerialObjectId ) { EFI_STATUS Status; @@ -344,9 +344,9 @@ ArmSerialPortInfoDispatch ( return EFI_INVALID_PARAMETER; } - if ((SerialObjectId != EArmObjSerialPortInfo) && - (SerialObjectId != EArmObjSerialDebugPortInfo) && - (SerialObjectId != EArmObjSerialConsolePortInfo)) + if ((SerialObjectId != EArchCommonObjSerialPortInfo) && + (SerialObjectId != EArchCommonObjSerialDebugPortInfo) && + (SerialObjectId != EArchCommonObjConsolePortInfo)) { ASSERT (0); return EFI_INVALID_PARAMETER; @@ -354,10 +354,10 @@ ArmSerialPortInfoDispatch ( // Dispatch the Generic Serial ports Status = CreateCmObjDesc ( - CREATE_CM_ARM_OBJECT_ID (SerialObjectId), + CREATE_CM_ARCH_COMMON_OBJECT_ID (SerialObjectId), NodeCount, GenericSerialInfo, - sizeof (CM_ARM_SERIAL_PORT_INFO) * NodeCount, + sizeof (CM_ARCH_COMMON_SERIAL_PORT_INFO) * NodeCount, &NewCmObjDesc ); if (EFI_ERROR (Status)) { @@ -372,19 +372,19 @@ ArmSerialPortInfoDispatch ( return Status; } -/** CM_ARM_SERIAL_PORT_INFO parser function (for debug/console serial-port). +/** CM_ARCH_COMMON_SERIAL_PORT_INFO parser function (for debug/console serial-port). This parser expects FdtBranch to be the debug serial-port node. At most one CmObj is created. The following structure is populated: - typedef struct CmArmSerialPortInfo { + typedef struct EArchCommonSerialPortInfo { UINT64 BaseAddress; // {Populated} UINT32 Interrupt; // {Populated} UINT64 BaudRate; // {default} UINT32 Clock; // {Populated} UINT16 PortSubtype; // {Populated} UINT64 BaseAddressLength // {Populated} - } CM_ARM_SERIAL_PORT_INFO; + } CM_ARCH_COMMON_SERIAL_PORT_INFO; A parser parses a Device Tree to populate a specific CmObj type. None, one or many CmObj can be created by the parser. @@ -396,7 +396,8 @@ ArmSerialPortInfoDispatch ( @param [in] FdtParserHandle A handle to the parser instance. @param [in] FdtBranch When searching for DT node name, restrict the search to this Device Tree branch. - @param [in] SerialObjectId ArmNamespace Object ID for the serial port. + @param [in] SerialObjectId ArchCommon Namespace Object ID for the serial + port. @retval EFI_SUCCESS The function completed successfully. @retval EFI_ABORTED An error occurred. @@ -410,14 +411,14 @@ EFIAPI ArmSerialPortInfoParser ( IN CONST FDT_HW_INFO_PARSER_HANDLE FdtParserHandle, IN INT32 FdtBranch, - IN EARM_OBJECT_ID SerialObjectId + IN EARCH_COMMON_OBJECT_ID SerialObjectId ) { - EFI_STATUS Status; - CM_ARM_SERIAL_PORT_INFO SerialInfo; + EFI_STATUS Status; + CM_ARCH_COMMON_SERIAL_PORT_INFO SerialInfo; - if ((SerialObjectId != EArmObjSerialDebugPortInfo) && - (SerialObjectId != EArmObjSerialConsolePortInfo)) + if ((SerialObjectId != EArchCommonObjSerialDebugPortInfo) && + (SerialObjectId != EArchCommonObjConsolePortInfo)) { ASSERT (0); return EFI_INVALID_PARAMETER; @@ -447,11 +448,11 @@ ArmSerialPortInfoParser ( /** SerialPort dispatcher. - This disptacher populates the CM_ARM_SERIAL_PORT_INFO structure for + This disptacher populates the CM_ARCH_COMMON_SERIAL_PORT_INFO structure for the following CM_OBJ_ID: - - EArmObjSerialConsolePortInfo - - EArmObjSerialDebugPortInfo - - EArmObjSerialPortInfo + - EArchCommonObjConsolePortInfo + - EArchCommonObjSerialDebugPortInfo + - EArchCommonObjSerialPortInfo A parser parses a Device Tree to populate a specific CmObj type. None, one or many CmObj can be created by the parser. @@ -477,16 +478,16 @@ SerialPortDispatcher ( IN INT32 FdtBranch ) { - EFI_STATUS Status; - INT32 SerialConsoleNode; - INT32 SerialDebugNode; - INT32 SerialNode; - UINT32 Index; - UINT32 SerialNodeCount; - UINT32 SerialNodesRemaining; - CM_ARM_SERIAL_PORT_INFO *GenericSerialInfo; - UINT32 GenericSerialIndex; - VOID *Fdt; + EFI_STATUS Status; + INT32 SerialConsoleNode; + INT32 SerialDebugNode; + INT32 SerialNode; + UINT32 Index; + UINT32 SerialNodeCount; + UINT32 SerialNodesRemaining; + CM_ARCH_COMMON_SERIAL_PORT_INFO *GenericSerialInfo; + UINT32 GenericSerialIndex; + VOID *Fdt; if (FdtParserHandle == NULL) { ASSERT (0); @@ -531,7 +532,7 @@ SerialPortDispatcher ( Status = ArmSerialPortInfoParser ( FdtParserHandle, SerialConsoleNode, - EArmObjSerialConsolePortInfo + EArchCommonObjConsolePortInfo ); if (EFI_ERROR (Status)) { ASSERT (0); @@ -550,7 +551,7 @@ SerialPortDispatcher ( SerialNodesRemaining--; GenericSerialInfo = AllocateZeroPool ( SerialNodesRemaining * - sizeof (CM_ARM_SERIAL_PORT_INFO) + sizeof (CM_ARCH_COMMON_SERIAL_PORT_INFO) ); if (GenericSerialInfo == NULL) { ASSERT (0); @@ -589,7 +590,7 @@ SerialPortDispatcher ( Status = ArmSerialPortInfoParser ( FdtParserHandle, SerialDebugNode, - EArmObjSerialDebugPortInfo + EArchCommonObjSerialDebugPortInfo ); if (EFI_ERROR (Status)) { ASSERT (0); @@ -620,7 +621,7 @@ SerialPortDispatcher ( FdtParserHandle, GenericSerialInfo, GenericSerialIndex, - EArmObjSerialPortInfo + EArchCommonObjSerialPortInfo ); } diff --git a/DynamicTablesPkg/Library/FdtHwInfoParserLib/Serial/ArmSerialPortParser.h b/DynamicTablesPkg/Library/FdtHwInfoParserLib/Serial/ArmSerialPortParser.h index de08e57e6c..037c409d45 100644 --- a/DynamicTablesPkg/Library/FdtHwInfoParserLib/Serial/ArmSerialPortParser.h +++ b/DynamicTablesPkg/Library/FdtHwInfoParserLib/Serial/ArmSerialPortParser.h @@ -14,11 +14,11 @@ /** SerialPort dispatcher. - This disptacher populates the CM_ARM_SERIAL_PORT_INFO structure for + This disptacher populates the CM_ARCH_COMMON_SERIAL_PORT_INFO structure for the following CM_OBJ_ID: - - EArmObjSerialConsolePortInfo - - EArmObjSerialDebugPortInfo - - EArmObjSerialPortInfo + - EArchCommonObjConsolePortInfo + - EArchCommonObjSerialDebugPortInfo + - EArchCommonObjSerialPortInfo A parser parses a Device Tree to populate a specific CmObj type. None, one or many CmObj can be created by the parser. diff --git a/DynamicTablesPkg/Readme.md b/DynamicTablesPkg/Readme.md index 3295bb2993..90f03f00e7 100644 --- a/DynamicTablesPkg/Readme.md +++ b/DynamicTablesPkg/Readme.md @@ -447,47 +447,44 @@ The CM_OBJECT_ID type is used to identify the Configuration Manager | 4 | GIC MSI Frame Info | | | 5 | GIC Redistributor Info | | | 6 | GIC ITS Info | | -| 7 | Serial Console Port Info | Move to Arch Common NS | -| 8 | Serial Debug Port Info | Move to Arch Common NS | -| 9 | Generic Timer Info | | -| 10 | Platform GT Block Info | | -| 11 | Generic Timer Block Frame Info | | -| 12 | Platform Generic Watchdog | | -| 13 | PCI Configuration Space Info | Move to Arch Common NS | -| 14 | Hypervisor Vendor Id | Move to Arch Common NS | -| 15 | Fixed feature flags for FADT | Move to Arch Common NS | -| 16 | ITS Group | | -| 17 | Named Component | | -| 18 | Root Complex | | -| 19 | SMMUv1 or SMMUv2 | | -| 20 | SMMUv3 | | -| 21 | PMCG | | -| 22 | GIC ITS Identifier Array | | -| 23 | ID Mapping Array | | -| 24 | SMMU Interrupt Array | | -| 25 | Processor Hierarchy Info | Move to Arch Common NS | -| 26 | Cache Info | Move to Arch Common NS | -| 27 | CM Object Reference | Move to Arch Common NS | -| 28 | Memory Affinity Info | Move to Arch Common NS | -| 29 | Device Handle Acpi | Move to Arch Common NS | -| 30 | Device Handle PCI | Move to Arch Common NS | -| 31 | Generic Initiator Affinity Info | Move to Arch Common NS | -| 32 | Serial Port Info | Move to Arch Common NS | -| 33 | CMN 600 Info | | -| 34 | Low Power Idle State Info | Move to Arch Common NS | -| 35 | PCI Address Map Info | Move to Arch Common NS | -| 36 | PCI Interrupt Map Info | Move to Arch Common NS | -| 37 | Reserved Memory Range Node | | -| 38 | Memory Range Descriptor | | -| 39 | Continuous Performance Control Info | Move to Arch Common NS | -| 40 | Pcc Subspace Type 0 Info | Move to Arch Common NS | -| 41 | Pcc Subspace Type 1 Info | Move to Arch Common NS | -| 42 | Pcc Subspace Type 2 Info | Move to Arch Common NS | -| 43 | Pcc Subspace Type 3 Info | Move to Arch Common NS | -| 44 | Pcc Subspace Type 4 Info | Move to Arch Common NS | -| 45 | Pcc Subspace Type 5 Info | Move to Arch Common NS | -| 46 | Embedded Trace Extension/Module Info | | -| 47 | P-State Dependency (PSD) Info | Move to Arch Common NS | +| 7 | Generic Timer Info | | +| 8 | Platform GT Block Info | | +| 9 | Generic Timer Block Frame Info | | +| 10 | Platform Generic Watchdog | | +| 11 | PCI Configuration Space Info | Move to Arch Common NS | +| 12 | Hypervisor Vendor Id | Move to Arch Common NS | +| 13 | Fixed feature flags for FADT | Move to Arch Common NS | +| 14 | ITS Group | | +| 15 | Named Component | | +| 16 | Root Complex | | +| 17 | SMMUv1 or SMMUv2 | | +| 18 | SMMUv3 | | +| 19 | PMCG | | +| 20 | GIC ITS Identifier Array | | +| 21 | ID Mapping Array | | +| 22 | SMMU Interrupt Array | | +| 23 | Processor Hierarchy Info | Move to Arch Common NS | +| 24 | Cache Info | Move to Arch Common NS | +| 25 | CM Object Reference | Move to Arch Common NS | +| 26 | Memory Affinity Info | Move to Arch Common NS | +| 27 | Device Handle Acpi | Move to Arch Common NS | +| 28 | Device Handle PCI | Move to Arch Common NS | +| 29 | Generic Initiator Affinity Info | Move to Arch Common NS | +| 30 | CMN 600 Info | | +| 31 | Low Power Idle State Info | Move to Arch Common NS | +| 32 | PCI Address Map Info | Move to Arch Common NS | +| 33 | PCI Interrupt Map Info | Move to Arch Common NS | +| 34 | Reserved Memory Range Node | | +| 35 | Memory Range Descriptor | | +| 36 | Continuous Performance Control Info | Move to Arch Common NS | +| 37 | Pcc Subspace Type 0 Info | Move to Arch Common NS | +| 38 | Pcc Subspace Type 1 Info | Move to Arch Common NS | +| 39 | Pcc Subspace Type 2 Info | Move to Arch Common NS | +| 40 | Pcc Subspace Type 3 Info | Move to Arch Common NS | +| 41 | Pcc Subspace Type 4 Info | Move to Arch Common NS | +| 42 | Pcc Subspace Type 5 Info | Move to Arch Common NS | +| 43 | Embedded Trace Extension/Module Info | | +| 44 | P-State Dependency (PSD) Info | Move to Arch Common NS | | `*` | All other values are reserved. | | #### Object ID's in the Arch Common Namespace: @@ -496,4 +493,7 @@ The CM_OBJECT_ID type is used to identify the Configuration Manager | ---: | :-------------------------- | :--- | | 0 | Reserved | | | 1 | Power Management Profile Info | | +| 2 | Serial Port Info | | +| 3 | Serial Console Port Info | | +| 4 | Serial Debug Port Info | | | `*` | All other values are reserved. | |