I'm having the same problem as here:
viewtopic.php?f=1&t=30288I found that if I pack the XSDT structure header and set the alignment of the following 64-bit pointers to 4 rather than the default 8, then I get the correct 64-bit pointer values to read the pointed-to tables (so table entry 0 is at offset 36 rather than 40 from the beginning of the XSDT).
With a quick google search,
https://github.com/tianocore/edk2/blob/ ... Protocol.c seems to corroborate that the XSDT pointers are indeed not aligned to 8-byte boundaries.
I tried to follow the ACPI spec link on
https://wiki.osdev.org/XSDT but that appears to be dead.
Is it known that these pointers are not 8-byte aligned? If so, can
https://wiki.osdev.org/XSDT be updated to clarify this? I don't have edit permissions for the wiki.