> For the complete documentation index, see [llms.txt](https://open-rt.gitbook.io/open-surfacert/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://open-rt.gitbook.io/open-surfacert/surface-rt/uefi/acpi-tables.md).

# 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](/open-surfacert/surface-rt/uefi/acpi-tables/acpi-dsdt.md) - 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](/open-surfacert/surface-rt/uefi/acpi-tables/acpi-ssdt.md) - Secondary System Description Table
* TPM2 - Trusted Platform Module 2.0
* WDSA - Windows Specific Table. Contains [tCover](broken://pages/-McDBY9qPOjuGiFY46-h) information
* XSDT - Extended System Description Table Fields

{% file src="/files/-MMUqJRjNSFxPaM6Ko9b" %}

{% file src="/files/-McIoBPyMI\_7mETBupoF" %}

## Get ACPI-Tables from Surface RT

You need to be able to [run unsigned EFI apps](/open-surfacert/common/boot-sequence/uefi/secure-boot.md#enabling-test-signing).\
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

{% file src="/files/-MMUsaO4tf0pA-rcLdND" %}

## 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

{% code title="Decompile with IASL" %}

```
iasl -da APIC0000.bin BGRT0000.bin CSRT0000.bin  DBG20000.bin  FACP0000.bin  FPDT0000.bin  MSDM0000.bin TPM20000.bin XSDT0000.bin
```

{% endcode %}

### MS ASL

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

{% file src="/files/-McIp65K-iyZlVXrAP6j" %}

{% code title="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
```

{% endcode %}

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