On Tue, Dec 04, 2012 at 10:11:38AM -0500, jba...@redhat.com 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) } }