[SeaBIOS] [PATCH 2/3] acpi: fix irq 8 ressource conflict

Kevin O'Connor kevin at koconnor.net
Wed Dec 5 23:36:28 CET 2012


Both hpet and rtc have irq 8 in their ressources, making windows unhappy
because of the conflict.  Fix this by making rtc check whenever the hpet
is present, and claim irq 8 only in case it isn't.  So rtc gets irq 8
only in case you start qemu with the -no-hpet switch.

Verified working in both linux (check pnp boot messages) and windows
(check rtc ressources in device manager) guests.

Based on patch by: Gerd Hoffmann <kraxel at redhat.com>
Signed-off-by: Kevin O'Connor <kevin at koconnor.net>
---
 src/acpi-dsdt-isa.dsl | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/src/acpi-dsdt-isa.dsl b/src/acpi-dsdt-isa.dsl
index 23761db..70e1e48 100644
--- a/src/acpi-dsdt-isa.dsl
+++ b/src/acpi-dsdt-isa.dsl
@@ -3,11 +3,23 @@ Scope(\_SB.PCI0.ISA) {
 
     Device(RTC) {
         Name(_HID, EisaId("PNP0B00"))
-        Name(_CRS, ResourceTemplate() {
+        Name(RESI, ResourceTemplate() {
             IO(Decode16, 0x0070, 0x0070, 0x10, 0x02)
             IRQNoFlags() { 8 }
             IO(Decode16, 0x0072, 0x0072, 0x02, 0x06)
         })
+        Name(RESP, ResourceTemplate() {
+            IO(Decode16, 0x0070, 0x0070, 0x10, 0x02)
+            IO(Decode16, 0x0072, 0x0072, 0x02, 0x06)
+        })
+        Method(_CRS, 0) {
+            If (LEqual(\_SB.HPET._STA(), 0)) {
+                /* hpet not present -> give irq 8 to rtc */
+                Return (RESI)
+            } else {
+                Return (RESP)
+            }
+        }
     }
 
     Device(KBD) {
-- 
1.7.11.7




More information about the SeaBIOS mailing list