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