Author: wmb Date: 2009-04-18 21:19:30 +0200 (Sat, 18 Apr 2009) New Revision: 1152
Added: cpu/x86/pc/biosload/config-via.fth Modified: cpu/x86/pc/biosload/addrs.fth cpu/x86/pc/biosload/biostart.bth cpu/x86/pc/biosload/ofw.bth cpu/x86/pc/biosload/reset.bth cpu/x86/pc/biosload/start.bth cpu/x86/pc/biosload/usb.fth cpu/x86/pc/ramtest.fth cpu/x86/startmacros.fth Log: biosload version - support Via demo board
Modified: cpu/x86/pc/biosload/addrs.fth =================================================================== --- cpu/x86/pc/biosload/addrs.fth 2009-04-18 19:16:40 UTC (rev 1151) +++ cpu/x86/pc/biosload/addrs.fth 2009-04-18 19:19:30 UTC (rev 1152) @@ -49,6 +49,21 @@ h# 08.0000 constant dropin-size [then]
+[ifdef] via-demo +\ Don't assume a lot of memory (256M for most versions, 128M for a few) +\needs fw-pa h# e00.0000 constant fw-pa \ OFW dictionary location +\needs /fw-ram h# 20.0000 constant /fw-ram + +\needs heap-base h# e20.0000 constant heap-base \ Dynamic allocation heap +\needs heap-size h# 20.0000 constant heap-size + +\needs dma-base h# e40.0000 constant dma-base \ DMA heap +\needs dma-size h# 20.0000 constant dma-size + + h# e60.0000 constant dropin-base \ Location of payload in RAM + h# 08.0000 constant dropin-size +[then] + \needs dropin-base h# 198.0000 constant dropin-base \needs dropin-size h# 8.0000 constant dropin-size \needs ResetBase dropin-base h# 20 + constant ResetBase \ Location of "reset" dropin in ROM
Modified: cpu/x86/pc/biosload/biostart.bth =================================================================== --- cpu/x86/pc/biosload/biostart.bth 2009-04-18 19:16:40 UTC (rev 1151) +++ cpu/x86/pc/biosload/biostart.bth 2009-04-18 19:19:30 UTC (rev 1152) @@ -8,8 +8,6 @@
fload ${BP}/cpu/x86/asmtools.fth
-create debug-startup - : le-w, here /w allot le-w! ; : le-l, here /l allot le-l! ;
@@ -29,15 +27,7 @@ " # dx mov # al mov al dx out " evaluate ;
-: v-report ( char -- ) - " # al mov al h# b8000 #) mov h# 1d # al mov al h# b8001 #) mov" evaluate -; -: vr-report ( char -- ) \ Real mode version - " ds push h# b000 # push ds pop" evaluate - " # al mov al h# 8000 #) mov h# 1d # al mov al h# 8001 #) mov" evaluate - " ds pop" evaluate -; - +fload ${BP}/cpu/x86/pc/egareport.fth \ Startup reports fload ${BP}/cpu/x86/pc/report.fth \ Startup reports
start-assembling @@ -150,9 +140,9 @@
ascii 5 vr-report
-carret report -linefeed report -ascii F report +\ carret report +\ linefeed report +\ ascii F report
\ copy GDT template to a fixed place in memory (gdt-pa)
@@ -222,9 +212,9 @@ stacktop # sp mov \ Initialize the 32-bit stack pointer
ascii 6 v-report -ascii o report +\ ascii o report
-ascii r report +\ ascii r report
0 # si mov here 4 - >r \ Get offset to following dropins cx si add \ Absolute address of following dropins
Added: cpu/x86/pc/biosload/config-via.fth =================================================================== --- cpu/x86/pc/biosload/config-via.fth (rev 0) +++ cpu/x86/pc/biosload/config-via.fth 2009-04-18 19:19:30 UTC (rev 1152) @@ -0,0 +1,55 @@ +\ See license at end of file +purpose: Configuration for loading from a USB key via Syslinux + +\ --- The environment that "boots" OFW --- +\ - Image Format - Example Media - previous stage bootloader + +\ - (Syslinux) COM32 format - USB Key w/ FAT FS - Syslinux +create syslinux-loaded + +create via-demo + +create debug-startup + +\ create serial-console +create use-usb-debug-port +create pc + +\ create pseudo-nvram +create resident-packages +create addresses-assigned \ Don't reassign PCI addresses +\ create virtual-mode +create use-root-isa +create use-isa-ide +create use-ega +create use-elf +create use-watch-all +\ create use-null-nvram +create pseudo-nvram +create no-floppy-node + +fload ${BP}/cpu/x86/pc/biosload/addrs.fth + +\ LICENSE_BEGIN +\ Copyright (c) 2006 FirmWorks +\ +\ Permission is hereby granted, free of charge, to any person obtaining +\ a copy of this software and associated documentation files (the +\ "Software"), to deal in the Software without restriction, including +\ without limitation the rights to use, copy, modify, merge, publish, +\ distribute, sublicense, and/or sell copies of the Software, and to +\ permit persons to whom the Software is furnished to do so, subject to +\ the following conditions: +\ +\ The above copyright notice and this permission notice shall be +\ included in all copies or substantial portions of the Software. +\ +\ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +\ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +\ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +\ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +\ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +\ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +\ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +\ +\ LICENSE_END
Modified: cpu/x86/pc/biosload/ofw.bth =================================================================== --- cpu/x86/pc/biosload/ofw.bth 2009-04-18 19:16:40 UTC (rev 1151) +++ cpu/x86/pc/biosload/ofw.bth 2009-04-18 19:19:30 UTC (rev 1152) @@ -87,6 +87,11 @@ " ${BP}/dev/pci/build/pcibridg.fc" " class060400" $add-deflated-dropin " ${BP}/dev/ide/build/leghier.fc" " class01018a" $add-deflated-dropin
+ " ${BP}/dev/mmc/sdhci/build/sdhci.fc" " class080501" $add-deflated-dropin + " ${BP}/dev/mmc/sdhci/build/sdmmc.fc" " sdmmc" $add-deflated-dropin + + " ${BP}/dev/usb2/hcd/ehci/build/ehci.fc" " class0c0320" $add-deflated-dropin + " ${BP}/dev/usb2/hcd/uhci/build/uhci.fc" " class0c0300" $add-deflated-dropin " ${BP}/dev/usb2/hcd/ohci/build/ohci.fc" " class0c0310" $add-deflated-dropin " ${BP}/dev/usb2/hcd/ehci/build/ehci.fc" " class0c0320" $add-deflated-dropin
Modified: cpu/x86/pc/biosload/reset.bth =================================================================== --- cpu/x86/pc/biosload/reset.bth 2009-04-18 19:16:40 UTC (rev 1151) +++ cpu/x86/pc/biosload/reset.bth 2009-04-18 19:19:30 UTC (rev 1152) @@ -4,8 +4,6 @@ command: &builder &this build-now
-create debug-startup - fload ${BP}/cpu/x86/pc/biosload/config.fth
\needs start-assembling fload ${BP}/cpu/x86/asmtools.fth @@ -72,7 +70,7 @@ 80 70 isa-c! \ Disable NMI 71 # dx mov dx al in \ Why do we do this?
-[ifdef] debug-startup +[ifdef] intel-chip-stuff h# 8000.f880 # ax mov h# cf8 # dx mov ax dx out h# 140f.0010 # ax mov h# cfc # dx mov ax dx out \ Set LPC decoding
@@ -132,7 +130,9 @@ \ h# 60 # al mov al h# 2e # out h# 6 # al mov al h# 2f # out \ High address \ h# 61 # al mov al h# 2e # out h# 80 # al mov al h# 2f # out \ Low address \ h# 30 # al mov al h# 2e # out h# 1 # al mov al h# 2f # out \ Enable +[then]
+[ifdef] debug-startup init-com1
carret report
Modified: cpu/x86/pc/biosload/start.bth =================================================================== --- cpu/x86/pc/biosload/start.bth 2009-04-18 19:16:40 UTC (rev 1151) +++ cpu/x86/pc/biosload/start.bth 2009-04-18 19:19:30 UTC (rev 1152) @@ -7,18 +7,15 @@ \needs start-assembling fload ${BP}/cpu/x86/asmtools.fth \needs write-dropin fload ${BP}/forth/lib/mkdropin.fth
-create debug-startup - hex
-fload ${BP}/cpu/x86/pc/report.fth \ Startup reports - fload ${BP}/cpu/x86/pc/biosload/config.fth
+fload ${BP}/cpu/x86/pc/report.fth \ Startup reports + start-assembling
label my-entry - [ifdef] debug-startup e9 c, 0 , \ To be patched later end-code @@ -30,7 +27,6 @@ [ifdef] debug-startup \ ascii x report [then] - ret end-code
Modified: cpu/x86/pc/biosload/usb.fth =================================================================== --- cpu/x86/pc/biosload/usb.fth 2009-04-18 19:16:40 UTC (rev 1151) +++ cpu/x86/pc/biosload/usb.fth 2009-04-18 19:19:30 UTC (rev 1152) @@ -14,6 +14,11 @@
: (probe-usb2) ( -- ) " device_type" get-property if exit then +[ifdef] use-usb-debug-port + \ I haven't figured out how to turn on the EHCI cleanly + \ when the Debug Port is running + dbgp-off +[then] get-encoded-string " ehci" $= if pwd$ open-dev ?dup if close-dev then then @@ -52,8 +57,13 @@ drop " /usb" comp 0= if ( ) red-letters ." Using USB keyboard." cr black-letters " keyboard" input + exit then then + " /usb/serial" open-dev ?dup if + red-letters ." Using USB serial console." cr black-letters + dup set-stdin set-stdout + then ;
\ Unlink every node whose phys.hi component matches port
Modified: cpu/x86/pc/ramtest.fth =================================================================== --- cpu/x86/pc/ramtest.fth 2009-04-18 19:16:40 UTC (rev 1151) +++ cpu/x86/pc/ramtest.fth 2009-04-18 19:19:30 UTC (rev 1152) @@ -3,15 +3,15 @@
ascii I report ascii n report ascii c report carret report linefeed report -here asm-base - ResetBase + .x cr -0 # ax mov +\ here asm-base - ResetBase + .x cr +ramtest-start # ax mov begin ax 0 [ax] mov 4 # ax add - h# 10.0000 # ax cmp + ramtest-end # ax cmp 0= until
-0 # ax mov +ramtest-start # ax mov begin 0 [ax] bx mov ax bx cmp <> if @@ -19,21 +19,21 @@ begin again then 4 # ax add - h# 10.000 # ax cmp + ramtest-end # ax cmp 0= until ascii G report ascii o report ascii o report ascii d report carret report linefeed report
ascii P report ascii a report ascii t report ascii 5 report carret report linefeed report -0 # ax mov +ramtest-start # ax mov begin h# 55555555 # 0 [ax] mov 4 # ax add - h# 10.0000 # ax cmp + ramtest-end # ax cmp 0= until
-0 # ax mov +ramtest-start # ax mov begin 0 [ax] bx mov h# 55555555 # bx cmp <> if @@ -41,21 +41,21 @@ begin again then 4 # ax add - h# 10.000 ax # cmp + ramtest-end ax # cmp 0= until ascii G report ascii o report ascii o report ascii d report carret report linefeed report
ascii P report ascii a report ascii t report ascii A report carret report linefeed report -0 # ax mov +ramtest-start # ax mov begin h# aaaaaaaa # 0 [ax] mov 4 # ax add - h# 10.0000 # ax cmp + ramtest-end # ax cmp 0= until
-0 # ax mov +ramtest-start # ax mov begin 0 [ax] bx mov h# aaaaaaaa # bx cmp <> if @@ -63,7 +63,7 @@ begin again then 4 # ax add - h# 10.000 # ax cmp + ramtest-end # ax cmp 0= until ascii G report ascii o report ascii o report ascii d report carret report linefeed report
Modified: cpu/x86/startmacros.fth =================================================================== --- cpu/x86/startmacros.fth 2009-04-18 19:16:40 UTC (rev 1151) +++ cpu/x86/startmacros.fth 2009-04-18 19:19:30 UTC (rev 1152) @@ -111,6 +111,11 @@ ax ax xor op: dx ax in ; +: config-wb ( b config-adr -- ) + config-setup ( ) + # al mov ( ) + al dx out +; : config-rb ( config-adr -- ) \ Returns value in AL config-setup ( ) ax ax xor
openfirmware@openfirmware.info