[OpenBIOS] r823 - cpu/x86/pc/olpc
svn at openbios.org
svn at openbios.org
Wed May 21 23:05:04 CEST 2008
Author: wmb
Date: 2008-05-21 23:05:04 +0200 (Wed, 21 May 2008)
New Revision: 823
Modified:
cpu/x86/pc/olpc/rmstart.fth
cpu/x86/pc/olpc/romreset.bth
Log:
Put "[ifdef] cmos-startup-control" around the startup code that changes
memory and clock timing settings based on CMOS RAM values. That symbol
is not defined by default, so with this change, bad CMOS RAM contents
won't prevent the system from starting. The CMOS override feature can
be reinstated for test builds by defining that symbol in config.fth .
Modified: cpu/x86/pc/olpc/rmstart.fth
===================================================================
--- cpu/x86/pc/olpc/rmstart.fth 2008-04-18 08:20:31 UTC (rev 822)
+++ cpu/x86/pc/olpc/rmstart.fth 2008-05-21 21:05:04 UTC (rev 823)
@@ -183,17 +183,21 @@
h# 0017 # cx mov rdmsr \ Read CHIP_REVID
h# 0014 # cx mov \ Restore RSTPLL MSR number
h# 30 # al cmp >= if \ LX CPU
+[ifdef] cmos-startup-control
h# 60 # al mov al h# 70 # out h# 71 # al in \ Read CMOS 0x60
al al test 0= if
+[then]
rdmsr \ Get base MSR value with divisors
op: h# 04de.0000 # ax or \ Set the startup time (de) and breadcrumb (4)
op: h# 0000.04d9 # dx mov \ PLL value for 333 MB clk, 433 CPU
+[ifdef] cmos-startup-control
else
al dec al h# 71 # out \ Decrement safety counter
rdmsr \ Get base MSR value with divisors
op: h# 04de.0000 # ax or \ Set the startup time (de) and breadcrumb (4)
op: h# 0000.04d3 # dx mov \ PLL value for 333 MB clk, 333 CPU
then
+[then]
wrmsr \ Put in the base value
op: h# 0000.1800 invert # ax and \ Turn off the BYPASS bits
Modified: cpu/x86/pc/olpc/romreset.bth
===================================================================
--- cpu/x86/pc/olpc/romreset.bth 2008-04-18 08:20:31 UTC (rev 822)
+++ cpu/x86/pc/olpc/romreset.bth 2008-05-21 21:05:04 UTC (rev 823)
@@ -147,8 +147,10 @@
00000106.83104104. 00001983 set-msr \ Memory delay values
00000000.00000001. 00001980 set-msr \ Enable memory delays
+[ifdef] cmos-startup-control
h# 61 # al mov al h# 70 # out h# 71 # al in \ Read CMOS 0x61
al al test 0= if
+[then]
18000100.6a7332a0. 20000019 set-msr
\ The RAM controller is now set up
@@ -163,6 +165,7 @@
\ Delay on exit from power mode 1, use unbuffered RAM
130cd801. 2000001a set-msr \ MC_CF1017_DATA LX p 231
+[ifdef] cmos-startup-control
else
al dec al h# 71 # out \ Decrement safety counter
@@ -193,6 +196,7 @@
dx dx xor bx ax mov 2000001a wmsr \ MC_CF1017_DATA LX p 231
then
+[then]
00000200.00000000. 20000020 set-msr \ Power mode entry and exit delays
More information about the OpenBIOS
mailing list