1#!/usr/bin/env bash 2 3#generate a u-boot u-env. 4list="0x80200000 kernel.bin 50x82000000 ds.elf 60x82800000 rs.elf 70x83000000 pm.elf 80x83800000 sched.elf 90x84000000 vfs.elf 100x84800000 memory.elf 110x85000000 tty.elf 120x85800000 mib.elf 130x86000000 vm.elf 140x86800000 pfs.elf 150x87000000 mfs.elf 160x87800000 init.elf" 17 18# 19# PREFIX for loading file over tftp to allow hosting multiple 20# version/devices. 21NETBOOT_PREFIX="" 22NETBOOT="no" 23BOOT="mmcbootcmd" 24 25#default for the beagleboard-xM 26CONSOLE=tty02 27#verbosity 28VERBOSE=0 29HZ=1000 30 31while getopts "c:v:h:p:n?" c 32do 33 case "$c" in 34 \?) 35 echo "Usage: $0 [-p netboot_prefix] -n [-c consoletty] [-v level] " >&2 36 exit 1 37 ;; 38 n) 39 # genrate netbooting uEnv.txt 40 BOOT="netbootcmd" 41 NETBOOT="yes" 42 ;; 43 p) 44 NETBOOT_PREFIX=$OPTARG 45 ;; 46 c) 47 CONSOLE=$OPTARG 48 ;; 49 v) 50 VERBOSE=$OPTARG 51 ;; 52 h) 53 # system hz 54 HZ=$OPTARG 55 ;; 56 esac 57done 58 59fill_cmd() { 60 #load == load method like fatload mmc 0:1 61 #prefix is an optional directory containing the ending / 62 load=$1 63 prefix=$2 64 export IFS=" " 65 echo $list | while true 66 do 67 if ! read -r mem addr 68 then 69 break 70 fi 71 #e.g. ; fatloat mmc 0:1 0x82000000 mydir/ds.elf 72 echo -n "; $load $mem $prefix$addr" 73 done 74} 75 76 77echo "# Set the command to be executed" 78echo "uenvcmd=run $BOOT" 79echo "bootargs=console=$CONSOLE rootdevname=c0d0p1 verbose=$VERBOSE hz=$HZ" 80echo 81echo 'bootminix=setenv bootargs \$bootargs board_name=\$board_name ; echo \$bootargs; go 0x80200000 \\\"$bootargs\\\"' 82echo 83echo "mmcbootcmd=echo starting from MMC ; mmc part 0; $(fill_cmd "fatload mmc 0:1" "") ; run bootminix" 84echo 85echo "# Netbooting." 86echo "serverip=192.168.12.10" 87echo "ipaddr=192.168.12.62" 88echo "usbnet_devaddr=e8:03:9a:24:f9:10" 89echo "usbethaddr=e8:03:9a:24:f9:11" 90echo "netbootcmd=echo starting from TFTP; $(fill_cmd "tftp" "$NETBOOT_PREFIX") ; run bootminix" 91exit 0 92