Closed samerhaj closed 1 year ago
Hi @samerhaj,
Thanks for pointing out the "Disabled" bit of GICC flags. Code is updated to check for the necessary bits and accordingly add PE in the info table.
Changes are under verification.
Thanks, ACS team
Verified that this fixes the issue. Thanks @chetan-rathore !
The BSA PE tests in ACPI mode use the APIC (MADT) table to determine the number of PEs in the system. The code relies on counting the GICC entries in that table: https://github.com/ARM-software/bsa-acs/blob/main/platform/pal_uefi_acpi/src/pal_pe.c#L192
However, there are implementations that list additional entries but mark them as "Disabled" in the GICC Flags Bit0.
The ACPI 6.5 spec defines that flag as follows:
So BSA ACS should not count disabled entries as valid PEs. In one example, BSA detected "16 PEs" even though the SoC had only 8 PEs. The ACPI table correctly listed 8 GICC entries as enabled, and had an extra 8 entries marked as disabled. This is resulting in failures in multiple PE tests (1, 3, 4, 5, ...) that look like the output below. On those same systems, OSes are correctly identifying only 8 online/valid PEs (not 16).