Add a debug method to AML code.
[seabios.git] / src / acpi-dsdt.dsl
index 640716c4895abd33dd9d0544f433eafe9b4f607f..bb0a176774cfe9b168e449cdb2ddb8179a950ea9 100644 (file)
@@ -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) {