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 <Pierre.Gondois@arm.com>
Cc: Yeo Reum Yun <YeoReum.Yun@arm.com>
Cc: AbdulLateef Attar <AbdulLateef.Attar@amd.com>
Cc: Jeshua Smith <jeshuas@nvidia.com>
Cc: Jeff Brasen <jbrasen@nvidia.com>
Cc: Girish Mahadevan <gmahadevan@nvidia.com>
Cc: Leif Lindholm <quic_llindhol@quicinc.com>
Cc: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com>
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
Reviewed-by: Sunil V L <sunilvl@ventanamicro.com>
This commit is contained in:
Sami Mujawar 2024-03-06 10:08:09 +00:00 committed by mergify[bot]
parent 1775c9d51c
commit e5d8bd476c
12 changed files with 264 additions and 267 deletions

View File

@ -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()

View File

@ -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.

View File

@ -30,7 +30,7 @@ EFI_STATUS
EFIAPI
BuildSsdtSerialPortTable (
IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *AcpiTableInfo,
IN CONST CM_ARM_SERIAL_PORT_INFO *SerialPortInfo,
IN CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo,
IN CONST CHAR8 *Name,
IN CONST UINT64 Uid,
OUT EFI_ACPI_DESCRIPTION_HEADER **Table
@ -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,7 +61,7 @@ FreeSsdtSerialPortTable (
EFI_STATUS
EFIAPI
ValidateSerialPortInfo (
IN CONST CM_ARM_SERIAL_PORT_INFO *SerialPortInfoTable,
IN CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfoTable,
IN UINT32 SerialPortCount
);

View File

@ -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;
@ -330,7 +330,7 @@ BuildDbg2TableEx (
)
{
EFI_STATUS Status;
CM_ARM_SERIAL_PORT_INFO *SerialPortInfo;
CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo;
UINT32 SerialPortCount;
EFI_ACPI_DESCRIPTION_HEADER **TableList;
@ -358,7 +358,7 @@ BuildDbg2TableEx (
*Table = NULL;
Status = GetEArmObjSerialDebugPortInfo (
Status = GetEArchCommonObjSerialDebugPortInfo (
CfgMgrProtocol,
CM_NULL_TOKEN,
&SerialPortInfo,

View File

@ -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.
@ -201,7 +201,7 @@ BuildSpcrTableEx (
)
{
EFI_STATUS Status;
CM_ARM_SERIAL_PORT_INFO *SerialPortInfo;
CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo;
UINT32 SerialPortCount;
EFI_ACPI_DESCRIPTION_HEADER **TableList;
@ -229,7 +229,7 @@ BuildSpcrTableEx (
*Table = NULL;
Status = GetEArmObjSerialConsolePortInfo (
Status = GetEArchCommonObjConsolePortInfo (
CfgMgrProtocol,
CM_NULL_TOKEN,
&SerialPortInfo,

View File

@ -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.
@ -168,7 +168,7 @@ BuildSsdtSerialPortTableEx (
)
{
EFI_STATUS Status;
CM_ARM_SERIAL_PORT_INFO *SerialPortInfo;
CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo;
UINT32 SerialPortCount;
UINTN Index;
CHAR8 NewName[AML_NAME_SEG_SIZE + 1];
@ -185,7 +185,7 @@ BuildSsdtSerialPortTableEx (
*Table = NULL;
Status = GetEArmObjSerialPortInfo (
Status = GetEArchCommonObjSerialPortInfo (
CfgMgrProtocol,
CM_NULL_TOKEN,
&SerialPortInfo,

View File

@ -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.

View File

@ -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 CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfoTable,
IN UINT32 SerialPortCount
)
{
UINT32 Index;
CONST CM_ARM_SERIAL_PORT_INFO *SerialPortInfo;
CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo;
if ((SerialPortInfoTable == NULL) ||
(SerialPortCount == 0))
@ -165,7 +165,7 @@ EFIAPI
FixupIds (
IN AML_ROOT_NODE_HANDLE RootNodeHandle,
IN CONST UINT64 Uid,
IN CONST CM_ARM_SERIAL_PORT_INFO *SerialPortInfo
IN CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo
)
{
EFI_STATUS Status;
@ -291,7 +291,7 @@ EFI_STATUS
EFIAPI
FixupCrs (
IN AML_ROOT_NODE_HANDLE RootNodeHandle,
IN CONST CM_ARM_SERIAL_PORT_INFO *SerialPortInfo
IN CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo
)
{
EFI_STATUS Status;
@ -367,7 +367,7 @@ EFI_STATUS
EFIAPI
FixupName (
IN AML_ROOT_NODE_HANDLE RootNodeHandle,
IN CONST CM_ARM_SERIAL_PORT_INFO *SerialPortInfo,
IN CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo,
IN CONST CHAR8 *Name
)
{
@ -411,7 +411,7 @@ EFI_STATUS
EFIAPI
FixupSerialPortInfo (
IN AML_ROOT_NODE_HANDLE RootNodeHandle,
IN CONST CM_ARM_SERIAL_PORT_INFO *SerialPortInfo,
IN CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo,
IN CONST CHAR8 *Name,
IN CONST UINT64 Uid,
OUT EFI_ACPI_DESCRIPTION_HEADER **Table
@ -481,7 +481,7 @@ EFI_STATUS
EFIAPI
BuildSsdtSerialPortTable (
IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *AcpiTableInfo,
IN CONST CM_ARM_SERIAL_PORT_INFO *SerialPortInfo,
IN CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo,
IN CONST CHAR8 *Name,
IN CONST UINT64 Uid,
OUT EFI_ACPI_DESCRIPTION_HEADER **Table

View File

@ -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),

View File

@ -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.
@ -84,7 +84,7 @@ EFIAPI
SerialPortNodeParser (
IN CONST VOID *Fdt,
IN INT32 SerialPortNode,
IN CM_ARM_SERIAL_PORT_INFO *SerialPortInfo
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;
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.
@ -484,7 +485,7 @@ SerialPortDispatcher (
UINT32 Index;
UINT32 SerialNodeCount;
UINT32 SerialNodesRemaining;
CM_ARM_SERIAL_PORT_INFO *GenericSerialInfo;
CM_ARCH_COMMON_SERIAL_PORT_INFO *GenericSerialInfo;
UINT32 GenericSerialIndex;
VOID *Fdt;
@ -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
);
}

View File

@ -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.

View File

@ -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. | |