On Fri, 21 Jan 2022, Igor Mammedov wrote:
As for adding ACPI support to xv6, is not so difficult if you only use it for detecting CPUs. You only need to locate RSDP which points to a list of ACPI tables ((X)RSDT) and then jump and parse MADT table which is analog of MP table. It's all very well documented in ACPI spec and you can use SeaBIOS code for inspiration as well, look for RSDP_SIGNATURE as starting point (SeaBIOS does a lot more stuff with ACPI but you don't really need it (you can start with minimum of necessary code and then build up on top as needed)).
bios-tables-test.c in tests/qtest also has basic code to parse the various tables. It can also be a good starting point. I also find this site useful: https://wiki.osdev.org/RSDP
It tells you the spec without going through the larger PDF.