diff options
Diffstat (limited to 'board/cray/L1/bootscript.hush')
-rwxr-xr-x | board/cray/L1/bootscript.hush | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/board/cray/L1/bootscript.hush b/board/cray/L1/bootscript.hush new file mode 100755 index 0000000..ec4839b --- /dev/null +++ b/board/cray/L1/bootscript.hush @@ -0,0 +1,117 @@ +# $Header$ +# hush bootscript for PPCBOOT on L1 +# note: all #s are in hex, do _NOT_ prefix it with 0x + +flash_rfs=ffc00000 +flash_krl=fff00000 +tftp_addr=100000 +tftp2_addr=1000000 + +if printenv booted +then + echo already booted before +else + echo first boot in environment, create and save settings + setenv booted OK + saveenv +fi + +setenv autoload no +# clear out stale env stuff, so we get fresh from dhcp. +for setting in initrd fromflash kernel rootfs rootpath +do +setenv $setting +done + +dhcp + +# if host provides us with a different bootscript, us it. +if printenv bootscript + then + tftp $tftp_addr $bootcript + if imi $tftp_addr + then + autoscript $tftp_addr + fi +fi + +# default base kernel arguments. +setenv bootargs $xbootargs devfs=mount ip=$ipaddr:$serverip:$gatewayip:$netmask:L1:eth0:off wdt=120 + +# Have a kernel in flash? +if imi $flash_krl +then + echo ok kernel to boot from $flash_krl + setenv kernel $flash_krl +else + echo no kernel to boot from $flash_krl, need tftp +fi + +# Have a rootfs in flash? +echo test for SQUASHfs at $flash_rfs + +if imi $flash_rfs +then + echo appears to be a good initrd image at base of flash OK + setenv rootfs $flash_rfs +else + echo no image at base of flash, need nfsroot or initrd +fi + +# I boot from flash if told to and I can. +if printenv fromflash && printenv kernel && printenv rootfs +then + echo booting entirely from flash + setenv bootargs root=/dev/ram0 rw $bootargs + bootm $kernel $rootfs + echo oh no failed so I try some other stuff +fi + +# TFTP down a kernel +if printenv bootfile +then + tftp $tftp_addr $bootfile + setenv kernel $tftp_addr + echo I will boot the TFTP kernel +else + if printenv kernel + then + echo no bootfile specified, will use one from flash + else + setenv bootfile /opt/crayx1/craymcu/l1/flash/linux.image + echo OH NO! we have no bootfile,nor flash kernel! try default: $bootfile + tftp $tftp_addr $bootfile + setenv kernel $tftp_addr + fi +fi + +# the rootfs. +if printenv rootpath +then + echo rootpath is $rootpath + if printenv initrd + then + echo initrd is also specified, so use $initrd + tftp $tftp2_addr $initrd + setenv bootargs root=/dev/ram0 rw cwsroot=$serverip:$rootpath $bootargs + bootm $kernel $tftp2_addr + else + echo initrd is not specified, so use NFSROOT $rootpat + setenv bootargs root=/dev/nfs ro nfsroot=$serverip:$rootpath $bootargs + bootm $kernel + fi +else + echo we have no rootpath check for one in flash + if printenv rootfs + then + echo I will use the one in flash + setenv bootargs root=/dev/mtdblock/0 ro rootfstype=squashfs $bootargs + bootm $kernel + else + setenv rootpath /export/crayl1 + echo OH NO! we have no rootpath,nor flash kernel! try default: $rootpath + setenv bootargs root=/dev/mtdblock/0 ro rootfstype=squashfs $bootargs + bootm $kernel + fi +fi +reset |