qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PULL for-1.3 0/3] seabios: q35 update


From: Gabriel L. Somlo
Subject: Re: [Qemu-devel] [PULL for-1.3 0/3] seabios: q35 update
Date: Tue, 4 Dec 2012 10:39:58 -0500
User-agent: Mutt/1.5.21 (2010-09-15)

On Tue, Dec 04, 2012 at 10:11:38AM -0500, address@hidden wrote:
> > I don't have an XP install image anymore, but does replacing 2,8 with
> > 0,8 help ?
> > 
> 
> no.
> 
> > On a few of my machines, this is actually coded as
> > 
> >                         IRQNoFlags ()
> >                             {0}                     /* or 2 */
> >                         IRQNoFlags ()
> >                             {8}
> > 
> > Based on my reading of the ACPI manual, this should be syntactically
> > equivalent to the the comma-separated single-line format we're currently
> > using, but could it be that WinXP is picky about the specifics ?
> > 
> 
> Didn't seem to help either. I also tried having just a single irq from
> 0,2,8, and that didn't work either. The only thing that seems to make XP
> happy is completely removing that line. So I'm not sure what is wrong.

I got one more thing to try:

diff --git a/src/acpi-dsdt-hpet.dsl b/src/acpi-dsdt-hpet.dsl
index d5aa3f1..8385ce4 100644
--- a/src/acpi-dsdt-hpet.dsl
+++ b/src/acpi-dsdt-hpet.dsl
@@ -23,12 +23,17 @@ Scope(\_SB) {
             }
             Return (0x0F)
         }
-        Name(_CRS, ResourceTemplate() {
+        Name(BUF0, ResourceTemplate() {
             IRQNoFlags() {2, 8}
             Memory32Fixed(ReadOnly,
                 0xFED00000,         // Address Base
                 0x00000400,         // Address Length
-                )
+                _Y09)
         })
+        Method(_CRS, 0, Serialized) {
+            CreateDWordField (BUF0, \_SB.HPET._Y09._BAS, HPT0)
+            Store(0xFED00000, HPT0)
+            Return (BUF0)
+        }
     }
 }

The complete definition for the HPET on my MacPro5,1 is below; along
with the 0xFED00000 value gleaned from the previous SeaBIOS version of
_CRS, I came up with the above. Hopefully it works for WinXP too...

Thanks,
--Gabriel

Device (HPET) {
    Name (_HID, EisaId ("PNP0103"))
    Name (BUF0, ResourceTemplate () {
        IRQNoFlags ()
            {0}
        IRQNoFlags ()
            {8}
        Memory32Fixed (ReadOnly,
            0xFED00000,         // Address Base
            0x00100000,         // Address Length
            _Y09)
    })
    Method (_STA, 0, NotSerialized) {
        If (LGreaterEqual (OSYS, 0x07D1)) {
            If (HPAE) {
                Return (0x0F)
            }
        } Else {
            If (HPAE) {
                Return (0x0B)
            }
        }
        Return (0x00)
    }
    Method (_CRS, 0, Serialized) {
        If (HPAE) {
            CreateDWordField (BUF0, \_SB.PCI0.LPCB.HPET._Y09._BAS,   HPT0)
            If (LEqual (HPAS, 0x01)) {
                Store (0xFED10000, HPT0)
            }
            If (LEqual (HPAS, 0x02)) {
                Store (0xFED20000, HPT0)
            }
            If (LEqual (HPAS, 0x03)) {
                Store (0xFED30000, HPT0)
            }
        }
        Return (BUF0)
    }
}



reply via email to

[Prev in Thread] Current Thread [Next in Thread]