[openfirmware] [commit] r2243 - in cpu/arm: . mmp2 olpc olpc/1.75

repository service svn at openfirmware.info
Sat Jun 4 00:56:50 CEST 2011


Author: wmb
Date: Sat Jun  4 00:56:50 2011
New Revision: 2243
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/2243

Log:
OLPC XO-1.75 - Moved the page table into the firmware RAM area, so the only precious thing in low memory is the vector table.  This makes it easier to test memory.

Modified:
   cpu/arm/basefw.bth
   cpu/arm/mmp2/rawboot.fth
   cpu/arm/olpc/1.75/addrs.fth
   cpu/arm/olpc/resetvec.bth

Modified: cpu/arm/basefw.bth
==============================================================================
--- cpu/arm/basefw.bth	Fri Jun  3 04:55:41 2011	(r2242)
+++ cpu/arm/basefw.bth	Sat Jun  4 00:56:50 2011	(r2243)
@@ -86,12 +86,6 @@
 \ XXX remove the OS file commands from tools.dic
 fload ${BP}/ofw/core/filecmds.fth	\ File commands: dir, del, ren, etc.
 
-\ Defined by CPU core
-h# 1000 to pagesize
-d# 12   to pageshift
-h# 10.0000 constant /section
-h# 4000 constant /page-table
-
 [ifndef] no-heads
 resident   dispose   0 0 set-transize   \ true is suppress-transient
 

Modified: cpu/arm/mmp2/rawboot.fth
==============================================================================
--- cpu/arm/mmp2/rawboot.fth	Fri Jun  3 04:55:41 2011	(r2242)
+++ cpu/arm/mmp2/rawboot.fth	Sat Jun  4 00:56:50 2011	(r2243)
@@ -2,13 +2,13 @@
 \ to the setup that start-forth (see arm/boot.fth) wants.
 \ We get here via a call instruction at origin+8, which is inserted below
 
-code stand-cold-code    ( r0: 0  r1: board-id  r2: &kernel-args  lr: &aif_header+8c )
+label stand-cold-code    ( r0: 0  r1: board-id  r2: &kernel-args  lr: &aif_header+8c )
    here  origin 8 +  put-call  \ Insert call instruction
 
    \ Put the arguments in safe registers
    sub   r6,lr,#0x8c        \ r6 points to header (lr set by code at origin)
    mov   r7,#0              \ r7: functions
-   add   r8,r6,`/fw-ram`    \ r8: memtop - 2MiB above load address
+   add   r8,r6,`stack-offset`    \ r8: memtop - 2MiB above load address
                             \ r9 is up
    mov   r10,#0             \ r10: argc
    mov   r11,r2             \ r11: argv (kernel args)

Modified: cpu/arm/olpc/1.75/addrs.fth
==============================================================================
--- cpu/arm/olpc/1.75/addrs.fth	Fri Jun  3 04:55:41 2011	(r2242)
+++ cpu/arm/olpc/1.75/addrs.fth	Sat Jun  4 00:56:50 2011	(r2243)
@@ -1,4 +1,7 @@
 \ Platform design choices
+
+fload ${BP}/cpu/arm/mmuparams.fth
+
 h# 2000.0000 constant total-ram-size
 
 h# 1fc0.0000 constant fb-pa
@@ -38,6 +41,10 @@
 [then]
 
 h# 0020.0000 constant /fw-ram
+/fw-ram /page-table -  constant page-table-offset
+page-table-offset   constant stack-offset  \ Stack is below this
+
+fw-pa page-table-offset + constant page-table-pa
 
 \ h# 0110.0000 constant def-load-base
 h# 0800.0000 constant def-load-base
@@ -47,8 +54,6 @@
 h#  10.0000 constant heap-size
 heap-size constant initial-heap-size
 
-h# 40.0000 constant page-table-pa
-
 \ RAM address where the Security Processor code places the subset of the dropin module
 \ image that it copies out of SPI FLASH.
 h#  900.0000 constant 'dropins  \ Must agree with 'compressed in cforth/src/app/arm-xo-1.75/

Modified: cpu/arm/olpc/resetvec.bth
==============================================================================
--- cpu/arm/olpc/resetvec.bth	Fri Jun  3 04:55:41 2011	(r2242)
+++ cpu/arm/olpc/resetvec.bth	Sat Jun  4 00:56:50 2011	(r2243)
@@ -30,8 +30,8 @@
 ;
 previous definitions
 
-/fw-ram  h# 2.0000 -  constant workspace-offset  \ Offset of inflater workspace within destination RAM
-/fw-ram  constant stack-offset                   \ Offset of top of inflater stack within destination RAM
+\ /fw-ram  constant stack-offset                   \ Offset of top of inflater stack within destination RAM
+stack-offset  h# 2.0000 -  constant workspace-offset  \ Offset of inflater workspace within destination RAM
 
 start-assembling
 
@@ -146,7 +146,8 @@
 [then]
 
    \ Setup the page (section) table and turn on the MMU and caches
-   set     r0,`page-table-pa #`
+\    set     r0,`page-table-pa #`
+   set     r0,`fw-virt-base page-table-offset + #`
    bl      `init-map`			\ Setup the initial virtual address map
    bl	   `enable-mmu`			\ Turn on the MMU
    bl	   `caches-on`			\ Turn on the caches



More information about the openfirmware mailing list