Public bug reported:

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;

** Affects: fwts (Ubuntu)
     Importance: Undecided
         Status: New

** Description changed:

  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 %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;
+ 
+         mask = 0xfffffffc;
+         start = 2;

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2110175

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

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/fwts/+bug/2110175/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to