[SeaBIOS] [PATCH] Add a debug method to AML code.

Kevin O'Connor kevin at koconnor.net
Mon Sep 20 04:16:43 CEST 2010


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) {



More information about the SeaBIOS mailing list