[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