[openfirmware] r1231 - cpu/x86/pc/olpc/via

svn at openfirmware.info svn at openfirmware.info
Wed Jul 1 02:25:47 CEST 2009


Author: wmb
Date: 2009-07-01 02:25:47 +0200 (Wed, 01 Jul 2009)
New Revision: 1231

Modified:
   cpu/x86/pc/olpc/via/acpi.fth
   cpu/x86/pc/olpc/via/rmstart.fth
   cpu/x86/pc/olpc/via/romreset.bth
Log:
Via - fixes to ACPI wakeup support.



Modified: cpu/x86/pc/olpc/via/acpi.fth
===================================================================
--- cpu/x86/pc/olpc/via/acpi.fth	2009-06-30 19:53:14 UTC (rev 1230)
+++ cpu/x86/pc/olpc/via/acpi.fth	2009-07-01 00:25:47 UTC (rev 1231)
@@ -248,25 +248,25 @@
    then
 
    op: ax bx mov
-   h# 0f # ax and
+   h# 0f # ax and  ax cx mov
    op: 4 # bx shr
 
-   cs: ax  wake-adr la1+ #)  mov  \ Offset
-   cs: bx  wake-adr wa1+ #)  mov  \ Segment
-
    \ The following might be unnecessary
    ax ax xor  rm-ds #  al  mov  \ 16-bit data segment
    ax ds mov  ax es mov  ax ss mov
 
-   cr0 ax mov   h# fe # al and   ax cr0 mov   \ Enter real mode
+   cx  wake-adr la1+ #)  mov  \ Offset
+   bx  wake-adr wa1+ #)  mov  \ Segment
 
-   here 5 +  do-acpi-wake -  wake-adr  + >seg:off #)  far jmp  \ Jump to set cs
+   op: cr0 ax mov   h# fe # al and   op: ax cr0 mov   \ Enter real mode
 
+   here 5 +  do-acpi-wake -  wake-adr  + lwsplit #)  far jmp  \ Jump to set cs
+
    \ The following might be unnecessary
    \ Now we are running in real mode; fix segments again
    cs ax mov   ax ds mov  ax es mov
 
-   cs:  wake-adr wa1+  s#)  far jmp
+   wake-adr wa1+  s#)  far jmp
 end-code
 here do-acpi-wake - constant /do-acpi-wake
 
@@ -292,7 +292,7 @@
    " dsdt" find-drop-in  0= abort" No DSDT "  ( adr len )
    2dup dsdt-adr swap  move  free-mem
 
-   do-acpi-wake wake-adr 4 +   /do-acpi-wake  move
+   do-acpi-wake wake-adr  /do-acpi-wake  move
 
 [ifdef] notdef
    \ Copy in the SSDT

Modified: cpu/x86/pc/olpc/via/rmstart.fth
===================================================================
--- cpu/x86/pc/olpc/via/rmstart.fth	2009-06-30 19:53:14 UTC (rev 1230)
+++ cpu/x86/pc/olpc/via/rmstart.fth	2009-07-01 00:25:47 UTC (rev 1231)
@@ -83,7 +83,7 @@
 
    \ ffff.fc00	GDT
 
-   1f   w,  ffff.fc00 l,	 0      w,  \ 0 Pointer to GDT in first slot
+   2f   w,  ffff.fc00 l,	 0      w,  \ 0 Pointer to GDT in first slot
    0    w,  0         l,	 0      w,  \ * Null descriptor
    ffff w,  9b.000000 l,  00.c.f w,  \ 10 Code, linear=physical, full 4Gbytes
    ffff w,  93.000000 l,  00.c.f w,  \ 18 Data, linear=physical, full 4Gbytes

Modified: cpu/x86/pc/olpc/via/romreset.bth
===================================================================
--- cpu/x86/pc/olpc/via/romreset.bth	2009-06-30 19:53:14 UTC (rev 1230)
+++ cpu/x86/pc/olpc/via/romreset.bth	2009-07-01 00:25:47 UTC (rev 1231)
@@ -179,7 +179,7 @@
          \ Resume in real mode for ACPI operating systems
          \ Linear wakeup address is in EAX
          sp sp xor  \ Possibly unnecessary
-         wake-adr >seg:off drop  rm-cs #) far jmp
+         wake-adr lwsplit drop  rm-cs #) far jmp
       else
          \ Resume in 32-bit protected mode for OFW
          resume-data  # sp mov




More information about the openfirmware mailing list