Page 1 of 1
FADT BootArchitectureFlags pre 2.0
Posted: Fri Jun 26, 2015 4:03 am
by makerimages
Ok, apparently, the FADT BootArchitectureFlags is used in ACPI 2.0. But This is needed for PS/2 controller existence checking. What is the BootArchitectureFlags equiv. for pre- 2.0 ? The Flags field?
Re: FADT BootArchitectureFlags pre 2.0
Posted: Fri Jun 26, 2015 5:29 am
by Octocontrabass
makerimages wrote:But This is needed for PS/2 controller existence checking.
What are your OS's minimum system requirements? I doubt your OS will run on anything so old that it's PC-compatible but not AT-compatible.
Re: FADT BootArchitectureFlags pre 2.0
Posted: Fri Jun 26, 2015 5:59 am
by madanra
Octocontrabass wrote:What are your OS's minimum system requirements? I doubt your OS will run on anything so old that it's PC-compatible but not AT-compatible.
Modern computer might not have PS/2, and be USB-only.
Re: FADT BootArchitectureFlags pre 2.0
Posted: Fri Jun 26, 2015 6:01 am
by Octocontrabass
Modern computers will support at least ACPI 2.0.
Re: FADT BootArchitectureFlags pre 2.0
Posted: Fri Jun 26, 2015 6:37 am
by Brendan
Hi,
makerimages wrote:Ok, apparently, the FADT BootArchitectureFlags is used in ACPI 2.0. But This is needed for PS/2 controller existence checking. What is the BootArchitectureFlags equiv. for pre- 2.0 ? The Flags field?
In ACPI 1.0b; there's 3 reserved bytes at offset 109 in the FADT (most likely padding for alignment) followed by a 32-bit "flags" field at offset 112.
In ACPI 2.0 and later, the first 2 bytes at offset 109 became the misaligned 16-bit "IAPC_BOOT_ARCH" flags, and the byte at offset 111 is "must be zero".
Note that (in general, for all ACPI tables) there is no "ACPI version number" and all of the tables only have a "table version number". Each time they change the table they increase the version number, but if they don't change the table they don't change the table's version number. For example, for ACPI 6.0 the DSDT has "table version 2", the SSDT has "table version 2" and the MADT has "table version 3".
Also; it would be a mistake to assume that firmware doesn't mix and match. For example; the FADT might have "table version 1" (from ACPI 1.0) while MADT has "table version 3" (from ACPI 4.0?); or FADT might have "table version 6" (from ACPI 6.0) while MADT has "table version 1" (from ACPI 1.0).
Mostly; you'd check if the FADT "table version" is 2 or higher, and if it is you'd check the "IAPC_BOOT_ARCH" flags to see if (e.g.) 8042 is present; and if FADT "table version" is 1 (or lower?) then the "IAPC_BOOT_ARCH" flags don't exist and you'd just assume an 8042 is present (and you'd still check the FADT "table version" even if something else makes your software think it's ACPI 2 or later).
Cheers,
Brendan
Re: FADT BootArchitectureFlags pre 2.0
Posted: Sat Jun 27, 2015 9:59 pm
by thepowersgang
brendan is right there - If the FADT is older than the revision that contains the IA32 boot flags, you assume that the 8042 is present. (Current qemu ships with tables that require knowing this)