[openfirmware] [commit] r1841 - cpu/x86/pc/olpc/via dev/hdaudio

repository service svn at openfirmware.info
Sat Jun 26 11:27:12 CEST 2010


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 at 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



More information about the openfirmware mailing list