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