From 1729fb8a824c2c63a98e50793810579712113aca Mon Sep 17 00:00:00 2001 From: Pierre Gondois Date: Mon, 10 Oct 2022 11:20:56 +0200 Subject: DynamicTablesPkg/AmlLib: Allow larger AccessSize for Pcc address space For Pcc address space, the AccessSize field of a Register is used to delcare the Pcc Subspace Id. This Id can be up to 256. Cf. ACPI 6.4, s14.7 Referencing the PCC address space Signed-off-by: Pierre Gondois Reviewed-by: Sami Mujawar --- .../Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'DynamicTablesPkg') diff --git a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.c b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.c index 332962bed4..4ca63ccd23 100644 --- a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.c +++ b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlResourceDataCodeGen.c @@ -1257,7 +1257,12 @@ AmlCodeGenRdRegister ( AML_DATA_NODE *RdNode; EFI_ACPI_GENERIC_REGISTER_DESCRIPTOR RdRegister; - if ((AccessSize > EFI_ACPI_6_4_QWORD) || + // Cf. ACPI 6.4, s14.7 Referencing the PCC address space + // The AccessSize represents the Subspace Id for the PCC address space. + if (((AddressSpace == EFI_ACPI_6_4_PLATFORM_COMMUNICATION_CHANNEL) && + (AccessSize > 256)) || + ((AddressSpace != EFI_ACPI_6_4_PLATFORM_COMMUNICATION_CHANNEL) && + (AccessSize > EFI_ACPI_6_4_QWORD)) || ((NameOpNode == NULL) && (NewRdNode == NULL))) { ASSERT (0); -- cgit v1.2.3