[openfirmware] [commit] r1851 - cpu/x86/pc/olpc/via

repository service svn at openfirmware.info
Thu Jul 1 19:25:39 CEST 2010


Author: wmb
Date: Thu Jul  1 19:25:39 2010
New Revision: 1851
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/1851

Log:
OLPC XO-1.5 - added commented-out code to early startup sequence
to clear memory before starting Forth.  It was a test for a
page-fault-after-runin problem that was never fully diagnosed -
but it seems to have disappeared with a new system build.

Added:
   cpu/x86/pc/olpc/via/startpcirestore.fth

Added: cpu/x86/pc/olpc/via/startpcirestore.fth
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ cpu/x86/pc/olpc/via/startpcirestore.fth	Thu Jul  1 19:25:39 2010	(r1851)
@@ -0,0 +1,56 @@
+\ Restore PCI config registers
+
+8000.0000 6010 config-wl  \ BAR 0
+8000.1000 6014 config-wl  \ BAR 1
+8000.2000 6018 config-wl  \ BAR 2
+     0016 6004 config-ww  \ Enables
+       0a 603c config-wb  \ Interrupt line
+
+   \ This is a workaround for an odd problem with the Via Vx855 chip.
+   \ You have to tell it to use 1.8 V, otherwise when you tell it
+   \ it to use 3.3V, it will use 1.8 V instead!  You only have to
+   \ do this 1.8V thing once after power-up to fix it until the
+   \ next power cycle.  The "fix" survives resets; it takes a power
+   \ cycle to break it again.
+
+\ First 1.8V
+0a # al mov  al 8000.0029 #) mov
+             al 8000.1029 #) mov
+             al 8000.2029 #) mov
+
+\ Then 3.3V
+0e # al mov  al 8000.0029 #) mov
+             al 8000.1029 #) mov
+             al 8000.2029 #) mov
+
+\ Then power on
+0f # al mov  al 8000.0029 #) mov
+             al 8000.1029 #) mov
+             al 8000.2029 #) mov
+
+\ 0e # al mov  al 8000.0029 #) mov
+\              al 8000.1029 #) mov
+\              al 8000.2029 #) mov
+
+       f9 6099 config-wb  \ Two SD slots (correct for XP, wrong for Linux)
+
+\       \ Enable System Management Mode, assuming that the in-memory data structures are already set up
+\       21  383 config-wb  \ Enable A/Bxxxx range as memory instead of frame buffer (with fxxxx region R/O)
+\       3b  386 config-wb  \ 01 bit enables compatible SMM
+\       3b 8fe6 config-wb  \ 02 bit enables high SMM
+
+\ acpi-io-base h# 2c + # dx mov  dx al in  h# 01 # al or  al dx out  \ Global SMI enable
+\ acpi-io-base h# 2a + # dx mov  dx al in  h# 40 # al or  al dx out  \ Enable SMI on access to software SMI register
+\ 0  acpi-io-base h# 2a +  port-wb   \ Trigger SMI; the "relocate the SMI base" handler is already installed
+
+\       20  383 config-wb  \ Restore A/Bxxxx range to its normal frame buffer usage
+
+\     \ Enable Real Mode gateway using System Management Mode
+\      0030 885e config-ww  \ PCS3 I/O Port address (port 30)
+\        f7 8864 config-wb  \ f* sets PCS3 decode length to 16 bytes (ports 30-3f)
+\        03 8866 config-wb  \ 02 bit enables PCS3 decoding
+\        64 88e5 config-wb  \ 04 bit enables PCS1
+
+\ acpi-io-base h# 2b + # dx mov  dx al in  h# 80 # al or  al dx out  \ Enable SMI on GPIO Range 1 access
+
+\ acpi-io-base h# 4 + # dx mov  dx al in  h# 01 # al or  al dx out  \ Enable SCI



More information about the openfirmware mailing list