mirror of
https://github.com/acidanthera/audk.git
synced 2025-04-08 17:05:09 +02:00
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:
parent
1775c9d51c
commit
e5d8bd476c
@ -22,6 +22,9 @@
|
|||||||
typedef enum ArchCommonObjectID {
|
typedef enum ArchCommonObjectID {
|
||||||
EArchCommonObjReserved, ///< 0 - Reserved
|
EArchCommonObjReserved, ///< 0 - Reserved
|
||||||
EArchCommonObjPowerManagementProfileInfo, ///< 1 - Power Management Profile Info
|
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
|
EArchCommonObjMax
|
||||||
} EARCH_COMMON_OBJECT_ID;
|
} EARCH_COMMON_OBJECT_ID;
|
||||||
|
|
||||||
@ -39,6 +42,38 @@ typedef struct CmArchCommonPowerManagementProfileInfo {
|
|||||||
UINT8 PowerManagementProfile;
|
UINT8 PowerManagementProfile;
|
||||||
} CM_ARCH_COMMON_POWER_MANAGEMENT_PROFILE_INFO;
|
} 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()
|
#pragma pack()
|
||||||
|
|
||||||
|
@ -35,47 +35,44 @@ typedef enum ArmObjectID {
|
|||||||
EArmObjGicMsiFrameInfo, ///< 4 - GIC MSI Frame Info
|
EArmObjGicMsiFrameInfo, ///< 4 - GIC MSI Frame Info
|
||||||
EArmObjGicRedistributorInfo, ///< 5 - GIC Redistributor Info
|
EArmObjGicRedistributorInfo, ///< 5 - GIC Redistributor Info
|
||||||
EArmObjGicItsInfo, ///< 6 - GIC ITS Info
|
EArmObjGicItsInfo, ///< 6 - GIC ITS Info
|
||||||
EArmObjSerialConsolePortInfo, ///< 7 - Serial Console Port Info
|
EArmObjGenericTimerInfo, ///< 7 - Generic Timer Info
|
||||||
EArmObjSerialDebugPortInfo, ///< 8 - Serial Debug Port Info
|
EArmObjPlatformGTBlockInfo, ///< 8 - Platform GT Block Info
|
||||||
EArmObjGenericTimerInfo, ///< 9 - Generic Timer Info
|
EArmObjGTBlockTimerFrameInfo, ///< 9 - Generic Timer Block Frame Info
|
||||||
EArmObjPlatformGTBlockInfo, ///< 10 - Platform GT Block Info
|
EArmObjPlatformGenericWatchdogInfo, ///< 10 - Platform Generic Watchdog
|
||||||
EArmObjGTBlockTimerFrameInfo, ///< 11 - Generic Timer Block Frame Info
|
EArmObjPciConfigSpaceInfo, ///< 11 - PCI Configuration Space Info
|
||||||
EArmObjPlatformGenericWatchdogInfo, ///< 12 - Platform Generic Watchdog
|
EArmObjHypervisorVendorIdentity, ///< 12 - Hypervisor Vendor Id
|
||||||
EArmObjPciConfigSpaceInfo, ///< 13 - PCI Configuration Space Info
|
EArmObjFixedFeatureFlags, ///< 13 - Fixed feature flags for FADT
|
||||||
EArmObjHypervisorVendorIdentity, ///< 14 - Hypervisor Vendor Id
|
EArmObjItsGroup, ///< 14 - ITS Group
|
||||||
EArmObjFixedFeatureFlags, ///< 15 - Fixed feature flags for FADT
|
EArmObjNamedComponent, ///< 15 - Named Component
|
||||||
EArmObjItsGroup, ///< 16 - ITS Group
|
EArmObjRootComplex, ///< 16 - Root Complex
|
||||||
EArmObjNamedComponent, ///< 17 - Named Component
|
EArmObjSmmuV1SmmuV2, ///< 17 - SMMUv1 or SMMUv2
|
||||||
EArmObjRootComplex, ///< 18 - Root Complex
|
EArmObjSmmuV3, ///< 18 - SMMUv3
|
||||||
EArmObjSmmuV1SmmuV2, ///< 19 - SMMUv1 or SMMUv2
|
EArmObjPmcg, ///< 19 - PMCG
|
||||||
EArmObjSmmuV3, ///< 20 - SMMUv3
|
EArmObjGicItsIdentifierArray, ///< 20 - GIC ITS Identifier Array
|
||||||
EArmObjPmcg, ///< 21 - PMCG
|
EArmObjIdMappingArray, ///< 21 - ID Mapping Array
|
||||||
EArmObjGicItsIdentifierArray, ///< 22 - GIC ITS Identifier Array
|
EArmObjSmmuInterruptArray, ///< 22 - SMMU Interrupt Array
|
||||||
EArmObjIdMappingArray, ///< 23 - ID Mapping Array
|
EArmObjProcHierarchyInfo, ///< 23 - Processor Hierarchy Info
|
||||||
EArmObjSmmuInterruptArray, ///< 24 - SMMU Interrupt Array
|
EArmObjCacheInfo, ///< 24 - Cache Info
|
||||||
EArmObjProcHierarchyInfo, ///< 25 - Processor Hierarchy Info
|
EArmObjCmRef, ///< 25 - CM Object Reference
|
||||||
EArmObjCacheInfo, ///< 26 - Cache Info
|
EArmObjMemoryAffinityInfo, ///< 26 - Memory Affinity Info
|
||||||
EArmObjCmRef, ///< 27 - CM Object Reference
|
EArmObjDeviceHandleAcpi, ///< 27 - Device Handle Acpi
|
||||||
EArmObjMemoryAffinityInfo, ///< 28 - Memory Affinity Info
|
EArmObjDeviceHandlePci, ///< 28 - Device Handle Pci
|
||||||
EArmObjDeviceHandleAcpi, ///< 29 - Device Handle Acpi
|
EArmObjGenericInitiatorAffinityInfo, ///< 29 - Generic Initiator Affinity
|
||||||
EArmObjDeviceHandlePci, ///< 30 - Device Handle Pci
|
EArmObjCmn600Info, ///< 30 - CMN-600 Info
|
||||||
EArmObjGenericInitiatorAffinityInfo, ///< 31 - Generic Initiator Affinity
|
EArmObjLpiInfo, ///< 31 - Lpi Info
|
||||||
EArmObjSerialPortInfo, ///< 32 - Generic Serial Port Info
|
EArmObjPciAddressMapInfo, ///< 32 - Pci Address Map Info
|
||||||
EArmObjCmn600Info, ///< 33 - CMN-600 Info
|
EArmObjPciInterruptMapInfo, ///< 33 - Pci Interrupt Map Info
|
||||||
EArmObjLpiInfo, ///< 34 - Lpi Info
|
EArmObjRmr, ///< 34 - Reserved Memory Range Node
|
||||||
EArmObjPciAddressMapInfo, ///< 35 - Pci Address Map Info
|
EArmObjMemoryRangeDescriptor, ///< 35 - Memory Range Descriptor
|
||||||
EArmObjPciInterruptMapInfo, ///< 36 - Pci Interrupt Map Info
|
EArmObjCpcInfo, ///< 36 - Continuous Performance Control Info
|
||||||
EArmObjRmr, ///< 37 - Reserved Memory Range Node
|
EArmObjPccSubspaceType0Info, ///< 37 - Pcc Subspace Type 0 Info
|
||||||
EArmObjMemoryRangeDescriptor, ///< 38 - Memory Range Descriptor
|
EArmObjPccSubspaceType1Info, ///< 38 - Pcc Subspace Type 2 Info
|
||||||
EArmObjCpcInfo, ///< 39 - Continuous Performance Control Info
|
EArmObjPccSubspaceType2Info, ///< 39 - Pcc Subspace Type 2 Info
|
||||||
EArmObjPccSubspaceType0Info, ///< 40 - Pcc Subspace Type 0 Info
|
EArmObjPccSubspaceType3Info, ///< 40 - Pcc Subspace Type 3 Info
|
||||||
EArmObjPccSubspaceType1Info, ///< 41 - Pcc Subspace Type 2 Info
|
EArmObjPccSubspaceType4Info, ///< 41 - Pcc Subspace Type 4 Info
|
||||||
EArmObjPccSubspaceType2Info, ///< 42 - Pcc Subspace Type 2 Info
|
EArmObjPccSubspaceType5Info, ///< 42 - Pcc Subspace Type 5 Info
|
||||||
EArmObjPccSubspaceType3Info, ///< 43 - Pcc Subspace Type 3 Info
|
EArmObjEtInfo, ///< 43 - Embedded Trace Extension/Module Info
|
||||||
EArmObjPccSubspaceType4Info, ///< 44 - Pcc Subspace Type 4 Info
|
EArmObjPsdInfo, ///< 44 - P-State Dependency (PSD) Info
|
||||||
EArmObjPccSubspaceType5Info, ///< 45 - Pcc Subspace Type 5 Info
|
|
||||||
EArmObjEtInfo, ///< 46 - Embedded Trace Extension/Module Info
|
|
||||||
EArmObjPsdInfo, ///< 47 - P-State Dependency (PSD) Info
|
|
||||||
EArmObjMax
|
EArmObjMax
|
||||||
} EARM_OBJECT_ID;
|
} EARM_OBJECT_ID;
|
||||||
|
|
||||||
@ -297,39 +294,6 @@ typedef struct CmArmGicItsInfo {
|
|||||||
UINT32 ProximityDomain;
|
UINT32 ProximityDomain;
|
||||||
} CM_ARM_GIC_ITS_INFO;
|
} 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
|
/** A structure that describes the
|
||||||
Generic Timer information for the Platform.
|
Generic Timer information for the Platform.
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ EFI_STATUS
|
|||||||
EFIAPI
|
EFIAPI
|
||||||
BuildSsdtSerialPortTable (
|
BuildSsdtSerialPortTable (
|
||||||
IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *AcpiTableInfo,
|
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 CHAR8 *Name,
|
||||||
IN CONST UINT64 Uid,
|
IN CONST UINT64 Uid,
|
||||||
OUT EFI_ACPI_DESCRIPTION_HEADER **Table
|
OUT EFI_ACPI_DESCRIPTION_HEADER **Table
|
||||||
@ -52,7 +52,7 @@ FreeSsdtSerialPortTable (
|
|||||||
|
|
||||||
/** Validate the Serial Port Information.
|
/** 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.
|
@param [in] SerialPortCount Count of SerialPort in the table.
|
||||||
|
|
||||||
@retval EFI_SUCCESS Success.
|
@retval EFI_SUCCESS Success.
|
||||||
@ -61,7 +61,7 @@ FreeSsdtSerialPortTable (
|
|||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
ValidateSerialPortInfo (
|
ValidateSerialPortInfo (
|
||||||
IN CONST CM_ARM_SERIAL_PORT_INFO *SerialPortInfoTable,
|
IN CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfoTable,
|
||||||
IN UINT32 SerialPortCount
|
IN UINT32 SerialPortCount
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
Requirements:
|
Requirements:
|
||||||
The following Configuration Manager Object(s) are required by
|
The following Configuration Manager Object(s) are required by
|
||||||
this Generator:
|
this Generator:
|
||||||
- EArmObjSerialDebugPortInfo
|
- EArchCommonObjSerialDebugPortInfo
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#pragma pack(1)
|
#pragma pack(1)
|
||||||
@ -181,9 +181,9 @@ DBG2_TABLE AcpiDbg2 = {
|
|||||||
debug port information from the Configuration Manager
|
debug port information from the Configuration Manager
|
||||||
*/
|
*/
|
||||||
GET_OBJECT_LIST (
|
GET_OBJECT_LIST (
|
||||||
EObjNameSpaceArm,
|
EObjNameSpaceArchCommon,
|
||||||
EArmObjSerialDebugPortInfo,
|
EArchCommonObjSerialDebugPortInfo,
|
||||||
CM_ARM_SERIAL_PORT_INFO
|
CM_ARCH_COMMON_SERIAL_PORT_INFO
|
||||||
);
|
);
|
||||||
|
|
||||||
/** Initialize the PL011/SBSA UART with the parameters obtained from
|
/** Initialize the PL011/SBSA UART with the parameters obtained from
|
||||||
@ -198,7 +198,7 @@ GET_OBJECT_LIST (
|
|||||||
STATIC
|
STATIC
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
SetupDebugUart (
|
SetupDebugUart (
|
||||||
IN CONST CM_ARM_SERIAL_PORT_INFO *CONST SerialPortInfo
|
IN CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *CONST SerialPortInfo
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
@ -330,7 +330,7 @@ BuildDbg2TableEx (
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
CM_ARM_SERIAL_PORT_INFO *SerialPortInfo;
|
CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo;
|
||||||
UINT32 SerialPortCount;
|
UINT32 SerialPortCount;
|
||||||
EFI_ACPI_DESCRIPTION_HEADER **TableList;
|
EFI_ACPI_DESCRIPTION_HEADER **TableList;
|
||||||
|
|
||||||
@ -358,7 +358,7 @@ BuildDbg2TableEx (
|
|||||||
|
|
||||||
*Table = NULL;
|
*Table = NULL;
|
||||||
|
|
||||||
Status = GetEArmObjSerialDebugPortInfo (
|
Status = GetEArchCommonObjSerialDebugPortInfo (
|
||||||
CfgMgrProtocol,
|
CfgMgrProtocol,
|
||||||
CM_NULL_TOKEN,
|
CM_NULL_TOKEN,
|
||||||
&SerialPortInfo,
|
&SerialPortInfo,
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
Requirements:
|
Requirements:
|
||||||
The following Configuration Manager Object(s) are required by
|
The following Configuration Manager Object(s) are required by
|
||||||
this Generator:
|
this Generator:
|
||||||
- EArmObjSerialConsolePortInfo
|
- EArchCommonObjConsolePortInfo
|
||||||
|
|
||||||
NOTE: This implementation ignores the possibility that the Serial settings may
|
NOTE: This implementation ignores the possibility that the Serial settings may
|
||||||
be modified from the UEFI Shell. A more complex handler would be needed
|
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.
|
Port Information from the Configuration Manager.
|
||||||
*/
|
*/
|
||||||
GET_OBJECT_LIST (
|
GET_OBJECT_LIST (
|
||||||
EObjNameSpaceArm,
|
EObjNameSpaceArchCommon,
|
||||||
EArmObjSerialConsolePortInfo,
|
EArchCommonObjConsolePortInfo,
|
||||||
CM_ARM_SERIAL_PORT_INFO
|
CM_ARCH_COMMON_SERIAL_PORT_INFO
|
||||||
)
|
)
|
||||||
|
|
||||||
/** Free any resources allocated for constructing the tables.
|
/** Free any resources allocated for constructing the tables.
|
||||||
@ -201,7 +201,7 @@ BuildSpcrTableEx (
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
CM_ARM_SERIAL_PORT_INFO *SerialPortInfo;
|
CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo;
|
||||||
UINT32 SerialPortCount;
|
UINT32 SerialPortCount;
|
||||||
EFI_ACPI_DESCRIPTION_HEADER **TableList;
|
EFI_ACPI_DESCRIPTION_HEADER **TableList;
|
||||||
|
|
||||||
@ -229,7 +229,7 @@ BuildSpcrTableEx (
|
|||||||
|
|
||||||
*Table = NULL;
|
*Table = NULL;
|
||||||
|
|
||||||
Status = GetEArmObjSerialConsolePortInfo (
|
Status = GetEArchCommonObjConsolePortInfo (
|
||||||
CfgMgrProtocol,
|
CfgMgrProtocol,
|
||||||
CM_NULL_TOKEN,
|
CM_NULL_TOKEN,
|
||||||
&SerialPortInfo,
|
&SerialPortInfo,
|
||||||
|
@ -29,16 +29,16 @@
|
|||||||
Requirements:
|
Requirements:
|
||||||
The following Configuration Manager Object(s) are required by
|
The following Configuration Manager Object(s) are required by
|
||||||
this Generator:
|
this Generator:
|
||||||
- EArmObjSerialPortInfo
|
- EArchCommonObjSerialPortInfo
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** This macro expands to a function that retrieves the Serial-port
|
/** This macro expands to a function that retrieves the Serial-port
|
||||||
information from the Configuration Manager.
|
information from the Configuration Manager.
|
||||||
*/
|
*/
|
||||||
GET_OBJECT_LIST (
|
GET_OBJECT_LIST (
|
||||||
EObjNameSpaceArm,
|
EObjNameSpaceArchCommon,
|
||||||
EArmObjSerialPortInfo,
|
EArchCommonObjSerialPortInfo,
|
||||||
CM_ARM_SERIAL_PORT_INFO
|
CM_ARCH_COMMON_SERIAL_PORT_INFO
|
||||||
);
|
);
|
||||||
|
|
||||||
/** Starting value for the UID to represent the serial ports.
|
/** Starting value for the UID to represent the serial ports.
|
||||||
@ -168,7 +168,7 @@ BuildSsdtSerialPortTableEx (
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
CM_ARM_SERIAL_PORT_INFO *SerialPortInfo;
|
CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo;
|
||||||
UINT32 SerialPortCount;
|
UINT32 SerialPortCount;
|
||||||
UINTN Index;
|
UINTN Index;
|
||||||
CHAR8 NewName[AML_NAME_SEG_SIZE + 1];
|
CHAR8 NewName[AML_NAME_SEG_SIZE + 1];
|
||||||
@ -185,7 +185,7 @@ BuildSsdtSerialPortTableEx (
|
|||||||
|
|
||||||
*Table = NULL;
|
*Table = NULL;
|
||||||
|
|
||||||
Status = GetEArmObjSerialPortInfo (
|
Status = GetEArchCommonObjSerialPortInfo (
|
||||||
CfgMgrProtocol,
|
CfgMgrProtocol,
|
||||||
CM_NULL_TOKEN,
|
CM_NULL_TOKEN,
|
||||||
&SerialPortInfo,
|
&SerialPortInfo,
|
||||||
|
@ -150,47 +150,44 @@ CM_OBJECT_TOKEN_FIXER TokenFixer[EArmObjMax] = {
|
|||||||
NULL, ///< 4 - GIC MSI Frame Info
|
NULL, ///< 4 - GIC MSI Frame Info
|
||||||
NULL, ///< 5 - GIC Redistributor Info
|
NULL, ///< 5 - GIC Redistributor Info
|
||||||
NULL, ///< 6 - GIC ITS Info
|
NULL, ///< 6 - GIC ITS Info
|
||||||
NULL, ///< 7 - Serial Console Port Info
|
NULL, ///< 7 - Generic Timer Info
|
||||||
NULL, ///< 8 - Serial Debug Port Info
|
NULL, ///< 8 - Platform GT Block Info
|
||||||
NULL, ///< 9 - Generic Timer Info
|
NULL, ///< 9 - Generic Timer Block Frame Info
|
||||||
NULL, ///< 10 - Platform GT Block Info
|
NULL, ///< 10 - Platform Generic Watchdog
|
||||||
NULL, ///< 11 - Generic Timer Block Frame Info
|
NULL, ///< 11 - PCI Configuration Space Info
|
||||||
NULL, ///< 12 - Platform Generic Watchdog
|
NULL, ///< 12 - Hypervisor Vendor Id
|
||||||
NULL, ///< 13 - PCI Configuration Space Info
|
NULL, ///< 13 - Fixed feature flags for FADT
|
||||||
NULL, ///< 14 - Hypervisor Vendor Id
|
TokenFixerItsGroup, ///< 14 - ITS Group
|
||||||
NULL, ///< 15 - Fixed feature flags for FADT
|
TokenFixerNamedComponentNode, ///< 15 - Named Component
|
||||||
TokenFixerItsGroup, ///< 16 - ITS Group
|
TokenFixerRootComplexNode, ///< 16 - Root Complex
|
||||||
TokenFixerNamedComponentNode, ///< 17 - Named Component
|
TokenFixerNotImplemented, ///< 17 - SMMUv1 or SMMUv2
|
||||||
TokenFixerRootComplexNode, ///< 18 - Root Complex
|
TokenFixerSmmuV3Node, ///< 18 - SMMUv3
|
||||||
TokenFixerNotImplemented, ///< 19 - SMMUv1 or SMMUv2
|
TokenFixerNotImplemented, ///< 19 - PMCG
|
||||||
TokenFixerSmmuV3Node, ///< 20 - SMMUv3
|
NULL, ///< 20 - GIC ITS Identifier Array
|
||||||
TokenFixerNotImplemented, ///< 21 - PMCG
|
NULL, ///< 21 - ID Mapping Array
|
||||||
NULL, ///< 22 - GIC ITS Identifier Array
|
NULL, ///< 22 - SMMU Interrupt Array
|
||||||
NULL, ///< 23 - ID Mapping Array
|
TokenFixerNotImplemented, ///< 23 - Processor Hierarchy Info
|
||||||
NULL, ///< 24 - SMMU Interrupt Array
|
TokenFixerNotImplemented, ///< 24 - Cache Info
|
||||||
TokenFixerNotImplemented, ///< 25 - Processor Hierarchy Info
|
NULL, ///< 25 - Memory Affinity Info
|
||||||
TokenFixerNotImplemented, ///< 26 - Cache Info
|
NULL, ///< 26 - Memory Affinity Info
|
||||||
NULL, ///< 27 - CM Object Reference
|
NULL, ///< 27 - Device Handle Acpi
|
||||||
NULL, ///< 28 - Memory Affinity Info
|
NULL, ///< 28 - Device Handle Pci
|
||||||
NULL, ///< 29 - Device Handle Acpi
|
NULL, ///< 29 - Generic Initiator Affinity
|
||||||
NULL, ///< 30 - Device Handle Pci
|
NULL, ///< 30 - CMN-600 Info
|
||||||
NULL, ///< 31 - Generic Initiator Affinity
|
NULL, ///< 31 - Lpi Info
|
||||||
NULL, ///< 32 - Generic Serial Port Info
|
NULL, ///< 32 - Pci Address Map Info
|
||||||
NULL, ///< 33 - CMN-600 Info
|
NULL, ///< 33 - Pci Interrupt Map Info
|
||||||
NULL, ///< 34 - Lpi Info
|
NULL, ///< 34 - Reserved Memory Range Node
|
||||||
NULL, ///< 35 - Pci Address Map Info
|
NULL, ///< 35 - Memory Range Descriptor
|
||||||
NULL, ///< 36 - Pci Interrupt Map Info
|
NULL, ///< 36 - Continuous Performance Control Info
|
||||||
NULL, ///< 37 - Reserved Memory Range Node
|
NULL, ///< 37 - Pcc Subspace Type 0 Info
|
||||||
NULL, ///< 38 - Memory Range Descriptor
|
NULL, ///< 38 - Pcc Subspace Type 2 Info
|
||||||
NULL, ///< 39 - Continuous Performance Control Info
|
NULL, ///< 39 - Pcc Subspace Type 2 Info
|
||||||
NULL, ///< 40 - Pcc Subspace Type 0 Info
|
NULL, ///< 40 - Pcc Subspace Type 3 Info
|
||||||
NULL, ///< 41 - Pcc Subspace Type 2 Info
|
NULL, ///< 41 - Pcc Subspace Type 4 Info
|
||||||
NULL, ///< 42 - Pcc Subspace Type 2 Info
|
NULL, ///< 42 - Pcc Subspace Type 5 Info
|
||||||
NULL, ///< 43 - Pcc Subspace Type 3 Info
|
NULL, ///< 43 - Embedded Trace Extension/Module Info
|
||||||
NULL, ///< 44 - Pcc Subspace Type 4 Info
|
NULL ///< 44 - P-State Dependency (PSD) Info
|
||||||
NULL, ///< 45 - Pcc Subspace Type 5 Info
|
|
||||||
NULL, ///< 46 - Embedded Trace Extension/Module Info
|
|
||||||
NULL ///< 47 - P-State Dependency (PSD) Info
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/** CmObj token fixer.
|
/** CmObj token fixer.
|
||||||
|
@ -46,7 +46,7 @@ extern CHAR8 ssdtserialporttemplate_aml_code[];
|
|||||||
|
|
||||||
/** Validate the Serial Port Information.
|
/** 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.
|
@param [in] SerialPortCount Count of SerialPort in the table.
|
||||||
|
|
||||||
@retval EFI_SUCCESS Success.
|
@retval EFI_SUCCESS Success.
|
||||||
@ -55,12 +55,12 @@ extern CHAR8 ssdtserialporttemplate_aml_code[];
|
|||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
ValidateSerialPortInfo (
|
ValidateSerialPortInfo (
|
||||||
IN CONST CM_ARM_SERIAL_PORT_INFO *SerialPortInfoTable,
|
IN CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfoTable,
|
||||||
IN UINT32 SerialPortCount
|
IN UINT32 SerialPortCount
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
UINT32 Index;
|
UINT32 Index;
|
||||||
CONST CM_ARM_SERIAL_PORT_INFO *SerialPortInfo;
|
CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo;
|
||||||
|
|
||||||
if ((SerialPortInfoTable == NULL) ||
|
if ((SerialPortInfoTable == NULL) ||
|
||||||
(SerialPortCount == 0))
|
(SerialPortCount == 0))
|
||||||
@ -165,7 +165,7 @@ EFIAPI
|
|||||||
FixupIds (
|
FixupIds (
|
||||||
IN AML_ROOT_NODE_HANDLE RootNodeHandle,
|
IN AML_ROOT_NODE_HANDLE RootNodeHandle,
|
||||||
IN CONST UINT64 Uid,
|
IN CONST UINT64 Uid,
|
||||||
IN CONST CM_ARM_SERIAL_PORT_INFO *SerialPortInfo
|
IN CONST CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
@ -291,7 +291,7 @@ EFI_STATUS
|
|||||||
EFIAPI
|
EFIAPI
|
||||||
FixupCrs (
|
FixupCrs (
|
||||||
IN AML_ROOT_NODE_HANDLE RootNodeHandle,
|
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;
|
EFI_STATUS Status;
|
||||||
@ -367,7 +367,7 @@ EFI_STATUS
|
|||||||
EFIAPI
|
EFIAPI
|
||||||
FixupName (
|
FixupName (
|
||||||
IN AML_ROOT_NODE_HANDLE RootNodeHandle,
|
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 CHAR8 *Name
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@ -411,7 +411,7 @@ EFI_STATUS
|
|||||||
EFIAPI
|
EFIAPI
|
||||||
FixupSerialPortInfo (
|
FixupSerialPortInfo (
|
||||||
IN AML_ROOT_NODE_HANDLE RootNodeHandle,
|
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 CHAR8 *Name,
|
||||||
IN CONST UINT64 Uid,
|
IN CONST UINT64 Uid,
|
||||||
OUT EFI_ACPI_DESCRIPTION_HEADER **Table
|
OUT EFI_ACPI_DESCRIPTION_HEADER **Table
|
||||||
@ -481,7 +481,7 @@ EFI_STATUS
|
|||||||
EFIAPI
|
EFIAPI
|
||||||
BuildSsdtSerialPortTable (
|
BuildSsdtSerialPortTable (
|
||||||
IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *AcpiTableInfo,
|
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 CHAR8 *Name,
|
||||||
IN CONST UINT64 Uid,
|
IN CONST UINT64 Uid,
|
||||||
OUT EFI_ACPI_DESCRIPTION_HEADER **Table
|
OUT EFI_ACPI_DESCRIPTION_HEADER **Table
|
||||||
|
@ -122,10 +122,10 @@ STATIC CONST CM_OBJ_PARSER CmArmGicItsInfoParser[] = {
|
|||||||
{ "ProximityDomain", 4, "0x%x", NULL }
|
{ "ProximityDomain", 4, "0x%x", NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
/** A parser for EArmObjSerialConsolePortInfo,
|
/** A parser for EArchCommonObjConsolePortInfo,
|
||||||
EArmObjSerialDebugPortInfo and EArmObjSerialPortInfo.
|
EArchCommonObjSerialDebugPortInfo and EArchCommonObjSerialPortInfo.
|
||||||
*/
|
*/
|
||||||
STATIC CONST CM_OBJ_PARSER CmArmSerialPortInfoParser[] = {
|
STATIC CONST CM_OBJ_PARSER CmArchCommonSerialPortInfoParser[] = {
|
||||||
{ "BaseAddress", 8, "0x%llx", NULL },
|
{ "BaseAddress", 8, "0x%llx", NULL },
|
||||||
{ "Interrupt", 4, "0x%x", NULL },
|
{ "Interrupt", 4, "0x%x", NULL },
|
||||||
{ "BaudRate", 8, "0x%llx", NULL },
|
{ "BaudRate", 8, "0x%llx", NULL },
|
||||||
@ -672,6 +672,9 @@ STATIC CONST CM_OBJ_PARSER CmArmPsdInfoParser[] = {
|
|||||||
STATIC CONST CM_OBJ_PARSER_ARRAY ArchCommonNamespaceObjectParser[] = {
|
STATIC CONST CM_OBJ_PARSER_ARRAY ArchCommonNamespaceObjectParser[] = {
|
||||||
CM_PARSER_ADD_OBJECT_RESERVED (EArchCommonObjReserved),
|
CM_PARSER_ADD_OBJECT_RESERVED (EArchCommonObjReserved),
|
||||||
CM_PARSER_ADD_OBJECT (EArchCommonObjPowerManagementProfileInfo,CmArchCommonPowerManagementProfileInfoParser),
|
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)
|
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 (EArmObjGicMsiFrameInfo, CmArmGicMsiFrameInfoParser),
|
||||||
CM_PARSER_ADD_OBJECT (EArmObjGicRedistributorInfo, CmArmGicRedistInfoParser),
|
CM_PARSER_ADD_OBJECT (EArmObjGicRedistributorInfo, CmArmGicRedistInfoParser),
|
||||||
CM_PARSER_ADD_OBJECT (EArmObjGicItsInfo, CmArmGicItsInfoParser),
|
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 (EArmObjGenericTimerInfo, CmArmGenericTimerInfoParser),
|
||||||
CM_PARSER_ADD_OBJECT (EArmObjPlatformGTBlockInfo, CmArmGTBlockInfoParser),
|
CM_PARSER_ADD_OBJECT (EArmObjPlatformGTBlockInfo, CmArmGTBlockInfoParser),
|
||||||
CM_PARSER_ADD_OBJECT (EArmObjGTBlockTimerFrameInfo, CmArmGTBlockTimerFrameInfoParser),
|
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 (EArmObjDeviceHandleAcpi, CmArmDeviceHandleAcpiParser),
|
||||||
CM_PARSER_ADD_OBJECT (EArmObjDeviceHandlePci, CmArmDeviceHandlePciParser),
|
CM_PARSER_ADD_OBJECT (EArmObjDeviceHandlePci, CmArmDeviceHandlePciParser),
|
||||||
CM_PARSER_ADD_OBJECT (EArmObjGenericInitiatorAffinityInfo,CmArmGenericInitiatorAffinityInfoParser),
|
CM_PARSER_ADD_OBJECT (EArmObjGenericInitiatorAffinityInfo,CmArmGenericInitiatorAffinityInfoParser),
|
||||||
CM_PARSER_ADD_OBJECT (EArmObjSerialPortInfo, CmArmSerialPortInfoParser),
|
|
||||||
CM_PARSER_ADD_OBJECT (EArmObjCmn600Info, CmArmCmn600InfoParser),
|
CM_PARSER_ADD_OBJECT (EArmObjCmn600Info, CmArmCmn600InfoParser),
|
||||||
CM_PARSER_ADD_OBJECT (EArmObjLpiInfo, CmArmLpiInfoParser),
|
CM_PARSER_ADD_OBJECT (EArmObjLpiInfo, CmArmLpiInfoParser),
|
||||||
CM_PARSER_ADD_OBJECT (EArmObjPciAddressMapInfo, CmArmPciAddressMapInfoParser),
|
CM_PARSER_ADD_OBJECT (EArmObjPciAddressMapInfo, CmArmPciAddressMapInfoParser),
|
||||||
|
@ -71,7 +71,7 @@ CONST COMPATIBILITY_INFO SerialSbsaCompatibleInfo = {
|
|||||||
|
|
||||||
@param [in] Fdt Pointer to a Flattened Device Tree (Fdt).
|
@param [in] Fdt Pointer to a Flattened Device Tree (Fdt).
|
||||||
@param [in] SerialPortNode Offset of a serial-port node.
|
@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_SUCCESS The function completed successfully.
|
||||||
@retval EFI_ABORTED An error occurred.
|
@retval EFI_ABORTED An error occurred.
|
||||||
@ -84,7 +84,7 @@ EFIAPI
|
|||||||
SerialPortNodeParser (
|
SerialPortNodeParser (
|
||||||
IN CONST VOID *Fdt,
|
IN CONST VOID *Fdt,
|
||||||
IN INT32 SerialPortNode,
|
IN INT32 SerialPortNode,
|
||||||
IN CM_ARM_SERIAL_PORT_INFO *SerialPortInfo
|
IN CM_ARCH_COMMON_SERIAL_PORT_INFO *SerialPortInfo
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
@ -313,7 +313,7 @@ GetSerialConsoleNode (
|
|||||||
return EFI_SUCCESS;
|
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] FdtParserHandle A handle to the parser instance.
|
||||||
@param [in] GenericSerialInfo Pointer to a serial port info list.
|
@param [in] GenericSerialInfo Pointer to a serial port info list.
|
||||||
@ -331,9 +331,9 @@ EFI_STATUS
|
|||||||
EFIAPI
|
EFIAPI
|
||||||
ArmSerialPortInfoDispatch (
|
ArmSerialPortInfoDispatch (
|
||||||
IN CONST FDT_HW_INFO_PARSER_HANDLE FdtParserHandle,
|
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 INT32 NodeCount,
|
||||||
IN EARM_OBJECT_ID SerialObjectId
|
IN EARCH_COMMON_OBJECT_ID SerialObjectId
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
@ -344,9 +344,9 @@ ArmSerialPortInfoDispatch (
|
|||||||
return EFI_INVALID_PARAMETER;
|
return EFI_INVALID_PARAMETER;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((SerialObjectId != EArmObjSerialPortInfo) &&
|
if ((SerialObjectId != EArchCommonObjSerialPortInfo) &&
|
||||||
(SerialObjectId != EArmObjSerialDebugPortInfo) &&
|
(SerialObjectId != EArchCommonObjSerialDebugPortInfo) &&
|
||||||
(SerialObjectId != EArmObjSerialConsolePortInfo))
|
(SerialObjectId != EArchCommonObjConsolePortInfo))
|
||||||
{
|
{
|
||||||
ASSERT (0);
|
ASSERT (0);
|
||||||
return EFI_INVALID_PARAMETER;
|
return EFI_INVALID_PARAMETER;
|
||||||
@ -354,10 +354,10 @@ ArmSerialPortInfoDispatch (
|
|||||||
|
|
||||||
// Dispatch the Generic Serial ports
|
// Dispatch the Generic Serial ports
|
||||||
Status = CreateCmObjDesc (
|
Status = CreateCmObjDesc (
|
||||||
CREATE_CM_ARM_OBJECT_ID (SerialObjectId),
|
CREATE_CM_ARCH_COMMON_OBJECT_ID (SerialObjectId),
|
||||||
NodeCount,
|
NodeCount,
|
||||||
GenericSerialInfo,
|
GenericSerialInfo,
|
||||||
sizeof (CM_ARM_SERIAL_PORT_INFO) * NodeCount,
|
sizeof (CM_ARCH_COMMON_SERIAL_PORT_INFO) * NodeCount,
|
||||||
&NewCmObjDesc
|
&NewCmObjDesc
|
||||||
);
|
);
|
||||||
if (EFI_ERROR (Status)) {
|
if (EFI_ERROR (Status)) {
|
||||||
@ -372,19 +372,19 @@ ArmSerialPortInfoDispatch (
|
|||||||
return Status;
|
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.
|
This parser expects FdtBranch to be the debug serial-port node.
|
||||||
At most one CmObj is created.
|
At most one CmObj is created.
|
||||||
The following structure is populated:
|
The following structure is populated:
|
||||||
typedef struct CmArmSerialPortInfo {
|
typedef struct EArchCommonSerialPortInfo {
|
||||||
UINT64 BaseAddress; // {Populated}
|
UINT64 BaseAddress; // {Populated}
|
||||||
UINT32 Interrupt; // {Populated}
|
UINT32 Interrupt; // {Populated}
|
||||||
UINT64 BaudRate; // {default}
|
UINT64 BaudRate; // {default}
|
||||||
UINT32 Clock; // {Populated}
|
UINT32 Clock; // {Populated}
|
||||||
UINT16 PortSubtype; // {Populated}
|
UINT16 PortSubtype; // {Populated}
|
||||||
UINT64 BaseAddressLength // {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,
|
A parser parses a Device Tree to populate a specific CmObj type. None,
|
||||||
one or many CmObj can be created by the parser.
|
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] FdtParserHandle A handle to the parser instance.
|
||||||
@param [in] FdtBranch When searching for DT node name, restrict
|
@param [in] FdtBranch When searching for DT node name, restrict
|
||||||
the search to this Device Tree branch.
|
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_SUCCESS The function completed successfully.
|
||||||
@retval EFI_ABORTED An error occurred.
|
@retval EFI_ABORTED An error occurred.
|
||||||
@ -410,14 +411,14 @@ EFIAPI
|
|||||||
ArmSerialPortInfoParser (
|
ArmSerialPortInfoParser (
|
||||||
IN CONST FDT_HW_INFO_PARSER_HANDLE FdtParserHandle,
|
IN CONST FDT_HW_INFO_PARSER_HANDLE FdtParserHandle,
|
||||||
IN INT32 FdtBranch,
|
IN INT32 FdtBranch,
|
||||||
IN EARM_OBJECT_ID SerialObjectId
|
IN EARCH_COMMON_OBJECT_ID SerialObjectId
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
CM_ARM_SERIAL_PORT_INFO SerialInfo;
|
CM_ARCH_COMMON_SERIAL_PORT_INFO SerialInfo;
|
||||||
|
|
||||||
if ((SerialObjectId != EArmObjSerialDebugPortInfo) &&
|
if ((SerialObjectId != EArchCommonObjSerialDebugPortInfo) &&
|
||||||
(SerialObjectId != EArmObjSerialConsolePortInfo))
|
(SerialObjectId != EArchCommonObjConsolePortInfo))
|
||||||
{
|
{
|
||||||
ASSERT (0);
|
ASSERT (0);
|
||||||
return EFI_INVALID_PARAMETER;
|
return EFI_INVALID_PARAMETER;
|
||||||
@ -447,11 +448,11 @@ ArmSerialPortInfoParser (
|
|||||||
|
|
||||||
/** SerialPort dispatcher.
|
/** 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:
|
the following CM_OBJ_ID:
|
||||||
- EArmObjSerialConsolePortInfo
|
- EArchCommonObjConsolePortInfo
|
||||||
- EArmObjSerialDebugPortInfo
|
- EArchCommonObjSerialDebugPortInfo
|
||||||
- EArmObjSerialPortInfo
|
- EArchCommonObjSerialPortInfo
|
||||||
|
|
||||||
A parser parses a Device Tree to populate a specific CmObj type. None,
|
A parser parses a Device Tree to populate a specific CmObj type. None,
|
||||||
one or many CmObj can be created by the parser.
|
one or many CmObj can be created by the parser.
|
||||||
@ -484,7 +485,7 @@ SerialPortDispatcher (
|
|||||||
UINT32 Index;
|
UINT32 Index;
|
||||||
UINT32 SerialNodeCount;
|
UINT32 SerialNodeCount;
|
||||||
UINT32 SerialNodesRemaining;
|
UINT32 SerialNodesRemaining;
|
||||||
CM_ARM_SERIAL_PORT_INFO *GenericSerialInfo;
|
CM_ARCH_COMMON_SERIAL_PORT_INFO *GenericSerialInfo;
|
||||||
UINT32 GenericSerialIndex;
|
UINT32 GenericSerialIndex;
|
||||||
VOID *Fdt;
|
VOID *Fdt;
|
||||||
|
|
||||||
@ -531,7 +532,7 @@ SerialPortDispatcher (
|
|||||||
Status = ArmSerialPortInfoParser (
|
Status = ArmSerialPortInfoParser (
|
||||||
FdtParserHandle,
|
FdtParserHandle,
|
||||||
SerialConsoleNode,
|
SerialConsoleNode,
|
||||||
EArmObjSerialConsolePortInfo
|
EArchCommonObjConsolePortInfo
|
||||||
);
|
);
|
||||||
if (EFI_ERROR (Status)) {
|
if (EFI_ERROR (Status)) {
|
||||||
ASSERT (0);
|
ASSERT (0);
|
||||||
@ -550,7 +551,7 @@ SerialPortDispatcher (
|
|||||||
SerialNodesRemaining--;
|
SerialNodesRemaining--;
|
||||||
GenericSerialInfo = AllocateZeroPool (
|
GenericSerialInfo = AllocateZeroPool (
|
||||||
SerialNodesRemaining *
|
SerialNodesRemaining *
|
||||||
sizeof (CM_ARM_SERIAL_PORT_INFO)
|
sizeof (CM_ARCH_COMMON_SERIAL_PORT_INFO)
|
||||||
);
|
);
|
||||||
if (GenericSerialInfo == NULL) {
|
if (GenericSerialInfo == NULL) {
|
||||||
ASSERT (0);
|
ASSERT (0);
|
||||||
@ -589,7 +590,7 @@ SerialPortDispatcher (
|
|||||||
Status = ArmSerialPortInfoParser (
|
Status = ArmSerialPortInfoParser (
|
||||||
FdtParserHandle,
|
FdtParserHandle,
|
||||||
SerialDebugNode,
|
SerialDebugNode,
|
||||||
EArmObjSerialDebugPortInfo
|
EArchCommonObjSerialDebugPortInfo
|
||||||
);
|
);
|
||||||
if (EFI_ERROR (Status)) {
|
if (EFI_ERROR (Status)) {
|
||||||
ASSERT (0);
|
ASSERT (0);
|
||||||
@ -620,7 +621,7 @@ SerialPortDispatcher (
|
|||||||
FdtParserHandle,
|
FdtParserHandle,
|
||||||
GenericSerialInfo,
|
GenericSerialInfo,
|
||||||
GenericSerialIndex,
|
GenericSerialIndex,
|
||||||
EArmObjSerialPortInfo
|
EArchCommonObjSerialPortInfo
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,11 +14,11 @@
|
|||||||
|
|
||||||
/** SerialPort dispatcher.
|
/** 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:
|
the following CM_OBJ_ID:
|
||||||
- EArmObjSerialConsolePortInfo
|
- EArchCommonObjConsolePortInfo
|
||||||
- EArmObjSerialDebugPortInfo
|
- EArchCommonObjSerialDebugPortInfo
|
||||||
- EArmObjSerialPortInfo
|
- EArchCommonObjSerialPortInfo
|
||||||
|
|
||||||
A parser parses a Device Tree to populate a specific CmObj type. None,
|
A parser parses a Device Tree to populate a specific CmObj type. None,
|
||||||
one or many CmObj can be created by the parser.
|
one or many CmObj can be created by the parser.
|
||||||
|
@ -447,47 +447,44 @@ The CM_OBJECT_ID type is used to identify the Configuration Manager
|
|||||||
| 4 | GIC MSI Frame Info | |
|
| 4 | GIC MSI Frame Info | |
|
||||||
| 5 | GIC Redistributor Info | |
|
| 5 | GIC Redistributor Info | |
|
||||||
| 6 | GIC ITS Info | |
|
| 6 | GIC ITS Info | |
|
||||||
| 7 | Serial Console Port Info | Move to Arch Common NS |
|
| 7 | Generic Timer Info | |
|
||||||
| 8 | Serial Debug Port Info | Move to Arch Common NS |
|
| 8 | Platform GT Block Info | |
|
||||||
| 9 | Generic Timer Info | |
|
| 9 | Generic Timer Block Frame Info | |
|
||||||
| 10 | Platform GT Block Info | |
|
| 10 | Platform Generic Watchdog | |
|
||||||
| 11 | Generic Timer Block Frame Info | |
|
| 11 | PCI Configuration Space Info | Move to Arch Common NS |
|
||||||
| 12 | Platform Generic Watchdog | |
|
| 12 | Hypervisor Vendor Id | Move to Arch Common NS |
|
||||||
| 13 | PCI Configuration Space Info | Move to Arch Common NS |
|
| 13 | Fixed feature flags for FADT | Move to Arch Common NS |
|
||||||
| 14 | Hypervisor Vendor Id | Move to Arch Common NS |
|
| 14 | ITS Group | |
|
||||||
| 15 | Fixed feature flags for FADT | Move to Arch Common NS |
|
| 15 | Named Component | |
|
||||||
| 16 | ITS Group | |
|
| 16 | Root Complex | |
|
||||||
| 17 | Named Component | |
|
| 17 | SMMUv1 or SMMUv2 | |
|
||||||
| 18 | Root Complex | |
|
| 18 | SMMUv3 | |
|
||||||
| 19 | SMMUv1 or SMMUv2 | |
|
| 19 | PMCG | |
|
||||||
| 20 | SMMUv3 | |
|
| 20 | GIC ITS Identifier Array | |
|
||||||
| 21 | PMCG | |
|
| 21 | ID Mapping Array | |
|
||||||
| 22 | GIC ITS Identifier Array | |
|
| 22 | SMMU Interrupt Array | |
|
||||||
| 23 | ID Mapping Array | |
|
| 23 | Processor Hierarchy Info | Move to Arch Common NS |
|
||||||
| 24 | SMMU Interrupt Array | |
|
| 24 | Cache Info | Move to Arch Common NS |
|
||||||
| 25 | Processor Hierarchy Info | Move to Arch Common NS |
|
| 25 | CM Object Reference | Move to Arch Common NS |
|
||||||
| 26 | Cache Info | Move to Arch Common NS |
|
| 26 | Memory Affinity Info | Move to Arch Common NS |
|
||||||
| 27 | CM Object Reference | Move to Arch Common NS |
|
| 27 | Device Handle Acpi | Move to Arch Common NS |
|
||||||
| 28 | Memory Affinity Info | Move to Arch Common NS |
|
| 28 | Device Handle PCI | Move to Arch Common NS |
|
||||||
| 29 | Device Handle Acpi | Move to Arch Common NS |
|
| 29 | Generic Initiator Affinity Info | Move to Arch Common NS |
|
||||||
| 30 | Device Handle PCI | Move to Arch Common NS |
|
| 30 | CMN 600 Info | |
|
||||||
| 31 | Generic Initiator Affinity Info | Move to Arch Common NS |
|
| 31 | Low Power Idle State Info | Move to Arch Common NS |
|
||||||
| 32 | Serial Port Info | Move to Arch Common NS |
|
| 32 | PCI Address Map Info | Move to Arch Common NS |
|
||||||
| 33 | CMN 600 Info | |
|
| 33 | PCI Interrupt Map Info | Move to Arch Common NS |
|
||||||
| 34 | Low Power Idle State Info | Move to Arch Common NS |
|
| 34 | Reserved Memory Range Node | |
|
||||||
| 35 | PCI Address Map Info | Move to Arch Common NS |
|
| 35 | Memory Range Descriptor | |
|
||||||
| 36 | PCI Interrupt Map Info | Move to Arch Common NS |
|
| 36 | Continuous Performance Control Info | Move to Arch Common NS |
|
||||||
| 37 | Reserved Memory Range Node | |
|
| 37 | Pcc Subspace Type 0 Info | Move to Arch Common NS |
|
||||||
| 38 | Memory Range Descriptor | |
|
| 38 | Pcc Subspace Type 1 Info | Move to Arch Common NS |
|
||||||
| 39 | Continuous Performance Control Info | Move to Arch Common NS |
|
| 39 | Pcc Subspace Type 2 Info | Move to Arch Common NS |
|
||||||
| 40 | Pcc Subspace Type 0 Info | Move to Arch Common NS |
|
| 40 | Pcc Subspace Type 3 Info | Move to Arch Common NS |
|
||||||
| 41 | Pcc Subspace Type 1 Info | Move to Arch Common NS |
|
| 41 | Pcc Subspace Type 4 Info | Move to Arch Common NS |
|
||||||
| 42 | Pcc Subspace Type 2 Info | Move to Arch Common NS |
|
| 42 | Pcc Subspace Type 5 Info | Move to Arch Common NS |
|
||||||
| 43 | Pcc Subspace Type 3 Info | Move to Arch Common NS |
|
| 43 | Embedded Trace Extension/Module Info | |
|
||||||
| 44 | Pcc Subspace Type 4 Info | Move to Arch Common NS |
|
| 44 | P-State Dependency (PSD) 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 |
|
|
||||||
| `*` | All other values are reserved. | |
|
| `*` | All other values are reserved. | |
|
||||||
|
|
||||||
#### Object ID's in the Arch Common Namespace:
|
#### 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 | |
|
| 0 | Reserved | |
|
||||||
| 1 | Power Management Profile Info | |
|
| 1 | Power Management Profile Info | |
|
||||||
|
| 2 | Serial Port Info | |
|
||||||
|
| 3 | Serial Console Port Info | |
|
||||||
|
| 4 | Serial Debug Port Info | |
|
||||||
| `*` | All other values are reserved. | |
|
| `*` | All other values are reserved. | |
|
||||||
|
Loading…
x
Reference in New Issue
Block a user