-
Notifications
You must be signed in to change notification settings - Fork 349
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MADT PCAT_COMPAT flag values reversed? #224
Comments
Looks like you might be right
From: Janosch Hildebrand [mailto:notifications@github.com]
Sent: Tuesday, March 7, 2017 11:58 AM
To: acpica/acpica <acpica@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Subject: [acpica/acpica] MADT PCAT_COMPAT flag values reversed? (#224)
In source/include/actbl1.h, ACPI_TABLE_MADT includes a flag field.
The preprocessor define ACPI_MADT_PCAT_COMPAT specifies a mask for the PCAT_COMPAT flag while ACPI_MADT_DUAL_PIC and ACPI_MADT_MULTIPLE_APIC specify the values of said flag.
My interpretation of said defines is that ACPI_MADT_DUAL_PIC indicates the presence of dual 8259 PICs, whereas ACPI_MADT_MULTIPLE_APIC indicates their absence.
i.e. hasDualPics = (madt->Flags & ACPI_MADT_PCAT_COMPAT) == ACPI_MADT_DUAL_PIC
However, ACPI_MADT_DUAL_PIC is defined as 0 while the ACPI specification says regarding the PCAT_COMPAT flag:
A one indicates that the system also has a PC-AT-compatible dual-8259 setup.
(ACPI 6.1, Table 5-45 Multiple APIC Flags, p. 144)
I am probably misunderstanding or misreading something but I would appreciate any insight.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub<#224>, or mute the thread<https://github.com/notifications/unsubscribe-auth/AA6_rEkDH3g2RSdJVNh_c1F9pr3S-Swfks5rjbbbgaJpZM4MV88O>.
|
Thanks. I am currently running on Qemu, Bochs and Virtualbox, all of which emulate the PICs and they report I added a pull request to fix this, if that is OK: #225 I hope this doesn't cause any compatibility issues but since no-one noticed that before, those definitions probably aren't in broad use? |
In
source/include/actbl1.h
,ACPI_TABLE_MADT
includes a flag field.The preprocessor define
ACPI_MADT_PCAT_COMPAT
specifies a mask for the PCAT_COMPAT flag whileACPI_MADT_DUAL_PIC
andACPI_MADT_MULTIPLE_APIC
specify the values of said flag.My interpretation of said defines is that
ACPI_MADT_DUAL_PIC
indicates the presence of dual 8259 PICs, whereasACPI_MADT_MULTIPLE_APIC
indicates their absence.i.e.
hasDualPics = (madt->Flags & ACPI_MADT_PCAT_COMPAT) == ACPI_MADT_DUAL_PIC
However,
ACPI_MADT_DUAL_PIC
is defined as0
while the ACPI specification says regarding the PCAT_COMPAT flag:I am probably misunderstanding or misreading something but I would appreciate any insight.
The text was updated successfully, but these errors were encountered: