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