Eric Dong 77f913a229 AdvancedFeaturePkg/AcpiDebug: Add new AcpiDebug modules. 5 years ago
..
AcpiDebug.asl 77f913a229 AdvancedFeaturePkg/AcpiDebug: Add new AcpiDebug modules. 5 years ago
AcpiDebug.c 77f913a229 AdvancedFeaturePkg/AcpiDebug: Add new AcpiDebug modules. 5 years ago
AcpiDebugDxe.inf 77f913a229 AdvancedFeaturePkg/AcpiDebug: Add new AcpiDebug modules. 5 years ago
AcpiDebugSmm.inf 77f913a229 AdvancedFeaturePkg/AcpiDebug: Add new AcpiDebug modules. 5 years ago
Readme.txt 77f913a229 AdvancedFeaturePkg/AcpiDebug: Add new AcpiDebug modules. 5 years ago

Readme.txt

ACPI Debug feature - an alternative to Port 80 and WinDBG

How it works:
Acpi Debug does this:
Opens a 64kb memory buffer during POST.
Patches the buffer address in SSDT ASL code.
Save the address in gAdvancedFeaturePkgTokenSpaceGuid.PcdAcpiDebugAddress for user reference.
Write strings or numbers to the buffer from ASL code with the ADBG method.

How to use it:
1. Enable it by set gAdvancedFeaturePkgTokenSpaceGuid.PcdAcpiDebugEnable to TRUE.
2. The ACPI ASL code must be instrumented with the debug method.
Strings up to 32 characters (shorter strings will be padded with Zero's, longer strings will be truncated)
Examples:
ADBG("This is a test.")
ADBG(Arg0)

DXE version: The bios engineer will read the strings from the buffer on the target machine with read/write memory utility.
SMM version: Check debug serial that would show debug strings.

Sample code for ADBG:
External (MDBG, MethodObj)
Method (ADBG, 1, Serialized)
{
If (CondRefOf (MDBG)) // Check if ACPI Debug SSDT is loaded
{
Return (MDBG (Arg0))
}
Return (0)
}