ACPI Revision 2 Problem Detecting MADT
Posted: Tue Mar 17, 2015 11:06 am
Hi,
I am trying to parse the ACPI tables.
On QEMU I have ACPI version 1 and as soon as I detect the signature of the RSDP "RSD PTR " I load the RSDT pointer and can parse it successfully. I just basically find the APIC signature and I can parse the MADT.
When I run my OS on a real computer with ACPI Revision 2, instead of following the rsdtAddr field in the RSDP struct I followed the address in xsdtAddr.
My problem is that while looping on the address range, I can only detect FADT (0x50434146) signature but I can not detect the APIC signature (0x43495041).
I printed the SMI_CommandPort, AcpiEnable, and AcpiDisable and I found them not zero, so I guessed that I need to enable it through writing to the port SMI_CommandPort with the value AcpiEnable as described in http://wiki.osdev.org/ACPI, but I still cannot detect the APIC signature to be able to detect the APIC records and the count number of cores.
I tried this with different real hardware that has revision 2 and it gives the same symptom.
Anything I could be missing?
Thanks
Karim.
I am trying to parse the ACPI tables.
On QEMU I have ACPI version 1 and as soon as I detect the signature of the RSDP "RSD PTR " I load the RSDT pointer and can parse it successfully. I just basically find the APIC signature and I can parse the MADT.
When I run my OS on a real computer with ACPI Revision 2, instead of following the rsdtAddr field in the RSDP struct I followed the address in xsdtAddr.
My problem is that while looping on the address range, I can only detect FADT (0x50434146) signature but I can not detect the APIC signature (0x43495041).
I printed the SMI_CommandPort, AcpiEnable, and AcpiDisable and I found them not zero, so I guessed that I need to enable it through writing to the port SMI_CommandPort with the value AcpiEnable as described in http://wiki.osdev.org/ACPI, but I still cannot detect the APIC signature to be able to detect the APIC records and the count number of cores.
I tried this with different real hardware that has revision 2 and it gives the same symptom.
Anything I could be missing?
Thanks
Karim.