9
0
Fork 0

at91sam9m10g45ek: add boot menu support

by default we boot the same way as before

The menu add interactive interface to choice boot, reset or update the system.
We still can access the shell.

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Jean-Christophe PLAGNIOL-VILLARD 2012-04-07 05:15:01 +02:00 committed by Sascha Hauer
parent f151e54855
commit f1b14ffe46
2 changed files with 88 additions and 0 deletions

View File

@ -0,0 +1,51 @@
#!/bin/sh
PATH=/env/bin
export PATH
. /env/config
menu -r -m boot
menu -a -m boot -d "\e[1;36mWelcome on Barebox Boot Sequence\e[0m"
menu -e -a -m boot -c 'menu_boot' -d "boot (default) "
menu -e -a -m boot -c 'menu_boot -m nand' -d "boot from nand "
menu -e -a -m boot -c 'menu_boot -k nfs -r net' -d "boot from nfs (kernel nfs) "
menu -e -a -m boot -c 'menu_boot -k tftp -r net' -d "boot from nfs (kernel tftp)"
menu -e -a -m boot -c 'clear' -d "\e[2;33mshell \e[0m"
menu -e -a -m boot -u update -d "update "
menu -e -a -m boot -c reset -d "\e[1;31mreset \e[0m"
# Submenu Update
menu -r -m update
menu -a -m update -d "\e[1;36mUpdate\e[0m"
menu -e -a -m update -u update_barebox -d "\e[2;33mbarebox\e[0m"
menu -e -a -m update -u update_kernel -d "kernel"
menu -e -a -m update -u update_rootfs -d "rootfs"
menu -e -a -m update -c 'true' -d "back "
# submenu update barebox
menu -r -m update_barebox
menu -a -m update_barebox -d "\e[2;33mBarebox Update Methode\e[0m"
menu -e -a -m update_barebox -c 'update -t barebox -d nand -m tftp -c; echo ; timeout -a 3' -d "tftp "
menu -e -a -m update_barebox -c 'update -t barebox -d nand -m xmodem -c; echo ; timeout -a 3' -d "xmodem"
menu -e -a -m update_barebox -c 'update -t barebox -d nand -m nfs -c; echo ; timeout -a 3' -d "nfs "
menu -e -a -m update_barebox -c 'true' -d "back "
# submenu update kernel
menu -r -m update_kernel
menu -a -m update_kernel -d "\e[1;36mKernel Update Methode\e[0m"
menu -e -a -m update_kernel -c 'update -t kernel -d nand -m tftp -c; echo ; timeout -a 3' -d "tftp "
menu -e -a -m update_kernel -c 'update -t kernel -d nand -m xmodem -c; echo ; timeout -a 3' -d "xmodem"
menu -e -a -m update_kernel -c 'update -t kernel -d nand -m nfs -c; echo ; timeout -a 3' -d "nfs "
menu -e -a -m update_kernel -c 'true' -d "back "
# submenu update barebox
menu -r -m update_rootfs
menu -a -m update_rootfs -d "\e[1;36mRootfs Update Methode\e[0m"
menu -e -a -m update_rootfs -c 'update -t rootfs -d nand -m tftp -c; echo ; timeout -a 3' -d "tftp "
menu -e -a -m update_rootfs -c 'update -t rootfs -d nand -m xmodem -c; echo ; timeout -a 3' -d "xmodem"
menu -e -a -m update_rootfs -c 'update -t rootfs -d nand -m nfs -c; echo ; timeout -a 3' -d "nfs "
menu -e -a -m update_rootfs -c 'true' -d "back "
menu -s -m boot -A $autoboot_timeout
exit 1

View File

@ -0,0 +1,37 @@
#!/bin/sh
. /env/config
while getopt "k:r:i:m:" Option
do
if [ ${Option} = k ]; then
kernel_loc=${OPTARG}
elif [ ${Option} = r ]; then
rootfs_loc=${OPTARG}
elif [ ${Option} = i ]; then
ip=${OPTARG}
elif [ ${Option} = m ]; then
mode=${OPTARG}
else
fi
done
boot_opt=
if [ x$mode != x ]; then
boot_opt="-m ${mode}"
else
if [ x$kernel_loc != x ]; then
boot_opt="-k ${kernel_loc}"
fi
if [ x$kernel_loc != x ]; then
boot_opt="-r ${rootfs_loc}"
fi
fi
boot ${boot_opt} -i ${ip}
echo -n "boot error: Hit any key to return to the menu: "
timeout -a 3
menu -s -m boot
exit 1