# mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "a-b-c on Wed Dec 11 19:23:21 EST 2013" -d boot.cmd boot.scr echo Welcome to a-b-c 0.59. echo base_bootargs="ro rootwait" opt_bootargs="rhgb quiet" saved_bootargs="rhgb quiet" if test -n \'$findfdt\'; then echo "Using findfdt to set u_dtb"; run findfdt; fi setenv config_default 'u_k_addr=""; u_ramfs_addr=""; u_dtb_addr=""; skip_dtb=""; pass_dtb=1; u_dtb="$fdtfile"; u_extraargs=""; u_iodevs="mmc usb scsi sata ide"; u_fs="ext2 fat"; u_boot=bootm; u_devpart="0:1 0:2"; u_dir="/ /boot/"; systemd_args=""' run config_default setenv bootcmd_old \"$bootcmd\" u_kernel="" setenv config_cubie 'echo Configuring for cubie;run config_default; u_k_addr=0x40300000; u_ramfs_addr=0x41600000; u_dtb_addr=0x12345678; u_dtb=sun4i-a10-cubieboard.dtb; skip_dtb=1; pass_dtb=1; u_iodevs=mmc; u_fs=ext2; u_boot=bootm; u_extraargs="\$u_extraargs console=ttyS0,115200"' ca1=config_cubie setenv c1 "run config_cubie; run showdefs" setenv config_mvebu 'echo Configuring for mvebu;run config_default; u_k_addr=0x2080000; u_ramfs_addr=0x2880000; u_dtb_addr=5880000; skip_dtb=""; pass_dtb=1; u_iodevs="scsi ide"; u_devpart="0:1 0:2 1:1 1:2"; u_fs=ext2; u_boot=bootm; u_extraargs="\$u_extraargs console=ttyS0,115200n8"' ca2=config_mvebu setenv c2 "run config_mvebu; run showdefs" setenv config_axp_gp 'echo Configuring for axp_gp;run config_mvebu; u_dtb=armada-xp-gp.dtb' ca3=config_axp_gp setenv c3 "run config_axp_gp; run showdefs" setenv config_axp_openblocks 'echo Configuring for axp_openblocks;run config_mvebu; u_dtb=armada-xp-openblocks-ax3-4.dtb' ca4=config_axp_openblocks setenv c4 "run config_axp_openblocks; run showdefs" setenv config_arndale 'echo Configuring for arndale;run config_default; u_k_addr=0x40007000; u_ramfs_addr=0x42000000; u_dtb_addr=0x41f00000; u_dtb=exynos5250-arndale.dtb; skip_dtb=1; pass_dtb=1; u_iodevs=mmc; u_fs=ext2; u_boot=bootm; u_extraargs="\$u_extraargs console=ttySAC2,115200n8"' ca5=config_arndale setenv c5 "run config_arndale; run showdefs" setenv config_calxeda 'echo Configuring for calxeda;run config_default; skip_dtb=1; pass_dtb=1; u_iodevs=scsi; u_fs="ext4 ext2"; u_boot=bootz; u_extraargs="\$u_extraargs console=ttyAMA0"; u_k_addr=$kernel_addr_r; u_ramfs_addr=$ramdisk_addr_r; u_dtb_addr=$fdt_addr_r; u_dtb_addr=$fdt_addr' ca6=config_calxeda setenv c6 "run config_calxeda; run showdefs" setenv config_highbank 'echo Configuring for highbank;run config_calxeda; u_dtb=highbank.dtb' ca7=config_highbank setenv c7 "run config_highbank; run showdefs" setenv config_midway 'echo Configuring for midway;run config_calxeda; u_dtb=ecx-2000.dtb' ca8=config_midway setenv c8 "run config_midway; run showdefs" setenv config_imx 'echo Configuring for imx;run config_default; u_extraargs="\$u_extraargs console=\$console"; u_k_addr=0x14000000; u_ramfs_addr=0x32000000; u_dtb_addr=0x12000000; skip_dtb=""; pass_dtb=1; u_iodevs="mmc usb"; u_fs=ext2; u_boot=bootz; u_devpart="0:1 0:2 1:1 1:2"' ca9=config_imx setenv c9 "run config_imx; run showdefs" setenv config_utilite 'echo Configuring for utilite;run config_imx; u_boot=bootm; skip_dtb=1; pass_dtb=""; u_iodevs="sata mmc usb"' ca10=config_utilite setenv c10 "run config_utilite; run showdefs" setenv config_wandboard 'echo Configuring for wandboard;run config_imx; setenv u_dtb \$fdt_file' ca11=config_wandboard setenv c11 "run config_wandboard; run showdefs" setenv config_tegra 'echo Configuring for tegra;run config_default; u_extraargs="\$u_extraargs console=ttyS0,115200n8"; u_k_addr=4080000; u_ramfs_addr=4800000; u_dtb_addr=4000000; skip_dtb=""; pass_dtb=1; u_iodevs="usb mmc"; u_fs=ext2; u_boot=bootz; setenv fdt_high 0x2C000000; setenv initrd_high 0x2C000000; u_devpart="0:1 0:2 1:1 1:2"; u_dtb=\${soc}-\${board}.dtb' ca12=config_tegra setenv c12 "run config_tegra; run showdefs" setenv config_am33xx 'echo Configuring for am33xx;run config_default; u_k_addr=0x80300000; u_ramfs_addr=0x82000000; u_dtb_addr=0x81600000; skip_dtb=""; pass_dtb=1; u_iodevs="mmc usb"; u_fs="ext4 ext2 fat"; u_boot=bootz; u_devpart="0:3 0:2 0:1"; u_extraargs="\$u_extraargs console=ttyO0,115200n8"; u_dir="/boot/ /"; run findfdt; u_dtb="\$fdtfile"' ca13=config_am33xx setenv c13 "run config_am33xx; run showdefs" setenv config_omap3 'echo Configuring for omap3;run config_default; u_k_addr=0x80300000; u_ramfs_addr=0x82000000; u_dtb_addr=0x81600000; skip_dtb=""; pass_dtb=1; u_iodevs="mmc usb"; u_fs="ext2 fat"; u_boot=bootz; u_devpart="0:3 0:2 0:1"; u_extraargs="\$u_extraargs console=ttyO2,115200n8"; u_dir="/boot/ /"; run findfdt; u_dtb=\$fdtfile' ca14=config_omap3 setenv c14 "run config_omap3; run showdefs" setenv config_omap4 'echo Configuring for omap4;run config_default; u_k_addr=0x80300000; u_ramfs_addr=0x81600000; u_dtb_addr=0x81F00000; skip_dtb=""; pass_dtb=1 u_iodevs="mmc usb"; u_fs="ext4 ext2 fat"; u_boot=bootz; u_devpart="0:3 0:2 0:1"; u_extraargs="\$u_extraargs console=ttyO2,115200n8"; u_dir="/boot/ /"; run findfdt; u_dtb=\$fdtfile' ca15=config_omap4 setenv c15 "run config_omap4; run showdefs" setenv config_omap5 'echo Configuring for omap5;run config_default; u_k_addr=0x80300000; u_ramfs_addr=0x81600000; u_dtb_addr=0x825f0000; skip_dtb=""; pass_dtb=1; u_iodevs="mmc usb"; u_fs="ext4 ext2 fat"; u_boot=bootz; u_devpart="0:3 0:2 0:1"; u_extraargs="\$u_extraargs console=ttyO2,115200n8"; u_dir="/boot/ /"; setenv fdt_high 0x84000000; run findfdt; u_dtb=\$fdtfile' ca16=config_omap5 setenv c16 "run config_omap5; run showdefs" setenv config_omap3-beagle-xm 'echo Configuring for omap3-beagle-xm;run config_omap3; u_dtb=omap3-beagle-xm.dtb' ca17=config_omap3-beagle-xm setenv c17 "run config_omap3-beagle-xm; run showdefs" setenv config_omap3-beagle 'echo Configuring for omap3-beagle;run config_omap3; u_dtb=omap3-beagle.dtb' ca18=config_omap3-beagle setenv c18 "run config_omap3-beagle; run showdefs" if test -n $soc; then if test $soc = tegra2; then setenv soc tegra20 fi if test $soc = tegra20 || test $soc = tegra30 || test $soc = tegra114 ; then run config_tegra elif test $soc = am33xx; then run config_am33xx elif test $soc = omap4; then run config_omap4 elif test $soc = omap5; then run config_omap5 fi elif test -n $ethact; then if test $ethact = asx0; then run config_arndale elif test $ethact = FEC0; then run config_utilite elif test $ethact = FEC; then run config_wandboard elif test $ethact = xgmac0; then fdt addr 1000 fdt get value board / compatible if test $board = calxeda,highbank; then run config_highbank elif test $board = calxeda,ecx-2000; then run config_midway else run config_calxeda fi fi elif test -n $beaglerev; then run config_omap3 setenv findfdt 'setenv fdtfile omap3-beagle-xm.dtb; if test $beaglerev = C4; then setenv fdtfile omap3-beagle.dtb; elif test $beaglerev = Cx; then setenv fdtfile omap3-beagle.dtb; fi' elif test -n $mvNetConfig || test -n $disaMvPnp; then run config_xp_gp elif test -n $panicarg; then if test -n $preboot; then test 1 = 1 else run config_cubie fi fi c_count="1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18" if test -n $kernel_addr_r; then echo Found kernel_addr_r ($kernel_addr_r), using for u_k_addr. u_k_addr=$kernel_addr_r fi if test -n $ramdisk_addr_r; then echo Found ramdisk_addr_r ($ramdisk_addr_r), using for u_ramfs_addr. u_ramfs_addr=$ramdisk_addr_r fi if test -n $fdt_addr_r; then echo Found fdt_addr_r ($fdt_addr_r), using for u_dtb_addr. u_dtb_addr=$fdt_addr_r fi # For Calxeda if test -n $fdt_addr; then echo Found fdt_addr ($fdt_addr), using for u_dtb_addr. u_dtb_addr=$fdt_addr fi if test -n $dtb_file; then echo Found dtb_file ($dtb_file), using for u_dtb. u_dtb=$dtb_file fi if test -n $dtbfile; then echo Found dtbfile ($dtbfile), using for u_dtb. u_dtb=$dtbfile fi if test -n $u_dtb; then if test -n $skip_dtb; then echo Using defaults for $u_dtb, but will not load dtb during startup. else echo Using defaults for $u_dtb, and will load dtb during startup. fi else echo Could not successfully auto-detect system type. echo You may need to set u_k_addr, u_ramfs_addr, u_dtb_addr, and u_dtb fi echo "Will scan for kernels on $u_iodevs, using $u_fs filesystems with $u_boot" echo echo Starting menu init.... echo u_root=UUID=7ee85ed8-de4a-4779-8658-2daed0d35e97 #Print the defaults setenv showdefs 'echo ""; echo "The following configuration values are defined:"; echo u_k_addr: $u_k_addr; echo u_k_addr: $u_k_addr; echo u_ramfs_addr: $u_ramfs_addr; echo u_dtb_addr: $u_dtb_addr; echo u_iodevs: $u_iodevs; echo u_iodevs: $u_iodevs; echo u_fs: $u_fs; echo u_devpart: $u_devpart; echo u_boot: $u_boot; echo u_root: $u_root; echo u_dtb: $u_dtb; echo skip_dtb: $skip_dtb (null means a dtb will be loaded); echo pass_dtb: $pass_dtb (null means no bootarg passed); echo u_extraargs: $u_extraargs' # catcat: variable pointer conversion: input catin, output catout setenv catcat setenv catout\;'setenv catX "setenv catout '\\\\\\\''\$\$catin'\\\\\\\''"' \; run catX # Something failed. setenv failed 'echo The last operation failed.; run help; run false' setenv true test 1 = 1 setenv false test 1 = 0 # Some helpful ways of recovering setenv graphical 'systemd_args="systemd.unit=graphical.target cma=64M"; echo "Will boot with graphical target (cma=64M)"' setenv single 'systemd_args="systemd.unit=emergency.target"; opt_bootargs=""; echo "Will boot into single user mode"' setenv rescue 'systemd_args="systemd.unit=rescue.target"; opt_bootargs=""; echo "Will boot into rescue mode"' setenv debug 'systemd_args="earlyprintk systemd.log_level=debug systemd.log_target=kmsg log_buf_len=1M"; opt_bootargs=""; echo "Will boot with debug output"' setenv normal 'systemd_args=""; opt_bootargs=$saved_bootargs; echo "Will boot normally"' # main menu setenv menu 'echo; echo a-b-c main menu; echo ---------------; echo run clist: for a list of known board configurations.; echo run klist: for a list of kernels.; echo run dtblist: for a list of dtbs.; echo run single: for single user target on boot.; echo run rescue: for rescue target on boot.; echo run graphical: for graphical target on boot.; echo run debug: for verbose debug boot.; echo run normal: for default systemd boot target (default).; echo run showdefs: for current defaults.; echo boot or run bootcmd: boot with currently configured parameters.; echo ""; echo Enter command from the above list.; echo ""' setenv help run menu kd_1=am335x-bone.dtb kd_2=am335x-boneblack.dtb kd_3=am335x-evm.dtb kd_4=am335x-evmsk.dtb kd_5=am3517-evm.dtb kd_6=am3517_mt_ventoux.dtb kd_7=am43x-epos-evm.dtb kd_8=armada-370-db.dtb kd_9=armada-370-mirabox.dtb kd_10=armada-370-rd.dtb kd_11=armada-xp-db.dtb kd_12=armada-xp-gp.dtb kd_13=armada-xp-openblocks-ax3-4.dtb kd_14=ecx-2000.dtb kd_15=exynos4210-origen.dtb kd_16=exynos4210-smdkv310.dtb kd_17=exynos4210-trats.dtb kd_18=exynos4210-universal_c210.dtb kd_19=exynos4412-odroidx.dtb kd_20=exynos4412-origen.dtb kd_21=exynos4412-smdk4412.dtb kd_22=exynos5250-arndale.dtb kd_23=exynos5250-smdk5250.dtb kd_24=exynos5250-snow.dtb kd_25=exynos5420-smdk5420.dtb kd_26=exynos5440-sd5v1.dtb kd_27=exynos5440-ssdk5440.dtb kd_28=highbank.dtb kd_29=imx25-karo-tx25.dtb kd_30=imx25-pdk.dtb kd_31=imx27-apf27.dtb kd_32=imx27-apf27dev.dtb kd_33=imx27-pdk.dtb kd_34=imx27-phytec-phycore-rdk.dtb kd_35=imx27-phytec-phycore-som.dtb kd_36=imx31-bug.dtb kd_37=imx51-apf51.dtb kd_38=imx51-apf51dev.dtb kd_39=imx51-babbage.dtb kd_40=imx53-ard.dtb kd_41=imx53-evk.dtb kd_42=imx53-m53evk.dtb kd_43=imx53-mba53.dtb kd_44=imx53-qsb.dtb kd_45=imx53-smd.dtb kd_46=imx6dl-sabreauto.dtb kd_47=imx6dl-sabresd.dtb kd_48=imx6dl-wandboard.dtb kd_49=imx6q-arm2.dtb kd_50=imx6q-phytec-pbab01.dtb kd_51=imx6q-sabreauto.dtb kd_52=imx6q-sabrelite.dtb kd_53=imx6q-sabresd.dtb kd_54=imx6q-sbc6x.dtb kd_55=imx6q-wandboard.dtb kd_56=imx6sl-evk.dtb kd_57=omap2420-h4.dtb kd_58=omap3-beagle-xm.dtb kd_59=omap3-beagle.dtb kd_60=omap3-devkit8000.dtb kd_61=omap3-evm.dtb kd_62=omap3-igep0020.dtb kd_63=omap3-igep0030.dtb kd_64=omap3-tobi.dtb kd_65=omap3430-sdp.dtb kd_66=omap4-panda-a4.dtb kd_67=omap4-panda-es.dtb kd_68=omap4-panda.dtb kd_69=omap4-sdp-es23plus.dtb kd_70=omap4-sdp.dtb kd_71=omap4-var-som.dtb kd_72=omap5-uevm.dtb kd_73=socfpga_cyclone5.dtb kd_74=socfpga_vt.dtb kd_75=sun4i-a10-cubieboard.dtb kd_76=sun4i-a10-hackberry.dtb kd_77=sun4i-a10-mini-xplus.dtb kd_78=sun5i-a10s-olinuxino-micro.dtb kd_79=sun5i-a13-olinuxino.dtb kd_80=tegra114-dalmore.dtb kd_81=tegra114-pluto.dtb kd_82=tegra20-harmony.dtb kd_83=tegra20-iris-512.dtb kd_84=tegra20-medcom-wide.dtb kd_85=tegra20-paz00.dtb kd_86=tegra20-plutux.dtb kd_87=tegra20-seaboard.dtb kd_88=tegra20-tec.dtb kd_89=tegra20-trimslice.dtb kd_90=tegra20-ventana.dtb kd_91=tegra20-whistler.dtb kd_92=tegra30-beaver.dtb kd_93=tegra30-cardhu-a02.dtb kd_94=tegra30-cardhu-a04.dtb kd_95=vexpress-v2p-ca15-tc1.dtb kd_96=vexpress-v2p-ca15_a7.dtb kd_97=vexpress-v2p-ca5s.dtb kd_98=vexpress-v2p-ca9.dtb kd_99=vf610-twr.dtb kd_100=xenvm-4.2.dtb kd_101=zynq-zc702.dtb kd_102=zynq-zc706.dtb kd_103=zynq-zed.dtb kfdtc1='14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 95 96 97 98 100' kfdtc2='1 2 3 4 5 6 7 8 9 10 11 12 13 14 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 101 102 103' k_count='1 2' kv1=3.11.10-301.fc20.armv7hl+lpae ka1=lpae kv2=3.11.10-301.fc20.armv7hl ka2=unified setenv k1 "u_k=1; run kl_picked" setenv k2 "u_k=2; run kl_picked" #Infra for klist command setenv klist 'echo; echo Kernel List; echo -----------; run kl_enum kl_default' setenv kl_enum 'for i in $k_count;do setenv catin ka$i;run catcat ; setenv tmpktype $catout;setenv catin kv$i;run catcat ;echo k$i: $catout for $tmpktype ;done' setenv kl_default 'echo (Currently selected: k$u_k: $u_kernel); echo; echo Type \\\"run kX\\\" where X is the kernel number to use.' #Run each time a new kernel is selected setenv kl_picked 'have_k=""; have_i=""; have_d=""; setenv catin kv$u_k;run catcat ;setenv u_kernel $catout; echo Using kernel k$u_k ($u_kernel).' #Infra for dtblist command setenv dtblist 'run dtb_check dtb_enum dtb_end' setenv dtb_check 'if test X$u_kernel = X; then echo "No kernel selected. Use klist first."; run false; else echo; echo "Device Tree Blob (DTB) list"; echo; echo "Kernel $u_kernel has the following dtbs available:"; fi' setenv dtb_enum 'setenv catin kfdtc$u_k;run catcat ;for i in $catout;do setenv catin kd_$i; run catcat ; echo dtb$i: $catout;setenv dtb$i "u_dtb=$catout\; run dtb_ok";done' setenv dtb_end 'echo Type \"run dtbX\" where X is the dtb number to use.; echo (Currently selected: $u_dtb); echo' setenv dtb_ok echo DTB selected. Type \\\"boot\\\" to start. #Set a default kernel setenv set_u_k 'if test -n $u_dtb ; then u_kernel="";for on_k in $k_count; do if test -n $u_kernel\;then run true ;else setenv catin kfdtc$on_k ;run catcat ; for on_d in $catout; do setenv catin kd_${on_d}; run catcat ;if test $catout = $u_dtb ;then run k$on_k ;fi ;done ;fi ;done; if test -n $u_kernel;then run true;else echo "No kernel provides dtb named $u_dtb";run false;fi ;else run set_u_k_nodtb help ;fi' setenv set_u_k_nodtb 'echo "No value for u_dtb. Use klist and dtblist to select."' #Infra for clist command setenv clist 'echo; echo Board Configuration List; echo ------------------------; for i in $c_count;do setenv catin ca$i;run catcat ;echo c$i: $catout ;done; echo Type \\"run cX\\" where X is the board configuration number to use.' # begin boot sequence - sanity checks setenv bootcmd 'if test -n $u_k_addr ;then if test -n $u_ramfs_addr ;then if test -n $skip_dtb||test -n $u_dtb&&test -n $u_dtb_addr;then run l_init ;else run sanity_nodtb ;fi ;else run sanity_noaddr ;fi ;else run sanity_noaddr ;fi' setenv sanity_nodtb 'echo Missing load address or name of dtb; run showdefs; run failed' setenv sanity_noaddr 'echo Missing load address for kernel or initramfs; run showdefs; run failed' # basic sanity checks complete, set strings based on boot method setenv l_init 'if test $u_boot = bootz; then u_pfx=vmlinuz; u_rpfx=uInitrd; else u_pfx=uImage; u_rpfx=uInitrd ;fi; run l_wrap; run failed' # load kernel/ramfs/dtb using combinations of dir, iodev, fses and devpart setenv l_wrap 'for dir in $u_dir ; do for iodev in $u_iodevs ; do for fses in $u_fs ; do for devpart in $u_devpart ; do run n_kernel ; done ; done ; done ; done' # load kernel if needed then/and jump to ramfs setenv n_kernel 'if test -n $have_k;then run n_initramfs ;else if ${fses}load ${iodev} ${devpart} ${u_k_addr} ${dir}${u_pfx}-${u_kernel} ;then have_k=1;fi ;run n_initramfs ;fi' # load initramfs if needed then/and jump to dtb setenv n_initramfs 'if test -n $have_i;then run n_dtb ;else if ${fses}load ${iodev} ${devpart} ${u_ramfs_addr} ${dir}${u_rpfx}-${u_kernel};then have_i=1;fi ;run n_dtb ;fi' # load dtb if needed then/and boot setenv n_dtb 'if test -n $skip_dtb || test -n $have_d;then run l_boot_trio ;else if test -n $skip_dtb;then echo Skipping dtb;run l_boot_trio ;else if ${fses}load ${iodev} ${devpart} ${u_dtb_addr} ${dir}dtb-${u_kernel}/${u_dtb} ;then have_d=1;run l_boot_trio ;fi ; fi ;fi' setenv l_boot_trio 'if test -n $have_k&& test -n $have_i ;then run l_boot_trio_nodtb ;fi' setenv l_boot_trio_nodtb 'if test -n $skip_dtb; then run l_bootargs ;else run l_boot_trio_withdtb; fi' setenv l_boot_trio_withdtb 'if test -n $have_d; then run l_bootargs ;else run echo Missing dtb; fi' # construct final boot arguments setenv l_bootargs 'run l_bootargs2; echo bootargs are $bootargs; run l_boot' setenv l_bootargs2 setenv bootargs '$base_bootargs $opt_bootargs root=$u_root $u_extraargs $systemd_args' setenv l_boot 'if test -n $skip_dtb ;then if test -n $pass_dtb ;then run l_boot_dtb ;else run l_boot_nodtb ;fi ;else run l_boot_dtb ;fi' setenv l_boot_dtb '${u_boot} $u_k_addr $u_ramfs_addr $u_dtb_addr' setenv l_boot_nodtb '${u_boot} $u_k_addr $u_ramfs_addr' if test -n $u_dtb; then if run set_u_k; then echo Auto-booting $u_kernel in 3 seconds. Type ^C to abort then \"run menu\" for help. for i in 3 2 1; do echo \\\\c $i; sleep 1; done if test $? = 0; then echo ... run bootcmd fi else echo "No value for u_kernel. Getting help." fi else echo "Failed to auto-boot" run set_u_k_nodtb fi run help