Author: wmb Date: 2008-08-04 20:33:08 +0200 (Mon, 04 Aug 2008) New Revision: 867
Modified: cpu/x86/pc/linux.fth cpu/x86/pc/olpc/addrs.fth cpu/x86/pc/olpc/versions.fth Log: OLPC - extended the high-address v=p page directory area to include the frame buffer and other devices.
Modified: cpu/x86/pc/linux.fth =================================================================== --- cpu/x86/pc/linux.fth 2008-08-03 06:47:41 UTC (rev 866) +++ cpu/x86/pc/linux.fth 2008-08-04 18:33:08 UTC (rev 867) @@ -128,11 +128,14 @@
\ If we are running in physical address mode, make a page directory \ that will map up when the kernel turns on paging. +: v=p-pde ( adr -- ) + dup h# 83 or cr3@ rot d# 22 rshift la+ l! +; : make-ofw-pdir ( -- ) cr3@ if exit then h# 1000 h# 1000 mem-claim cr3! cr3@ h# 1000 erase - fw-virt-base h# 83 or cr3@ fw-virt-base d# 22 rshift la+ l! + fw-map-limit fw-map-base do i v=p-pde h# 40.0000 +loop cr4@ h# 10 or cr4! ;
Modified: cpu/x86/pc/olpc/addrs.fth =================================================================== --- cpu/x86/pc/olpc/addrs.fth 2008-08-03 06:47:41 UTC (rev 866) +++ cpu/x86/pc/olpc/addrs.fth 2008-08-04 18:33:08 UTC (rev 867) @@ -88,6 +88,9 @@ h# f.0800 constant resume-data
\ If you change these, also change {g/l}xmsrs.fth and {g/l}xearly.fth +h# fd00.0000 constant fw-map-base +h# ffc0.0000 constant fw-map-limit + h# fd00.0000 constant fb-pci-base h# fe00.0000 constant gp-pci-base h# fe00.4000 constant dc-pci-base @@ -99,7 +102,7 @@ h# fe02.0000 constant nand-pci-base h# fe02.4000 constant sd-pci-base h# fe02.8000 constant camera-pci-base -h# efc0.0000 constant uoc-pci-base +h# fe02.c000 constant uoc-pci-base
h# 9.fc00 constant 'ebda \ Extended BIOS Data Area, which we co-opt for our real-mode workspace
Modified: cpu/x86/pc/olpc/versions.fth =================================================================== --- cpu/x86/pc/olpc/versions.fth 2008-08-03 06:47:41 UTC (rev 866) +++ cpu/x86/pc/olpc/versions.fth 2008-08-04 18:33:08 UTC (rev 867) @@ -2,7 +2,7 @@
\ The overall firmware revision macro: FW_MAJOR E -macro: FW_MINOR 12f +macro: FW_MINOR 12g
\ The EC microcode macro: EC_VERSION e11