public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Sami Mujawar" <sami.mujawar@arm.com>
To: Pierre.Gondois@arm.com, devel@edk2.groups.io
Cc: Alexei Fedorov <Alexei.Fedorov@arm.com>, "nd@arm.com" <nd@arm.com>
Subject: Re: [PATCH 10/14] DynamicTablesPkg: Add PCCT related objects
Date: Wed, 26 Oct 2022 13:34:41 +0100	[thread overview]
Message-ID: <21c35b9f-f63a-07d4-164d-1d4736a669a9@arm.com> (raw)
In-Reply-To: <20221010092058.118714-11-Pierre.Gondois@arm.com>

[-- Attachment #1: Type: text/plain, Size: 22401 bytes --]

Hi Pierre,

There are some minor updates that are required for this patch marked 
inline as [SAMI].

If you agree, I will make these changes before merging.

Regards,

Sami Mujawar

On 10/10/2022 10:20 am, Pierre.Gondois@arm.com wrote:
> From: Pierre Gondois<pierre.gondois@arm.com>
>
> Introduce the following CmObj in the ArmNameSpaceObjects:
>   - CM_ARM_MAILBOX_REGISTER_INFO
>   - CM_ARM_PCC_SUBSPACE_CHANNEL_TIMING_INFO
>   - CM_ARM_PCC_SUBSPACE_GENERIC_INFO
>   - CM_ARM_PCC_SUBPSACE_TYPE0_INFO
>   - CM_ARM_PCC_SUBPSACE_TYPE1_INFO
>   - CM_ARM_PCC_SUBPSACE_TYPE2_INFO
>   - CM_ARM_PCC_SUBPSACE_TYPE3_INFO
>   - CM_ARM_PCC_SUBPSACE_TYPE4_INFO
>   - CM_ARM_PCC_SUBPSACE_TYPE5_INFO
>
> These objects allow to describe mailbox registers, pcc timings
> and PCCT subspaces. They prepare the enablement of a PCCT generator.
>
> Also add the CmObjParsers associated to each object.
>
> Signed-off-by: Pierre Gondois<Pierre.Gondois@arm.com>
> ---
>   .../Include/ArmNameSpaceObjects.h             | 277 +++++++++++++++---
>   .../ConfigurationManagerObjectParser.c        | 107 +++++++
>   2 files changed, 341 insertions(+), 43 deletions(-)
>
> diff --git a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
> index d711f3ec5938..5d5a8ce92a09 100644
> --- a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
> +++ b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
> @@ -22,49 +22,55 @@
>       in the ARM Namespace
>   */
>   typedef enum ArmObjectID {
> -  EArmObjReserved,                     ///<  0 - Reserved
> -  EArmObjBootArchInfo,                 ///<  1 - Boot Architecture Info
> -  EArmObjCpuInfo,                      ///<  2 - CPU Info
> -  EArmObjPowerManagementProfileInfo,   ///<  3 - Power Management Profile Info
> -  EArmObjGicCInfo,                     ///<  4 - GIC CPU Interface Info
> -  EArmObjGicDInfo,                     ///<  5 - GIC Distributor Info
> -  EArmObjGicMsiFrameInfo,              ///<  6 - GIC MSI Frame Info
> -  EArmObjGicRedistributorInfo,         ///<  7 - GIC Redistributor Info
> -  EArmObjGicItsInfo,                   ///<  8 - GIC ITS Info
> -  EArmObjSerialConsolePortInfo,        ///<  9 - Serial Console Port Info
> -  EArmObjSerialDebugPortInfo,          ///< 10 - Serial Debug Port Info
> -  EArmObjGenericTimerInfo,             ///< 11 - Generic Timer Info
> -  EArmObjPlatformGTBlockInfo,          ///< 12 - Platform GT Block Info
> -  EArmObjGTBlockTimerFrameInfo,        ///< 13 - Generic Timer Block Frame Info
> -  EArmObjPlatformGenericWatchdogInfo,  ///< 14 - Platform Generic Watchdog
> -  EArmObjPciConfigSpaceInfo,           ///< 15 - PCI Configuration Space Info
> -  EArmObjHypervisorVendorIdentity,     ///< 16 - Hypervisor Vendor Id
> -  EArmObjFixedFeatureFlags,            ///< 17 - Fixed feature flags for FADT
> -  EArmObjItsGroup,                     ///< 18 - ITS Group
> -  EArmObjNamedComponent,               ///< 19 - Named Component
> -  EArmObjRootComplex,                  ///< 20 - Root Complex
> -  EArmObjSmmuV1SmmuV2,                 ///< 21 - SMMUv1 or SMMUv2
> -  EArmObjSmmuV3,                       ///< 22 - SMMUv3
> -  EArmObjPmcg,                         ///< 23 - PMCG
> -  EArmObjGicItsIdentifierArray,        ///< 24 - GIC ITS Identifier Array
> -  EArmObjIdMappingArray,               ///< 25 - ID Mapping Array
> -  EArmObjSmmuInterruptArray,           ///< 26 - SMMU Interrupt Array
> -  EArmObjProcHierarchyInfo,            ///< 27 - Processor Hierarchy Info
> -  EArmObjCacheInfo,                    ///< 28 - Cache Info
> -  EArmObjReserved29,                   ///< 29 - Reserved
> -  EArmObjCmRef,                        ///< 30 - CM Object Reference
> -  EArmObjMemoryAffinityInfo,           ///< 31 - Memory Affinity Info
> -  EArmObjDeviceHandleAcpi,             ///< 32 - Device Handle Acpi
> -  EArmObjDeviceHandlePci,              ///< 33 - Device Handle Pci
> -  EArmObjGenericInitiatorAffinityInfo, ///< 34 - Generic Initiator Affinity
> -  EArmObjSerialPortInfo,               ///< 35 - Generic Serial Port Info
> -  EArmObjCmn600Info,                   ///< 36 - CMN-600 Info
> -  EArmObjLpiInfo,                      ///< 37 - Lpi Info
> -  EArmObjPciAddressMapInfo,            ///< 38 - Pci Address Map Info
> -  EArmObjPciInterruptMapInfo,          ///< 39 - Pci Interrupt Map Info
> -  EArmObjRmr,                          ///< 40 - Reserved Memory Range Node
> -  EArmObjMemoryRangeDescriptor,        ///< 41 - Memory Range Descriptor
> -  EArmObjCpcInfo,                      ///< 42 - Continuous Performance Control Info
> +  EArmObjReserved,                                             ///<  0 - Reserved
> +  EArmObjBootArchInfo,                                         ///<  1 - Boot Architecture Info
> +  EArmObjCpuInfo,                                              ///<  2 - CPU Info
> +  EArmObjPowerManagementProfileInfo,                           ///<  3 - Power Management Profile Info
> +  EArmObjGicCInfo,                                             ///<  4 - GIC CPU Interface Info
> +  EArmObjGicDInfo,                                             ///<  5 - GIC Distributor Info
> +  EArmObjGicMsiFrameInfo,                                      ///<  6 - GIC MSI Frame Info
> +  EArmObjGicRedistributorInfo,                                 ///<  7 - GIC Redistributor Info
> +  EArmObjGicItsInfo,                                           ///<  8 - GIC ITS Info
> +  EArmObjSerialConsolePortInfo,                                ///<  9 - Serial Console Port Info
> +  EArmObjSerialDebugPortInfo,                                  ///< 10 - Serial Debug Port Info
> +  EArmObjGenericTimerInfo,                                     ///< 11 - Generic Timer Info
> +  EArmObjPlatformGTBlockInfo,                                  ///< 12 - Platform GT Block Info
> +  EArmObjGTBlockTimerFrameInfo,                                ///< 13 - Generic Timer Block Frame Info
> +  EArmObjPlatformGenericWatchdogInfo,                          ///< 14 - Platform Generic Watchdog
> +  EArmObjPciConfigSpaceInfo,                                   ///< 15 - PCI Configuration Space Info
> +  EArmObjHypervisorVendorIdentity,                             ///< 16 - Hypervisor Vendor Id
> +  EArmObjFixedFeatureFlags,                                    ///< 17 - Fixed feature flags for FADT
> +  EArmObjItsGroup,                                             ///< 18 - ITS Group
> +  EArmObjNamedComponent,                                       ///< 19 - Named Component
> +  EArmObjRootComplex,                                          ///< 20 - Root Complex
> +  EArmObjSmmuV1SmmuV2,                                         ///< 21 - SMMUv1 or SMMUv2
> +  EArmObjSmmuV3,                                               ///< 22 - SMMUv3
> +  EArmObjPmcg,                                                 ///< 23 - PMCG
> +  EArmObjGicItsIdentifierArray,                                ///< 24 - GIC ITS Identifier Array
> +  EArmObjIdMappingArray,                                       ///< 25 - ID Mapping Array
> +  EArmObjSmmuInterruptArray,                                   ///< 26 - SMMU Interrupt Array
> +  EArmObjProcHierarchyInfo,                                    ///< 27 - Processor Hierarchy Info
> +  EArmObjCacheInfo,                                            ///< 28 - Cache Info
> +  EArmObjReserved29,                                           ///< 29 - Reserved
> +  EArmObjCmRef,                                                ///< 30 - CM Object Reference
> +  EArmObjMemoryAffinityInfo,                                   ///< 31 - Memory Affinity Info
> +  EArmObjDeviceHandleAcpi,                                     ///< 32 - Device Handle Acpi
> +  EArmObjDeviceHandlePci,                                      ///< 33 - Device Handle Pci
> +  EArmObjGenericInitiatorAffinityInfo,                         ///< 34 - Generic Initiator Affinity
> +  EArmObjSerialPortInfo,                                       ///< 35 - Generic Serial Port Info
> +  EArmObjCmn600Info,                                           ///< 36 - CMN-600 Info
> +  EArmObjLpiInfo,                                              ///< 37 - Lpi Info
> +  EArmObjPciAddressMapInfo,                                    ///< 38 - Pci Address Map Info
> +  EArmObjPciInterruptMapInfo,                                  ///< 39 - Pci Interrupt Map Info
> +  EArmObjRmr,                                                  ///< 40 - Reserved Memory Range Node
> +  EArmObjMemoryRangeDescriptor,                                ///< 41 - Memory Range Descriptor
> +  EArmObjCpcInfo,                                              ///< 42 - Continuous Performance Control Info
> +  EArmObjPccSubspaceType0Info,                                 ///< 43 - Pcc Subspace Type 0 Info
> +  EArmObjPccSubspaceType1Info,                                 ///< 44 - Pcc Subspace Type 2 Info
> +  EArmObjPccSubspaceType2Info,                                 ///< 45 - Pcc Subspace Type 2 Info
> +  EArmObjPccSubspaceType3Info,                                 ///< 46 - Pcc Subspace Type 3 Info
> +  EArmObjPccSubspaceType4Info,                                 ///< 47 - Pcc Subspace Type 4 Info
> +  EArmObjPccSubspaceType5Info,                                 ///< 48 - Pcc Subspace Type 5 Info
>     EArmObjMax
>   } EARM_OBJECT_ID;
>   
> @@ -1095,6 +1101,191 @@ typedef struct CmArmRmrDescriptor {
>   */
>   typedef AML_CPC_INFO CM_ARM_CPC_INFO;
>   
> +/** A structure that describes a
> +    PCC Mailbox Register.
> +*/
> +typedef struct PccMailboxRegisterInfo {
> +  /// GAS describing the Register.
> +  EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE    Register;
> +
> +  /** Mask of bits to preserve when writing.
> +
> +    This mask is also used for registers the Register is only read

[SAMI] I think the above line should be

This mask is also used for registers. The Register is only read

[/SAMI]

> +    and there is no write mask required. E.g.:
> +    - Error Status mask (Cf. PCC Subspace types 3/4/5).
> +    - Command Complete Check mask (Cf. PCC Subspace types 3/4/5).
> +  */
> +  UINT64    PreserveMask;
> +
> +  /// Mask of bits to set when writing.
> +  UINT64    WriteMask;
> +} PCC_MAILBOX_REGISTER_INFO;
> +
> +/** A structure that describes the
> +    PCC Subspace CHannel Timings.
> +*/
> +typedef struct PccSubspaceChannelTimingInfo {
> +  /// Expected latency to process a command, in microseconds.
> +  UINT32    NominalLatency;
> +
> +  /** Maximum number of periodic requests that the subspace channel can
> +      support, reported in commands per minute. 0 indicates no limitation.
> +
> +    This field is ignored for the PCC Subspace type 5 (HW Registers based).
> +  */
> +  UINT32    MaxPeriodicAccessRate;
> +
> +  /** Minimum amount of time that OSPM must wait after the completion
> +      of a command before issuing the next command, in microseconds.
> +  */
> +  UINT16    MinRequestTurnaroundTime;
> +} PCC_SUBSPACE_CHANNEL_TIMING_INFO;
> +
> +/** A structure that describes a
> +    Generic PCC Subspace (Type 0).
> +*/
> +typedef struct CmArmPccSubspaceGenericInfo {
> +  /** Subspace Id.
> +
> +  Cf. ACPI 6.4, s14.7 Referencing the PCC address space
> +  Cf. s14.1.2 Platform Communications Channel Subspace Structures
> +      The subspace ID of a PCC subspace is its index in the array of
> +      subspace structures, starting with subspace 0.
> +
> +  At most 256 subspaces are supported.
> +  */
> +  UINT8                               SubspaceId;
> +
> +  /// Table type (or subspace).
> +  UINT8                               Type;
> +
> +  /// Base address of the shared memory range.
> +  /// This field is ignored for the PCC Subspace type 5 (HW Registers based).
> +  UINT64                              BaseAddress;
> +
> +  /// Address length.
> +  UINT64                              AddressLength;
> +
> +  /// Doorbell Register.
> +  PCC_MAILBOX_REGISTER_INFO           DoorbellReg;
> +
> +  /// Mailbox Timings.
> +  PCC_SUBSPACE_CHANNEL_TIMING_INFO    ChannelTiming;
> +} PCC_SUBSPACE_GENERIC_INFO;
> +
> +/** A structure that describes a
> +    PCC Subspace of type 0 (Generic).
> +
> +    ID: EArmObjPccSubspaceType0Info
> +*/
> +typedef PCC_SUBSPACE_GENERIC_INFO CM_ARM_PCC_SUBSPACE_TYPE0_INFO;
> +
> +/** A structure that describes a
> +    PCC Subspace of type 1 (HW-Reduced).
> +
> +    ID: EArmObjPccSubspaceType1Info
> +*/
> +typedef struct CmArmPccSubspaceType1Info {
> +  /** Generic Pcc information.
> +
> +    The Subspace of Type0 contains information that can be re-used
> +    in other Subspace types.
> +  */
> +  PCC_SUBSPACE_GENERIC_INFO    GenericPccInfo;
> +
> +  /// Platform Interrupt.
> +  CM_ARM_GENERIC_INTERRUPT     PlatIrq;
> +} CM_ARM_PCC_SUBSPACE_TYPE1_INFO;
> +
> +/** A structure that describes a
> +    PCC Subspace of type 2 (HW-Reduced).
> +
> +    ID: EArmObjPccSubspaceType2Info
> +*/
> +typedef struct CmArmPccSubspaceType2Info {
> +  /** Generic Pcc information.
> +
> +    The Subspace of Type0 contains information that can be re-used
> +    in other Subspace types.
> +  */
> +  PCC_SUBSPACE_GENERIC_INFO    GenericPccInfo;
> +
> +  /// Platform Interrupt.
> +  CM_ARM_GENERIC_INTERRUPT     PlatIrq;
> +
> +  /// Platform Interrupt Register.
> +  PCC_MAILBOX_REGISTER_INFO    PlatIrqAckReg;
> +} CM_ARM_PCC_SUBSPACE_TYPE2_INFO;
> +
> +/** A structure that describes a
> +    PCC Subspace of type 3 (Extended)
> +
> +    ID: EArmObjPccSubspaceType3Info
> +*/
> +typedef struct CmArmPccSubspaceType3Info {
> +  /** Generic Pcc information.
> +
> +    The Subspace of Type0 contains information that can be re-used
> +    in other Subspace types.
> +  */
> +  PCC_SUBSPACE_GENERIC_INFO    GenericPccInfo;
> +
> +  /// Platform Interrupt.
> +  CM_ARM_GENERIC_INTERRUPT     PlatIrq;
> +
> +  /// Platform Interrupt Register.
> +  PCC_MAILBOX_REGISTER_INFO    PlatIrqAckReg;
> +
> +  /// Command Complete Check Register.
> +  /// The WriteMask field is not used.
> +  PCC_MAILBOX_REGISTER_INFO    CmdCompleteCheckReg;
> +
> +  /// Command Complete Update Register.
> +  PCC_MAILBOX_REGISTER_INFO    CmdCompleteUpdateReg;
> +
> +  /// Error Status Register.
> +  /// The WriteMask field is not used.
> +  PCC_MAILBOX_REGISTER_INFO    ErrorStatusReg;
> +} CM_ARM_PCC_SUBSPACE_TYPE3_INFO;
> +
> +/** A structure that describes a
> +    PCC Subspace of type 4 (Extended)
> +
> +    ID: EArmObjPccSubspaceType4Info
> +*/
> +typedef CM_ARM_PCC_SUBSPACE_TYPE3_INFO CM_ARM_PCC_SUBSPACE_TYPE4_INFO;
> +
> +/** A structure that describes a
> +    PCC Subspace of type 5 (HW-Registers).
> +
> +    ID: EArmObjPccSubspaceType5Info
> +*/
> +typedef struct CmArmPccSubspaceType5Info {
> +  /** Generic Pcc information.
> +
> +    The Subspace of Type0 contains information that can be re-used
> +    in other Subspace types.
> +
> +    MaximumPeriodicAccessRate doesn't need to be populated for
> +    this structure.
> +  */
> +  PCC_SUBSPACE_GENERIC_INFO    GenericPccInfo;
> +
> +  /// Version.
> +  UINT16                       Version;
> +
> +  /// Platform Interrupt.
> +  CM_ARM_GENERIC_INTERRUPT     PlatIrq;
> +
> +  /// Command Complete Check Register.
> +  /// The WriteMask field is not used.
> +  PCC_MAILBOX_REGISTER_INFO    CmdCompleteCheckReg;
> +
> +  /// Error Status Register.
> +  /// The WriteMask field is not used.
> +  PCC_MAILBOX_REGISTER_INFO    ErrorStatusReg;
> +} CM_ARM_PCC_SUBSPACE_TYPE5_INFO;
> +
>   #pragma pack()
>   
>   #endif // ARM_NAMESPACE_OBJECTS_H_
> diff --git a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
> index 2126beba8b9f..21d1f3f08b16 100644
> --- a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
> +++ b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
> @@ -539,6 +539,101 @@ STATIC CONST CM_OBJ_PARSER  CmArmCpcInfoParser[] = {
>     { "NominalFrequencyInteger",               4,                                               "0x%lx", NULL },
>   };
>   
> +/** A parser for the CM_ARM_MAILBOX_REGISTER_INFO struct.
> +*/
> +STATIC CONST CM_OBJ_PARSER  CmArmMailboxRegisterInfoParser[] = {
> +  { "Register",     sizeof (EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE), NULL,     NULL,
> +    AcpiGenericAddressParser, ARRAY_SIZE (AcpiGenericAddressParser) },
> +  { "PreserveMask", 8,                                               "0x%llx", NULL },
> +  { "WriteMask",    8,                                               "0x%llx", NULL },
> +};
> +
> +/** A parser for the CM_ARM_PCC_SUBSPACE_CHANNEL_TIMING_INFO struct.
> +*/
> +STATIC CONST CM_OBJ_PARSER  CmArmPccSubspaceChannelTimingInfoParser[] = {
> +  { "NominalLatency",           4, "0x%x", NULL },
> +  { "MaxPeriodicAccessRate",    4, "0x%x", NULL },
> +  { "MinRequestTurnaroundTime", 2, "0x%x", NULL },
> +};
> +
> +/** A parser for EArmObjPccSubspaceType0Info.
> +*/
> +STATIC CONST CM_OBJ_PARSER  CmArmPccSubspaceType0InfoParser[] = {
> +  { "SubspaceId",    1,                                                "0x%x",   NULL },
> +  { "Type",          1,                                                "0x%x",   NULL },
> +  { "BaseAddress",   8,                                                "0x%llx", NULL },
> +  { "AddressLength", 8,                                                "0x%llx", NULL },
> +  { "DoorbellReg",   sizeof (CM_ARM_MAILBOX_REGISTER_INFO),
> +    NULL, NULL, CmArmMailboxRegisterInfoParser,
> +    ARRAY_SIZE (CmArmMailboxRegisterInfoParser) },
> +  { "DoorbellReg",   sizeof (CM_ARM_PCC_SUBSPACE_CHANNEL_TIMING_INFO),
[SAMI] "DoorbellReg" should be changed to "ChannelTiming" above.
> +    NULL, NULL, CmArmPccSubspaceChannelTimingInfoParser,
> +    ARRAY_SIZE (CmArmPccSubspaceChannelTimingInfoParser) },
> +};
> +
> +/** A parser for EArmObjPccSubspaceType1Info.
> +*/
> +STATIC CONST CM_OBJ_PARSER  CmArmPccSubspaceType1InfoParser[] = {
> +  { "GenericPccInfo", sizeof (CM_ARM_PCC_SUBSPACE_GENERIC_INFO),
> +    NULL, NULL, CmArmPccSubspaceType0InfoParser,
> +    ARRAY_SIZE (CmArmPccSubspaceType0InfoParser) },
> +  { "PlatIrq",        sizeof (CM_ARM_GENERIC_INTERRUPT),
> +    NULL, NULL, CmArmGenericInterruptParser,
> +    ARRAY_SIZE (CmArmGenericInterruptParser) },
> +};
> +
> +/** A parser for EArmObjPccSubspaceType2Info.
> +*/
> +STATIC CONST CM_OBJ_PARSER  CmArmPccSubspaceType2InfoParser[] = {
> +  { "GenericPccInfo", sizeof (CM_ARM_PCC_SUBSPACE_GENERIC_INFO),
> +    NULL, NULL, CmArmPccSubspaceType0InfoParser,
> +    ARRAY_SIZE (CmArmPccSubspaceType0InfoParser) },
> +  { "PlatIrq",        sizeof (CM_ARM_GENERIC_INTERRUPT),        NULL,NULL,
> +    CmArmGenericInterruptParser, ARRAY_SIZE (CmArmGenericInterruptParser) },
> +  { "PlatIrqAckReg",  sizeof (CM_ARM_MAILBOX_REGISTER_INFO),
> +    NULL, NULL, CmArmMailboxRegisterInfoParser,
> +    ARRAY_SIZE (CmArmMailboxRegisterInfoParser) },
> +};
> +
> +/** A parser for EArmObjPccSubspaceType3Info or EArmObjPccSubspaceType4Info.
> +*/
> +STATIC CONST CM_OBJ_PARSER  CmArmPccSubspaceType34InfoParser[] = {
> +  { "GenericPccInfo",       sizeof (CM_ARM_PCC_SUBSPACE_GENERIC_INFO),
> +    NULL, NULL, CmArmPccSubspaceType0InfoParser,
> +    ARRAY_SIZE (CmArmPccSubspaceType0InfoParser) },
> +  { "PlatIrq",              sizeof (CM_ARM_GENERIC_INTERRUPT),        NULL,NULL,
> +    CmArmGenericInterruptParser, ARRAY_SIZE (CmArmGenericInterruptParser) },
> +  { "PlatIrqAckReg",        sizeof (CM_ARM_MAILBOX_REGISTER_INFO),
> +    NULL, NULL, CmArmMailboxRegisterInfoParser,
> +    ARRAY_SIZE (CmArmMailboxRegisterInfoParser) },
> +  { "CmdCompleteCheckReg",  sizeof (CM_ARM_MAILBOX_REGISTER_INFO),
> +    NULL, NULL, CmArmMailboxRegisterInfoParser,
> +    ARRAY_SIZE (CmArmMailboxRegisterInfoParser) },
> +  { "CmdCompleteUpdateReg", sizeof (CM_ARM_MAILBOX_REGISTER_INFO),
> +    NULL, NULL, CmArmMailboxRegisterInfoParser,
> +    ARRAY_SIZE (CmArmMailboxRegisterInfoParser) },
> +  { "ErrorStatusReg",       sizeof (CM_ARM_MAILBOX_REGISTER_INFO),
> +    NULL, NULL, CmArmMailboxRegisterInfoParser,
> +    ARRAY_SIZE (CmArmMailboxRegisterInfoParser) },
> +};
> +
> +/** A parser for EArmObjPccSubspaceType5Info.
> +*/
> +STATIC CONST CM_OBJ_PARSER  CmArmPccSubspaceType5InfoParser[] = {
> +  { "GenericPccInfo",      sizeof (CM_ARM_PCC_SUBSPACE_GENERIC_INFO),
> +    NULL, NULL, CmArmPccSubspaceType0InfoParser,
> +    ARRAY_SIZE (CmArmPccSubspaceType0InfoParser) },
> +  { "Version",             2,                                        "0x%x",NULL },
> +  { "PlatIrq",             sizeof (CM_ARM_GENERIC_INTERRUPT),        NULL,  NULL,
> +    CmArmGenericInterruptParser, ARRAY_SIZE (CmArmGenericInterruptParser) },
> +  { "CmdCompleteCheckReg", sizeof (CM_ARM_MAILBOX_REGISTER_INFO),
> +    NULL, NULL, CmArmMailboxRegisterInfoParser,
> +    ARRAY_SIZE (CmArmMailboxRegisterInfoParser) },
> +  { "ErrorStatusReg",      sizeof (CM_ARM_MAILBOX_REGISTER_INFO),
> +    NULL, NULL, CmArmMailboxRegisterInfoParser,
> +    ARRAY_SIZE (CmArmMailboxRegisterInfoParser) },
> +};
> +
>   /** A parser for Arm namespace objects.
>   */
>   STATIC CONST CM_OBJ_PARSER_ARRAY  ArmNamespaceObjectParser[] = {
> @@ -623,6 +718,18 @@ STATIC CONST CM_OBJ_PARSER_ARRAY  ArmNamespaceObjectParser[] = {
>       ARRAY_SIZE (CmArmMemoryRangeDescriptorInfoParser) },
>     { "EArmObjCpcInfo",                      CmArmCpcInfoParser,
>       ARRAY_SIZE (CmArmCpcInfoParser) },
> +  { "EArmObjPccSubspaceType0Info",         CmArmPccSubspaceType0InfoParser,
> +    ARRAY_SIZE (CmArmPccSubspaceType0InfoParser) },
> +  { "EArmObjPccSubspaceType1Info",         CmArmPccSubspaceType1InfoParser,
> +    ARRAY_SIZE (CmArmPccSubspaceType1InfoParser) },
> +  { "EArmObjPccSubspaceType2Info",         CmArmPccSubspaceType2InfoParser,
> +    ARRAY_SIZE (CmArmPccSubspaceType2InfoParser) },
> +  { "EArmObjPccSubspaceType3Info",         CmArmPccSubspaceType34InfoParser,
> +    ARRAY_SIZE (CmArmPccSubspaceType34InfoParser) },
> +  { "EArmObjPccSubspaceType4Info",         CmArmPccSubspaceType34InfoParser,
> +    ARRAY_SIZE (CmArmPccSubspaceType34InfoParser) },
> +  { "EArmObjPccSubspaceType5Info",         CmArmPccSubspaceType5InfoParser,
> +    ARRAY_SIZE (CmArmPccSubspaceType5InfoParser) },
>     { "EArmObjMax",                          NULL,                                  0                                },
>   };
>   

[-- Attachment #2: Type: text/html, Size: 24685 bytes --]

  reply	other threads:[~2022-10-26 12:35 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-10  9:20 [PATCH 00/14] Add PCCT generator and various fixes PierreGondois
2022-10-10  9:20 ` [PATCH 01/14] DynamicTablesPkg: Use correct print formatter PierreGondois
2022-10-26 12:36   ` Sami Mujawar
2022-10-10  9:20 ` [PATCH 02/14] DynamicTablesPkg: Add PrintString to CmObjParser PierreGondois
2022-10-26 12:36   ` Sami Mujawar
2022-10-10  9:20 ` [PATCH 03/14] DynamicTablesPkg: Update CmObjParser for IORT Rev E.d PierreGondois
2022-10-26 12:34   ` Sami Mujawar
2022-10-28 10:05     ` PierreGondois
2022-10-10  9:20 ` [PATCH 04/14] DynamicTablesPkg: Update CmObjParser for MinorRevision PierreGondois
2022-10-26 12:36   ` Sami Mujawar
2022-10-10  9:20 ` [PATCH 05/14] DynamicTablesPkg: Fix GTBlock and GTBlockTimerFrame CmObjParsers PierreGondois
2022-10-26 12:37   ` Sami Mujawar
2022-10-10  9:20 ` [PATCH 06/14] DynamicTablesPkg: Fix wrong/missing fields in CmObjParser PierreGondois
2022-10-26 12:34   ` Sami Mujawar
2022-10-28 10:05     ` PierreGondois
2022-10-10  9:20 ` [PATCH 07/14] DynamicTablesPkg: Remove deprecated APIs PierreGondois
2022-10-26 12:37   ` Sami Mujawar
2022-10-10  9:20 ` [PATCH 08/14] DynamicTablesPkg: FdtHwInfoParserLib: Remove wrong comment PierreGondois
2022-10-26 12:37   ` Sami Mujawar
2022-10-10  9:20 ` [PATCH 09/14] DynamicTablesPkg: Fix Ssdt PCI generation comments PierreGondois
2022-10-26 12:37   ` Sami Mujawar
2022-10-10  9:20 ` [PATCH 10/14] DynamicTablesPkg: Add PCCT related objects PierreGondois
2022-10-26 12:34   ` Sami Mujawar [this message]
2022-10-28 10:04     ` PierreGondois
2022-10-10  9:20 ` [PATCH 11/14] DynamicTablesPkg: Add PCCT Generator PierreGondois
2022-10-26 12:35   ` Sami Mujawar
2022-10-28 10:02     ` PierreGondois
2022-10-10  9:20 ` [PATCH 12/14] DynamicTablesPkg/AmlLib: Allow larger AccessSize for Pcc address space PierreGondois
2022-10-26 12:34   ` Sami Mujawar
2022-10-28 10:04     ` PierreGondois
2022-10-10  9:20 ` [PATCH 13/14] DynamicTablesPkg: Readme.md: Update available tables for generation PierreGondois
2022-10-26 12:07   ` Sami Mujawar
2022-10-10  9:20 ` [PATCH 14/14] ShellPkg/AcpiView: Update PCCT fields for ACPI 6.5 PierreGondois
2022-10-26 12:06   ` Sami Mujawar
     [not found] ` <171CAABD595C9750.32766@groups.io>
2022-10-10  9:48   ` [edk2-devel] " PierreGondois
2022-10-11  1:41     ` Ni, Ray
2022-10-31 13:34 ` [edk2-devel] [PATCH 00/14] Add PCCT generator and various fixes Sami Mujawar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=21c35b9f-f63a-07d4-164d-1d4736a669a9@arm.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox