summaryrefslogtreecommitdiffstats
path: root/board/x86_generic/env/bin/boot
diff options
context:
space:
mode:
authorJuergen Beisert <jbe@pengutronix.de>2010-01-12 11:15:42 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2010-01-14 10:06:16 +0100
commit46348b5d65ce6911b9d936f684828b2760cf2a14 (patch)
tree3de4c47dda6a5ba66b7c5f751ae83bc65a4d86ef /board/x86_generic/env/bin/boot
parent7dcc15e8197e647abc80b1d3298a91edd45a8c2d (diff)
downloadbarebox-46348b5d65ce6911b9d936f684828b2760cf2a14.tar.gz
barebox-46348b5d65ce6911b9d936f684828b2760cf2a14.tar.xz
Add a generic PC platform
This code adds a generic x86 platform, enabling barebox to act as a bootloader like 'GRUB'. Very minimalistic, yet. Supports only a serial console and is tested with QEMU only. Signed-off-by: Juergen Beisert <jbe@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'board/x86_generic/env/bin/boot')
-rw-r--r--board/x86_generic/env/bin/boot37
1 files changed, 37 insertions, 0 deletions
diff --git a/board/x86_generic/env/bin/boot b/board/x86_generic/env/bin/boot
new file mode 100644
index 0000000000..fcfffe3194
--- /dev/null
+++ b/board/x86_generic/env/bin/boot
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+. /env/config
+
+if [ x$1 = xdisk ]; then
+ root=disk
+ kernel=disk
+fi
+
+if [ x$1 = xnet ]; then
+ root=net
+ kernel=net
+fi
+
+if [ x$ip = xdhcp ]; then
+ bootargs="$bootargs ip=dhcp"
+else
+ bootargs="$bootargs ip=$eth0.ipaddr:$eth0.serverip:$eth0.gateway:$eth0.netmask:::"
+fi
+
+if [ x$root = xdisk ]; then
+ bootargs="$bootargs root=$rootpart_disk rootfstype=$rootpart_fs rw"
+else
+ bootargs="$bootargs root=/dev/nfs nfsroot=$eth0.serverip:$nfsroot,v3,tcp rw"
+fi
+
+if [ $kernel = net ]; then
+ if [ x$ip = xdhcp ]; then
+ dhcp
+ fi
+ tftp $uimage uImage || exit 1
+ bootm uImage
+else
+ bootargs="BOOT_IMAGE=$kernel_device auto $bootargs"
+ linux16 $kernel_device
+fi
+