Add DBUG() method to AML - it can write output to the standard qemu bios debug port (port 0x402). --- src/acpi-dsdt.dsl | 22 +- src/acpi-dsdt.hex | 1990 +++++++++++++++++++++++++++-------------------------- 2 files changed, 1016 insertions(+), 996 deletions(-)
diff --git a/src/acpi-dsdt.dsl b/src/acpi-dsdt.dsl index 640716c..bb0a176 100644 --- a/src/acpi-dsdt.dsl +++ b/src/acpi-dsdt.dsl @@ -28,13 +28,27 @@ DefinitionBlock ( Scope () { /* Debug Output */ - OperationRegion (DBG, SystemIO, 0xb044, 0x04) - Field (DBG, DWordAcc, NoLock, Preserve) + OperationRegion (DBG, SystemIO, 0x0402, 0x01) + Field (DBG, ByteAcc, NoLock, Preserve) { - DBGL, 32, + DBGB, 8, } - }
+ /* Debug method - use this method to send output to the QEMU + * BIOS debug port. This method handles strings, integers, + * and buffers. For example: DBUG("abc") DBUG(0x123) */ + Method(DBUG, 1) { + ToHexString(Arg0, Local0) + ToBuffer(Local0, Local0) + Subtract(SizeOf(Local0), 1, Local1) + Store(Zero, Local2) + While (LLess(Local2, Local1)) { + Store(DerefOf(Index(Local0, Local2)), DBGB) + Increment(Local2) + } + Store(0x0A, DBGB) + } + }
/* PCI Bus definition */ Scope(_SB) {