118 lines
2.7 KiB
Plaintext
118 lines
2.7 KiB
Plaintext
# $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
|