just need to wait a little for the DRAM initialization to finish. Can't use fel until we know it's finished or things breaks down.
55 lines
1.2 KiB
Bash
Executable File
55 lines
1.2 KiB
Bash
Executable File
#!/bin/sh -e
|
|
top=`dirname $0`
|
|
if [ $# -lt 2 ]; then
|
|
echo "Usage: $0 board u-boot.bin [boot.scr|-] [kernel script.bin [initramfs]]"
|
|
exit 1
|
|
fi
|
|
board=$1; shift || (echo "ERROR: Board must be specified"; exit 1;)
|
|
uboot=$1; shift || (echo "ERROR: u-boot.bin must be specified"; exit 1;)
|
|
bootscr=$tob/felboot/ramboot.scr
|
|
if [ ! -f $bootscr ]; then
|
|
bootscr=$top/bin/ramboot.scr
|
|
fi
|
|
case "$1" in
|
|
*.scr) bootscr="$1"; shift
|
|
;;
|
|
esac
|
|
kernel=$1; shift || true
|
|
scriptbin=$1; shift || true
|
|
initramfs=$1; shift || true
|
|
fel() {
|
|
echo fel "$@"
|
|
$top/fel $@
|
|
}
|
|
felboot=$top/felboot/fel-boot-${board}.bin
|
|
if [ ! -f $felboot ]; then
|
|
felboot=$top/bin/fel-boot-${board}.bin
|
|
fi
|
|
if [ ! -f $felboot ]; then
|
|
echo "ERROR: Can't find fel-boot binary for ${board}"
|
|
exit 1
|
|
fi
|
|
if [ ! -f $bootscr ]; then
|
|
echo "ERROR: Can't fint boot script '${bootscr}'"
|
|
exit 1
|
|
fi
|
|
fel write 0x2000 $felboot
|
|
fel exe 0x2000
|
|
sleep 1 # Wait for DRAM initialization to complete
|
|
if [ -n "$uboot" ]; then
|
|
fel write 0x4a000000 $uboot
|
|
fi
|
|
if [ -n "$bootscr" ]; then
|
|
fel write 0x41000000 $bootscr
|
|
fi
|
|
if [ -n "$kernel" ]; then
|
|
if [ -n "$scriptbin" ]; then
|
|
fel write 0x43000000 $scriptbin
|
|
fi
|
|
fel write 0x44000000 $kernel
|
|
if [ -n "$initramfs" ]; then
|
|
fel write 0x4c000000 $initramfs
|
|
fi
|
|
fi
|
|
fel exe 0x4a000000
|