Author: wmb Date: Sat Jun 26 11:27:11 2010 New Revision: 1841 URL: http://tracker.coreboot.org/trac/openfirmware/changeset/1841
Log: OLPC XO-1.5 - tweaks to ACPI DSDT and HDAudio configuration reporting to make Windows happy. Thanks to Luna.
Modified: cpu/x86/pc/olpc/via/dsdt.dsl dev/hdaudio/config.fth dev/hdaudio/cx2058x-nodes.fth dev/hdaudio/start-cx2058x.fth
Modified: cpu/x86/pc/olpc/via/dsdt.dsl ============================================================================== --- cpu/x86/pc/olpc/via/dsdt.dsl Fri Jun 25 09:06:37 2010 (r1840) +++ cpu/x86/pc/olpc/via/dsdt.dsl Sat Jun 26 11:27:11 2010 (r1841) @@ -40,6 +40,17 @@ "$Id$" })
+OperationRegion (SMIR, SystemIO, 0x042f, 0x01) +Field (SMIR, ByteAcc, NoLock, Preserve) +{ + SMIE, 8 +} +Method (FRTH, 1, NotSerialized) +{ + Store(Arg0, SMIE) + // Type "resume" at the OK prompt to return +} + OperationRegion (UART, SystemIO, 0x03f8, 0x08)
// set to 1 to enable debug output @@ -290,6 +301,7 @@ // Method(_WAK, 1, Serialized) { + FRTH(2) Notify(_SB.PCI0.USB1, 0x00) Notify(_SB.PCI0.USB2, 0x00) Notify(_SB.PCI0.USB3, 0x00) @@ -369,6 +381,7 @@ Store (Zero, GS04) // Clear EXTSMI# Status, why? } Sleep(0x64) + FRTH(One) Return (0x00) }
@@ -2066,6 +2079,7 @@ IO(Decode16,0xE0,0xE0,0x00,0x10) IO(Decode16,0x380,0x380,0x00,0x8) // Additional EC port IO(Decode16,0x3E0,0x3E0,0x00,0x8) + IO(Decode16,0x3F8,0x3F8,0x00,0x8) // UART
// Reserve 4D0 and 4D1 for IRQ edge/level control port IO(Decode16, 0x4D0,0x4D0,0x00,0x2) @@ -2075,6 +2089,8 @@ IO(Decode16, 0, 0, 0, 0, IO1) // SPI Memory Map IO Base Memory32Fixed(ReadWrite, 0x00000000, 0x00000000, MEM0) + Memory32Fixed(ReadWrite, 0xfed00000, 0x00001000, MEM0) // HPET MMIO + Memory32Fixed(ReadWrite, 0xfed30000, 0x00001000, MEM0) // SPI MMIP })
Method(_CRS, 0)
Modified: dev/hdaudio/config.fth ============================================================================== --- dev/hdaudio/config.fth Fri Jun 25 09:06:37 2010 (r1840) +++ dev/hdaudio/config.fth Sat Jun 26 11:27:11 2010 (r1841) @@ -4,6 +4,9 @@ : config( ( -- null-config-default ) 0 ;
: 1/8" ( u -- u ) h# 10000 or ; +: oanalog ( u -- u ) h# 70000 or ; \ other analog +: overrd ( u -- u ) h# 100 or ; \ override +: black ( u -- u ) h# 1000 or ; : green ( u -- u ) h# 4000 or ; : pink ( u -- u ) h# 9000 or ; : hp-out ( u -- u ) h# 200000 or ; @@ -12,6 +15,8 @@ : line-in ( u -- u ) h# 800000 or ; : line-out ( u -- u ) ; : speaker ( u -- u ) h# 100000 or ; +: top ( u -- u ) h# 5000000 or ; +: right ( u -- u ) h# 4000000 or ; : left ( u -- u ) h# 3000000 or ; : front ( u -- u ) h# 2000000 or ; : internal ( u -- u ) h# 10000000 or ;
Modified: dev/hdaudio/cx2058x-nodes.fth ============================================================================== --- dev/hdaudio/cx2058x-nodes.fth Fri Jun 25 09:06:37 2010 (r1840) +++ dev/hdaudio/cx2058x-nodes.fth Sat Jun 26 11:27:11 2010 (r1841) @@ -15,8 +15,9 @@ : portg ( -- ) h# 1f set-node ; \ Port G - speaker driver : porth ( -- ) h# 20 set-node ; \ Port H - S/PDIF out : porti ( -- ) h# 22 set-node ; \ Port I - S/PDIF out -: portj ( -- ) h# 23 set-node ; \ Digital mic +: portj ( -- ) h# 23 set-node ; \ Digital mic 1/2 : vendor ( -- ) h# 25 set-node ; \ Vendor-specific controls +: portk ( -- ) h# 27 set-node ; \ Port K - Dig Mic 3/4
\ LICENSE_BEGIN \ Copyright (c) 2009 Luke Gorrie luke@bup.co.nz
Modified: dev/hdaudio/start-cx2058x.fth ============================================================================== --- dev/hdaudio/start-cx2058x.fth Fri Jun 25 09:06:37 2010 (r1840) +++ dev/hdaudio/start-cx2058x.fth Sat Jun 26 11:27:11 2010 (r1841) @@ -60,16 +60,17 @@ porta config( 1/8" green left hp-out jack )config porta config( 1/8" green left hp-out jack )config portb config( 1/8" pink left mic-in jack )config - portc config( builtin internal front mic-in )config - portd config( unused line-out )config - porte config( unused line-out )config - portf config( 1/8" pink left line-in jack )config - portg config( builtin internal front speaker )config - porth config( unused spdiff-out )config - porti config( unused spdiff-out )config - portj config( unused mic-in )config + portc config( builtin internal top mic-in overrd oanalog )config + portd config( unused line-out overrd )config + porte config( unused line-out overrd )config + portf config( unused line-out overrd )config + portg config( builtin internal front speaker overrd oanalog )config + porth config( unused line-out overrd )config + porti config( unused line-out overrd )config + portj config( unused line-out overrd )config
vendor \ Vendor node + portk config( unused line-out overrd )config \ Luna
\ Codec registers 21000 place-verb \ Undocumented register @@ -91,12 +92,12 @@ 31000 place-verb \ Undocumented register 32000 place-verb \ Undocumented register 33000 place-verb \ Undocumented register - 34001 place-verb \ Maximum output power for speaker - see Class-DSpeakerPower.pdf + 34003 place-verb \ Maximum output power for speaker - see Class-DSpeakerPower.pdf 35000 place-verb \ Undocumented register 3600A place-verb \ Undocumented register 37000 place-verb \ Undocumented register - 38021 place-verb \ over-current / short-circuit protection, 2.6A threshold - 390C5 place-verb \ temperature protection at 79.5C + 38022 place-verb \ over-current / short-circuit protection, 2.6A threshold + 39057 place-verb \ temperature protection at 79.5C 3A000 place-verb \ Undocumented register \ Digital registers 41541 place-verb \ Undocumented register @@ -112,7 +113,7 @@
afg \ Audio Function Group node
- 71C01 place-verb \ Undocumented register + 71C00 place-verb \ Undocumented register 71D00 place-verb \ SPDIF OFF BUT Int-Mic on \ Undocumented register 71E00 place-verb \ Undocumented register 71F00 place-verb \ disable software GSMark protection
openfirmware@openfirmware.info