FWTS still checks the _UID of GIC entries for cores with _STA set to 0, causing the test to fail.

Bug #2110175 reported by MontyZhao
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
fwts (Ubuntu)
New
Undecided
Unassigned

Bug Description

When certain CPU cores are disabled (i.e., their _STA value is changed from 0xF to 0x0), FWTS correctly skips these cores. However, it still checks whether the _UID in the MADT GIC entries matches the UID of the cores, which causes the test to FAIL.

log like this:
madt: GICC has no matching processor UID x.

This behavior is not compliant with the ACPI specification, as the correct way to indicate whether a GIC is used by the OS is through the Flags field in the MADT GICC entries, not the _STA value.

URL:https://uefi.org/htmlspecs/ACPI_Spec_6_4_html/05_ACPI_Software_Programming_Model/ACPI_Software_Programming_Model.html?highlight=madt#gicc-cpu-interface-flags

We've made a little modification to fix this:

diff --git a/src/acpi/madt/madt.c b/src/acpi/madt/madt.c
index 0b6d00ad..21e614a6 100644
--- a/src/acpi/madt/madt.c
+++ b/src/acpi/madt/madt.c
@@ -1083,7 +1083,8 @@ static int madt_gicc(fwts_framework *fw,
                            "MADT %s reserved field properly set to zero.",
                            madt_sub_names[hdr->type]);

- madt_find_processor_uid(fw, gic->processor_uid, "GICC");
+ if((gic->flags & 1) != 0)
+ madt_find_processor_uid(fw, gic->processor_uid, "GICC");

        mask = 0xfffffffc;
        start = 2;

description: updated
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.