ACPI Tables

Surface RT ACPI Tables.

ACPI Tables

  • APIC - Advanced Programmable Interrupt Controller

  • BGRT - Boot Graphics Resource Table

  • DBG2 - Debug Port Table 2

  • CSRT - Core System Resource Table

  • DSDT - Differentiated System Description Table

  • FACP - Fixed ACPI Description Table

  • FPDT - Firmware Performance Data Table

  • MSDM - Microsoft Data Management table

  • RSDP - Root System Description Pointer

  • SSDT - Secondary System Description Table

  • TPM2 - Trusted Platform Module 2.0

  • WDSA - Windows Specific Table. Contains tCover information

  • XSDT - Extended System Description Table Fields

Get ACPI-Tables from Surface RT

You need to be able to run unsigned EFI apps. get ShellBinPkg.zip from https://github.com/tianocore/edk2/releases/tag/edk2-stable201911 And use the startup script below. Dumped tables should be in the dump folder

Decompile ACPI-Tables

To decompile ACPI on Linux you would normally use IASL. But all Tables are compiled with the Microsoft ASL compiler. Since MS_ASL isn't as strict as IASL, IASL detects some errors and won't decompile all tables.

IASL

Decompile with IASL
iasl -da APIC0000.bin BGRT0000.bin CSRT0000.bin DBG20000.bin FACP0000.bin FPDT0000.bin MSDM0000.bin TPM20000.bin XSDT0000.bin

MS ASL

https://docs.microsoft.com/en-us/windows-hardware/drivers/bringup/microsoft-asl-compiler

Decompile with MS_ASL
wine microsoft_asl.exe /u /e DSDT0000.bin
wine microsoft_asl.exe /u /e SSDT0000.bin
wine microsoft_asl.exe /u /e SSDT0001.bin
wine microsoft_asl.exe /u /e WDSA0000.bin

You can't decompile RSDP0000.bin but it only contains 2 Pointers