Quellcode durchsuchen

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 <Pierre.Gondois@arm.com>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
Pierre Gondois vor 1 Jahr
Ursprung
Commit
1729fb8a82

+ 6 - 1
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);