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);