Port-amd64 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

x2APIC APIC ID value less than 255



 Hi, all.

 I have access to an Intel Sapphire Rapids machine.

 It seems NetBSD/amd64 has some problems to boot on the machine.
One of problems is related x2APIC

-----------
        case ACPI_MADT_TYPE_LOCAL_X2APIC:
                x2apic = (ACPI_MADT_LOCAL_X2APIC *)hdrp;

                /* ACPI spec: "Logical processors with APIC ID values
                 * less than 255 must use the Processor Local APIC
                 * structure to convey their APIC information to OSPM."
                 * But Xen with PVH dom0 breaks this ACPI spec.
                 */
                if (x2apic->LocalApicId <= 0xff && vm_guest != VM_GUEST_XENPVH) {
                        printf("bogus MADT X2APIC entry (id = 0x%"PRIx32")\n",
                            x2apic->LocalApicId);
                        break;
                }
------------

This machine uses less than 255 APIC IDs.

rin@ found that the following compatibility note:

https://uefi.org/htmlspecs/ACPI_Spec_6_4_html/05_ACPI_Software_Programming_Model/ACPI_Software_Programming_Model.html#processor-local-x2apic-structure

[Compatibility note] On some legacy OSes, Logical processors with APIC ID
values less than 255 (whether in XAPIC or X2APIC 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.

Is it possible to delete the above test completely?

-- 
-----------------------------------------------
                SAITOH Masanobu (msaitoh%execsw.org@localhost
                                 msaitoh%netbsd.org@localhost)


Home | Main Index | Thread Index | Old Index