summaryrefslogtreecommitdiffstats
path: root/arch/arm/boards/at91sam9m10g45ek
diff options
context:
space:
mode:
authorJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>2012-04-07 05:15:01 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2012-04-11 08:46:53 +0200
commitf1b14ffe46632c9e0a848f1badd62decb561b684 (patch)
treec804faaa64453b680a382426880782ef7e9dcfc2 /arch/arm/boards/at91sam9m10g45ek
parentf151e5485546f2a3943d8d7df811caf4232bdcad (diff)
downloadbarebox-f1b14ffe46632c9e0a848f1badd62decb561b684.tar.gz
barebox-f1b14ffe46632c9e0a848f1badd62decb561b684.tar.xz
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>
Diffstat (limited to 'arch/arm/boards/at91sam9m10g45ek')
-rw-r--r--arch/arm/boards/at91sam9m10g45ek/env/bin/boot_board51
-rw-r--r--arch/arm/boards/at91sam9m10g45ek/env/bin/menu_boot37
2 files changed, 88 insertions, 0 deletions
diff --git a/arch/arm/boards/at91sam9m10g45ek/env/bin/boot_board b/arch/arm/boards/at91sam9m10g45ek/env/bin/boot_board
new file mode 100644
index 0000000000..3d7426f527
--- /dev/null
+++ b/arch/arm/boards/at91sam9m10g45ek/env/bin/boot_board
@@ -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
diff --git a/arch/arm/boards/at91sam9m10g45ek/env/bin/menu_boot b/arch/arm/boards/at91sam9m10g45ek/env/bin/menu_boot
new file mode 100644
index 0000000000..d0b1396de9
--- /dev/null
+++ b/arch/arm/boards/at91sam9m10g45ek/env/bin/menu_boot
@@ -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