[RFC] omap3evm: Set preliminary environment
Sanjeev Premi
premi at ti.com
Thu Feb 9 13:24:28 EST 2012
This is still work-in-progress, but wanted to
share them early for any feedback.
Signed-off-by: Sanjeev Premi <premi at ti.com>
---
I have made offline edits on these scripts before making
this patch. There is a possibility of run-time failure.
You will also observe many TODOs. Hope to get them sorted
tomorrow - for a patch worthy of applying on the tree.
arch/arm/boards/omap3evm/env/bin/boot | 27 ++++++++++
arch/arm/boards/omap3evm/env/bin/init | 27 ++++++++++
arch/arm/boards/omap3evm/env/bin/set-local-env | 66 ++++++++++++++++++++++++
arch/arm/boards/omap3evm/env/config | 52 +++++++++++++++++++
4 files changed, 172 insertions(+), 0 deletions(-)
create mode 100644 arch/arm/boards/omap3evm/env/bin/boot
create mode 100644 arch/arm/boards/omap3evm/env/bin/init
create mode 100644 arch/arm/boards/omap3evm/env/bin/set-local-env
create mode 100644 arch/arm/boards/omap3evm/env/config
diff --git a/arch/arm/boards/omap3evm/env/bin/boot b/arch/arm/boards/omap3evm/env/bin/boot
new file mode 100644
index 0000000..58e950a
--- /dev/null
+++ b/arch/arm/boards/omap3evm/env/bin/boot
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+if [ "$boot_method" = "disk" ]; then
+ #
+ # Mount the partition containing kernel image
+ #
+ mkdir /boot
+
+ echo mount /dev/$kernel_part fat /boot
+ mount /dev/$kernel_part fat /boot
+#
+# TODO: This (and similar variations of the check) cause exceptions
+# Keep commented for now.
+# if [ "$?" != "0" ]; then
+# echo ":: Couldn't mount the MMC/SD card"
+# exit 1
+# fi
+
+ bootm -c -v /boot/uImage
+else
+ #
+ # TODO: Boot from tftp + nfs
+ #
+fi
+
+echo ":: Unable to boot. Check environment variables."
+echo "::"
diff --git a/arch/arm/boards/omap3evm/env/bin/init b/arch/arm/boards/omap3evm/env/bin/init
new file mode 100644
index 0000000..3bded32
--- /dev/null
+++ b/arch/arm/boards/omap3evm/env/bin/init
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+export PATH=/env/bin
+
+#
+# Source generic configuration
+#
+. /env/config
+
+#
+# Populate environment based on config params
+#
+. /env/bin/set-local-env
+
+echo ""
+echo -n ":: Press any key to stop autoboot: "
+timeout -a $autoboot_timeout
+if [ $? != 0 ]; then
+ exit
+fi
+
+echo ""
+
+#
+# Proceed to boot
+#
+. /env/bin/boot
diff --git a/arch/arm/boards/omap3evm/env/bin/set-local-env b/arch/arm/boards/omap3evm/env/bin/set-local-env
new file mode 100644
index 0000000..b92f037
--- /dev/null
+++ b/arch/arm/boards/omap3evm/env/bin/set-local-env
@@ -0,0 +1,66 @@
+#!/bin/sh
+
+#
+# Set the IP address
+# TODO: Update for DHCP when booting via tftp
+#
+if [ "$ip_method" = "static" ]; then
+ eth0.ipaddr=$evm_ipaddr
+ eth0.gateway=$evm_gateway
+ eth0.netmask=$evm_netmask
+fi
+
+#
+# Select the location of kernel and root filesystem based on boot method
+#
+echo "::"
+
+if [ -n "$boot_method" ]; then
+ echo " : No boot method specified. Using 'disk'..."
+ boot_method=disk
+fi
+
+if [ "$boot_method" = "disk" ]; then
+ echo ":: Booting from 'disk' ..."
+ rootfs_loc=disk
+ kernel_loc=disk
+
+ # Location of kernel image (for Barebox)
+ kernel_part=disk0.0
+
+ # Location of root filesystem (for Linux)
+ rootfs_part=mmcblk0p2
+elif [ "$boot_method" = "net" ]; then
+ echo ":: Booting from 'net' ..."
+ rootfs_loc=net
+ kernel_loc=net
+
+ nfsroot="$nfs_server:$nfs_path"
+else
+ echo ":: Unknown boot method - $boot_method"
+ exit 1
+fi
+
+echo "::"
+
+#
+# Bootargs: Append root filesystem info
+#
+if [ "$rootfs_loc" = "disk" ]; then
+ bootargs="$bootargs noinitrd root=/dev/$rootfs_part rw rootfstype=$rootfs_type"
+elif [ "$rootfs_loc" = "net" ]; then
+ bootargs="$bootargs noinitrd root=/dev/nfs nfsroot=$nfsroot,tcp"
+elif [ "$rootfs_loc" = "initrd" ]; then
+ bootargs="$bootargs root=/dev/ram0 rdinit=/sbin/init"
+fi
+
+#
+# Bootargs: Append network info
+#
+if [ "$ip_method" = "dhcp" ]; then
+ bootargs="$bootargs ip=dhcp"
+elif [ "$ip_method" = "static" ]; then
+ bootargs="$bootargs ip=$eth0.ipaddr::$eth0.gateway:$eth0.netmask:::"
+else
+ bootargs="$bootargs ip=none"
+fi
diff --git a/arch/arm/boards/omap3evm/env/config b/arch/arm/boards/omap3evm/env/config
new file mode 100644
index 0000000..3525e40
--- /dev/null
+++ b/arch/arm/boards/omap3evm/env/config
@@ -0,0 +1,52 @@
+#!/bin/sh
+
+#
+# Timeout for automatic boot
+#
+autoboot_timeout=2
+
+#
+# Basic bootargs
+#
+bootargs="console=tty02,115200n8 mem=256M earlyprintk=serial,ttyO2,115200"
+#
+# Set fancy prompt (if CONFIG_HUSH_FANCY_PROMPT was selected)
+#
+PS1="\e[1;32m[\w] \e[1;31m #\e[0m "
+
+#
+# Boot method
+# Use one of: tftp / nand / disk
+#
+boot_method=disk
+
+#
+# Format of root filesystem
+# Use one of: ext2/ ext3 (depends on the medium)
+#
+rootfs_type=ext3
+
+#
+# Method for getting the IP address
+# Use one of: none / static / dhcp
+#
+ip_method=dhcp
+
+#
+# IP address of the NFS server
+# (Used only if the filesystem is mounted over NFS)
+#
+nfs_server=192.168.1.1
+
+#
+# Path (on NFS server) to be mounted
+#
+nfs_path=/home/user/nfs-export
+
+#
+# Static IP configuration
+# (Used only if static IP is used)
+#
+evm_ipaddr=192.168.1.10
+evm_gateway=192.168.1.10
+evm_netmask=192.168.1.10
--
1.7.0.4
More information about the barebox
mailing list