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)
Fix Released
High
Ivan Hu

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
Revision history for this message
Ivan Hu (ivan.hu) wrote :

the fix patch has been released at fwts version 25.05.00

Changed in fwts (Ubuntu):
assignee: nobody → Ivan Hu (ivan.hu)
importance: Undecided → High
status: New → In Progress
status: In Progress → Fix Committed
status: Fix Committed → Fix Released
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.