| # $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 | |
| source $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 |