Message ID | 1469115264-22150-1-git-send-email-prarit@redhat.com |
---|---|
State | Accepted |
Headers | show |
On 21/07/16 16:34, Prarit Bhargava wrote: > The x2apic ID can be a 32-bit value starting from 0. The TODO was likely > introduced by this comment in section 5.2.12.12, of the ACPI6.0 > specification: > > "Note: [Compatibility note] On some legacy OSes, Logical processors with APIC > ID values less than 255 (whether in XAPIC or X2 APIC mode) must use the > Processor Local APIC structure to convey their APIC information to OSPM, and > those processors must be declared in the DSDT using the Processor() keyword. > Logical processors with APIC ID values 255 and greater must use the Processor > Local x2APIC structure and be declared using the Device() keyword. See Section > 19.6.102 "Processor (Declare Processor)" for more information." > > This does not mean that the lower bound of the x2apic ID is 255, rather > that there are older OSes that will only interpret the lapic struct for > x[2]apic IDs 0-255, and will interpret the x2apic struct for x2apic IDs > greater than 255. > > Signed-off-by: Prarit Bhargava <prarit@redhat.com> > --- > src/acpi/madt/madt.c | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/src/acpi/madt/madt.c b/src/acpi/madt/madt.c > index e260222a8b75..b2d636c1d9d3 100644 > --- a/src/acpi/madt/madt.c > +++ b/src/acpi/madt/madt.c > @@ -802,8 +802,6 @@ static int madt_local_x2apic(fwts_framework *fw, > "reserved and properly set to zero.", > madt_sub_names[hdr->type]); > > - /* TODO: do we need to verify that the x2APIC ID is > 255? */ > - > if (lx2apic->flags & 0xfffffffe) > fwts_failed(fw, LOG_LEVEL_MEDIUM, > "MADTX2APICFlagsNonZero", > Acked-by: Colin Ian King <colin.king@canonical.com>
On 07/21/2016 09:34 AM, Prarit Bhargava wrote: > The x2apic ID can be a 32-bit value starting from 0. The TODO was likely > introduced by this comment in section 5.2.12.12, of the ACPI6.0 > specification: > > "Note: [Compatibility note] On some legacy OSes, Logical processors with APIC > ID values less than 255 (whether in XAPIC or X2 APIC mode) must use the > Processor Local APIC structure to convey their APIC information to OSPM, and > those processors must be declared in the DSDT using the Processor() keyword. > Logical processors with APIC ID values 255 and greater must use the Processor > Local x2APIC structure and be declared using the Device() keyword. See Section > 19.6.102 "Processor (Declare Processor)" for more information." > > This does not mean that the lower bound of the x2apic ID is 255, rather > that there are older OSes that will only interpret the lapic struct for > x[2]apic IDs 0-255, and will interpret the x2apic struct for x2apic IDs > greater than 255. > > Signed-off-by: Prarit Bhargava <prarit@redhat.com> Either I write really good comments or Prarit can read minds :). I prefer to think Prarit is telepathic. Yup, that was exactly the intent of the TODO. Thanks for the clarification.
On 2016-07-21 11:34 PM, Prarit Bhargava wrote: > The x2apic ID can be a 32-bit value starting from 0. The TODO was likely > introduced by this comment in section 5.2.12.12, of the ACPI6.0 > specification: > > "Note: [Compatibility note] On some legacy OSes, Logical processors with APIC > ID values less than 255 (whether in XAPIC or X2 APIC mode) must use the > Processor Local APIC structure to convey their APIC information to OSPM, and > those processors must be declared in the DSDT using the Processor() keyword. > Logical processors with APIC ID values 255 and greater must use the Processor > Local x2APIC structure and be declared using the Device() keyword. See Section > 19.6.102 "Processor (Declare Processor)" for more information." > > This does not mean that the lower bound of the x2apic ID is 255, rather > that there are older OSes that will only interpret the lapic struct for > x[2]apic IDs 0-255, and will interpret the x2apic struct for x2apic IDs > greater than 255. > > Signed-off-by: Prarit Bhargava <prarit@redhat.com> > --- > src/acpi/madt/madt.c | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/src/acpi/madt/madt.c b/src/acpi/madt/madt.c > index e260222a8b75..b2d636c1d9d3 100644 > --- a/src/acpi/madt/madt.c > +++ b/src/acpi/madt/madt.c > @@ -802,8 +802,6 @@ static int madt_local_x2apic(fwts_framework *fw, > "reserved and properly set to zero.", > madt_sub_names[hdr->type]); > > - /* TODO: do we need to verify that the x2APIC ID is > 255? */ > - > if (lx2apic->flags & 0xfffffffe) > fwts_failed(fw, LOG_LEVEL_MEDIUM, > "MADTX2APICFlagsNonZero", > Acked-by: Alex Hung <alex.hung@canonical.com>
diff --git a/src/acpi/madt/madt.c b/src/acpi/madt/madt.c index e260222a8b75..b2d636c1d9d3 100644 --- a/src/acpi/madt/madt.c +++ b/src/acpi/madt/madt.c @@ -802,8 +802,6 @@ static int madt_local_x2apic(fwts_framework *fw, "reserved and properly set to zero.", madt_sub_names[hdr->type]); - /* TODO: do we need to verify that the x2APIC ID is > 255? */ - if (lx2apic->flags & 0xfffffffe) fwts_failed(fw, LOG_LEVEL_MEDIUM, "MADTX2APICFlagsNonZero",
The x2apic ID can be a 32-bit value starting from 0. The TODO was likely introduced by this comment in section 5.2.12.12, of the ACPI6.0 specification: "Note: [Compatibility note] On some legacy OSes, Logical processors with APIC ID values less than 255 (whether in XAPIC or X2 APIC mode) must use the Processor Local APIC structure to convey their APIC information to OSPM, and those processors must be declared in the DSDT using the Processor() keyword. Logical processors with APIC ID values 255 and greater must use the Processor Local x2APIC structure and be declared using the Device() keyword. See Section 19.6.102 "Processor (Declare Processor)" for more information." This does not mean that the lower bound of the x2apic ID is 255, rather that there are older OSes that will only interpret the lapic struct for x[2]apic IDs 0-255, and will interpret the x2apic struct for x2apic IDs greater than 255. Signed-off-by: Prarit Bhargava <prarit@redhat.com> --- src/acpi/madt/madt.c | 2 -- 1 file changed, 2 deletions(-)