[53dd6d61] | 1 | # we store all generated files here. |
---|
| 2 | TMPDIR=tmp_sdcard_dir.$$ |
---|
| 3 | |
---|
| 4 | FATIMG=$TMPDIR/bbxm_boot_fat.img |
---|
| 5 | SIZE=65536 |
---|
| 6 | OFFSET=2048 |
---|
| 7 | FATSIZE=`expr $SIZE - $OFFSET` |
---|
| 8 | UENV=uEnv.txt |
---|
| 9 | |
---|
| 10 | rm -rf $TMPDIR |
---|
| 11 | mkdir -p $TMPDIR |
---|
| 12 | |
---|
| 13 | if [ $# -ne 2 ] |
---|
| 14 | then echo "Usage: $0 <RTEMS prefix> <RTEMS executable>" |
---|
| 15 | exit 1 |
---|
| 16 | fi |
---|
| 17 | |
---|
| 18 | PREFIX=$1 |
---|
| 19 | |
---|
| 20 | if [ ! -d "$PREFIX" ] |
---|
| 21 | then echo "This script needs the RTEMS tools bindir as the first argument." |
---|
| 22 | exit 1 |
---|
| 23 | fi |
---|
| 24 | |
---|
| 25 | executable=$2 |
---|
| 26 | |
---|
| 27 | case "$2" in |
---|
| 28 | *beagleboard*) |
---|
| 29 | ubootcfg=omap3_beagle |
---|
| 30 | imgtype=bb |
---|
| 31 | ;; |
---|
| 32 | *beaglebone*) |
---|
| 33 | ubootcfg=am335x_evm |
---|
| 34 | imgtype=bone |
---|
| 35 | ;; |
---|
| 36 | *) |
---|
| 37 | echo "Can't guess which uboot to use - please specify full path to executable." |
---|
| 38 | exit 1 |
---|
| 39 | ;; |
---|
| 40 | esac |
---|
| 41 | |
---|
| 42 | app=rtems-app.img |
---|
| 43 | |
---|
| 44 | if [ ! -f "$executable" ] |
---|
| 45 | then echo "Expecting RTEMS executable as arg; $executable not found." |
---|
| 46 | exit 1 |
---|
| 47 | fi |
---|
| 48 | |
---|
| 49 | set -e |
---|
| 50 | |
---|
| 51 | IMG=${imgtype}_`basename $2`-sdcard.img |
---|
| 52 | |
---|
| 53 | # Make an empty image |
---|
| 54 | dd if=/dev/zero of=$IMG bs=512 seek=`expr $SIZE - 1` count=1 |
---|
| 55 | dd if=/dev/zero of=$FATIMG bs=512 seek=`expr $FATSIZE - 1` count=1 |
---|
| 56 | |
---|
| 57 | # Make an ms-dos FS on it |
---|
| 58 | $PREFIX/bin/newfs_msdos -r 1 -m 0xf8 -c 4 -F16 -h 64 -u 32 -S 512 -s $FATSIZE -o 0 ./$FATIMG |
---|
| 59 | |
---|
| 60 | # Prepare the executable. |
---|
| 61 | base=`basename $executable` |
---|
[127e08bb] | 62 | $PREFIX/bin/arm-rtems4.12-objcopy $executable -O binary $TMPDIR/$base.bin |
---|
[53dd6d61] | 63 | gzip -9 $TMPDIR/$base.bin |
---|
| 64 | $PREFIX/bin/mkimage -A arm -O rtems -T kernel -a 0x80000000 -e 0x80000000 -n RTEMS -d $TMPDIR/$base.bin.gz $TMPDIR/$app |
---|
| 65 | echo "setenv bootdelay 5 |
---|
| 66 | uenvcmd=run boot |
---|
| 67 | boot=fatload mmc 0 0x80800000 $app ; bootm 0x80800000" >$TMPDIR/$UENV |
---|
| 68 | |
---|
| 69 | # Copy the uboot and app image onto the FAT image |
---|
| 70 | $PREFIX/bin/mcopy -bsp -i $FATIMG $PREFIX/uboot/$ubootcfg/MLO ::MLO |
---|
| 71 | $PREFIX/bin/mcopy -bsp -i $FATIMG $PREFIX/uboot/$ubootcfg/u-boot.img ::u-boot.img |
---|
| 72 | $PREFIX/bin/mcopy -bsp -i $FATIMG $TMPDIR/$app ::$app |
---|
| 73 | $PREFIX/bin/mcopy -bsp -i $FATIMG $TMPDIR/$UENV ::$UENV |
---|
| 74 | |
---|
| 75 | # Just a single FAT partition (type C) that uses all of the image |
---|
| 76 | $PREFIX/bin/partition -m $IMG $OFFSET c:${FATSIZE}\* |
---|
| 77 | |
---|
| 78 | # Put the FAT image into the SD image |
---|
| 79 | dd if=$FATIMG of=$IMG seek=$OFFSET |
---|
| 80 | |
---|
| 81 | # cleanup |
---|
| 82 | rm -rf $TMPDIR |
---|
| 83 | |
---|
| 84 | echo "Result is in $IMG." |
---|