From: "PierreGondois" <pierre.gondois@arm.com>
To: Sami Mujawar <sami.mujawar@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: Fri, 28 Oct 2022 12:04:53 +0200 [thread overview]
Message-ID: <a55a05b1-645a-7b1b-b28c-2757f26559ee@arm.com> (raw)
In-Reply-To: <21c35b9f-f63a-07d4-164d-1d4736a669a9@arm.com>
Hi Sami,
On 10/26/22 14:34, Sami Mujawar wrote:
> 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.
Yes indeed, thanks for spotting it and for making the modification,
Regards,
Pierre
>
> 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 },
>> };
>>
next prev parent reply other threads:[~2022-10-28 10:04 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
2022-10-28 10:04 ` PierreGondois [this message]
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=a55a05b1-645a-7b1b-b28c-2757f26559ee@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