Fix a stack underflow in linux-place-ramdisk which was eating 'adr' in calculation.
Don't append a root=/dev/ram0 argument if using an initramfs. The document suggesting this is outdated. The kernel will boot from an initramfs if it is present regardless of a root= parameter, and our initramfs expects no root= parameter to exist (then it will try to autodetect which disk to boot from). Change linux-base to 10.0000 to avoid trying to load the kernel and initramfs in the same memory area. (is this the right way to do this? I'm trying to hardcode the runtime fix of "10.0000 to linux-base") Index: cpu/arm/linux.fth =================================================================== --- cpu/arm/linux.fth (revisión: 2496) +++ cpu/arm/linux.fth (copia de trabajo) @@ -31,17 +31,11 @@ + ( limit ) ; -: add-root-dev ( cmdline$ -- cmdline$' ) - /ramdisk if ( cmdline$ ) - " root=/dev/ram0" $cat2 ( cmdline$' ) - then ( cmdline$ ) -; - \ see http://www.simtec.co.uk/products/SWLINUX/files/booting_article.html 0 value arm-linux-machine-type \ Set this after loading this file h# 100 value linux-params \ The location recommended by the above article -def-load-base value linux-base +h# 10.0000 value linux-base \ Different from ramdisk load location 0 value rootdev# \ Set externally 0 value tag-adr @@ -80,7 +74,6 @@ then \ Command line - ( cmdline$ ) add-root-dev ( cmdline$ ) ( adr len ) dup if ( adr len ) 1+ 4 round-up ( adr len+null_rounded ) @@ -121,7 +114,7 @@ : linux-place-ramdisk ( adr len -- ) to /ramdisk ( adr ) - memory-limit umin /ramdisk - ( adr new-ramdisk-adr ) + dup memory-limit umin /ramdisk - ( adr new-ramdisk-adr ) tuck /ramdisk move ( new-ramdisk-adr ) \ dup to linux-memtop to ramdisk-adr
_______________________________________________ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel