* [tisdk-setup-scripts][PATCH 1/2] create-sdcard-fit: create SD card for secure platforms
@ 2017-07-17 16:50 Jacob Stiffler
2017-07-17 16:50 ` [tisdk-setup-scripts][PATCH 2/2] setup: add support for HS EVMs Jacob Stiffler
2017-07-26 20:46 ` [tisdk-setup-scripts][PATCH 1/2] create-sdcard-fit: create SD card for secure platforms Denys Dmytriyenko
0 siblings, 2 replies; 3+ messages in thread
From: Jacob Stiffler @ 2017-07-17 16:50 UTC (permalink / raw)
To: meta-arago
Signed-off-by: Jacob Stiffler <j-stiffler@ti.com>
---
create-sdcard-fit.sh | 978 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 978 insertions(+)
create mode 100644 create-sdcard-fit.sh
diff --git a/create-sdcard-fit.sh b/create-sdcard-fit.sh
new file mode 100644
index 0000000..60f32fa
--- /dev/null
+++ b/create-sdcard-fit.sh
@@ -0,0 +1,978 @@
+#!/bin/bash
+# Authors:
+# LT Thomas <ltjr@ti.com>
+# Chase Maupin
+# Franklin Cooper Jr.
+#
+# create-sdcard.sh v0.3
+
+# This distribution contains contributions or derivatives under copyright
+# as follows:
+#
+# Copyright (c) 2010, Texas Instruments Incorporated
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# - Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# - Neither the name of Texas Instruments nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Force locale language to be set to English. This avoids issues when doing
+# text and string processing.
+export LANG=C
+
+# Determine the absolute path to the executable
+# EXE will have the PWD removed so we can concatenate with the PWD safely
+PWD=`pwd`
+EXE=`echo $0 | sed s=$PWD==`
+EXEPATH="$PWD"/"$EXE"
+clear
+cat << EOM
+
+################################################################################
+
+This script will create a bootable SD card from custom or pre-built binaries.
+
+The script must be run with root permissions and from the bin directory of
+the SDK
+
+Example:
+ $ sudo ./create-sdcard.sh
+
+Formatting can be skipped if the SD card is already formatted and
+partitioned properly.
+
+################################################################################
+
+EOM
+
+AMIROOT=`whoami | awk {'print $1'}`
+if [ "$AMIROOT" != "root" ] ; then
+
+ echo " **** Error *** must run script with sudo"
+ echo ""
+ exit
+fi
+
+THEPWD=$EXEPATH
+PARSEPATH=`echo $THEPWD | grep -o '.*ti-sdk.*.[0-9]/'`
+
+if [ "$PARSEPATH" != "" ] ; then
+PATHVALID=1
+else
+PATHVALID=0
+fi
+
+#Precentage function
+untar_progress ()
+{
+ TARBALL=$1;
+ DIRECTPATH=$2;
+ BLOCKING_FACTOR=$(($(xz --robot --list ${TARBALL} | grep 'totals' | awk '{print $5}') / 51200 + 1));
+ tar --blocking-factor=${BLOCKING_FACTOR} --checkpoint=1 --checkpoint-action='ttyout=Written %u% \r' -Jxf ${TARBALL} -C ${DIRECTPATH}
+}
+
+#copy/paste programs
+cp_progress ()
+{
+ CURRENTSIZE=0
+ while [ $CURRENTSIZE -lt $TOTALSIZE ]
+ do
+ TOTALSIZE=$1;
+ TOHERE=$2;
+ CURRENTSIZE=`sudo du -c $TOHERE | grep total | awk {'print $1'}`
+ echo -e -n "$CURRENTSIZE / $TOTALSIZE copied \r"
+ sleep 1
+ done
+}
+
+check_for_sdcards()
+{
+ # find the avaible SD cards
+ ROOTDRIVE=`mount | grep 'on / ' | awk {'print $1'} | cut -c6-8`
+ PARTITION_TEST=`cat /proc/partitions | grep -v $ROOTDRIVE | grep '\<sd.\>\|\<mmcblk.\>' | grep -n ''`
+ if [ "$PARTITION_TEST" = "" ]; then
+ echo -e "Please insert a SD card to continue\n"
+ while [ "$PARTITION_TEST" = "" ]; do
+ read -p "Type 'y' to re-detect the SD card or 'n' to exit the script: " REPLY
+ if [ "$REPLY" = 'n' ]; then
+ exit 1
+ fi
+ ROOTDRIVE=`mount | grep 'on / ' | awk {'print $1'} | cut -c6-8`
+ PARTITION_TEST=`cat /proc/partitions | grep -v $ROOTDRIVE | grep '\<sd.\>\|\<mmcblk.\>' | grep -n ''`
+ done
+ fi
+}
+
+populate_3_partitions() {
+ ENTERCORRECTLY="0"
+ while [ $ENTERCORRECTLY -ne 1 ]
+ do
+ read -e -p 'Enter path where SD card tarballs were downloaded : ' TARBALLPATH
+
+ echo ""
+ ENTERCORRECTLY=1
+ if [ -d $TARBALLPATH ]
+ then
+ echo "Directory exists"
+ echo ""
+ echo "This directory contains:"
+ ls $TARBALLPATH
+ echo ""
+ read -p 'Is this correct? [y/n] : ' ISRIGHTPATH
+ case $ISRIGHTPATH in
+ "y" | "Y") ;;
+ "n" | "N" ) ENTERCORRECTLY=0;continue;;
+ *) echo "Please enter y or n";ENTERCORRECTLY=0;continue;;
+ esac
+ else
+ echo "Invalid path make sure to include complete path"
+ ENTERCORRECTLY=0
+ continue
+ fi
+ # Check that tarballs were found
+ if [ ! -e "$TARBALLPATH""/boot_partition.tar.xz" ]
+ then
+ echo "Could not find boot_partition.tar.xz as expected. Please"
+ echo "point to the directory containing the boot_partition.tar.xz"
+ ENTERCORRECTLY=0
+ continue
+ fi
+
+ if [ ! -e "$TARBALLPATH""/rootfs_partition.tar.xz" ]
+ then
+ echo "Could not find rootfs_partition.tar.xz as expected. Please"
+ echo "point to the directory containing the rootfs_partition.tar.xz"
+ ENTERCORRECTLY=0
+ continue
+ fi
+
+ if [ ! -e "$TARBALLPATH""/start_here_partition.tar.xz" ]
+ then
+ echo "Could not find start_here_partition.tar.xz as expected. Please"
+ echo "point to the directory containing the start_here_partition.tar.xz"
+ ENTERCORRECTLY=0
+ continue
+ fi
+ done
+
+ # Make temporary directories and untar mount the partitions
+ mkdir $PWD/boot
+ mkdir $PWD/rootfs
+ mkdir $PWD/start_here
+ mkdir $PWD/tmp
+
+ mount -t vfat ${DRIVE}${P}1 boot
+ mount -t ext3 ${DRIVE}${P}2 rootfs
+ mount -t ext3 ${DRIVE}${P}3 start_here
+
+ # Remove any existing content in case the partitions were not
+ # recreated
+ sudo rm -rf boot/*
+ sudo rm -rf rootfs/*
+ sudo rm -rf start_here/*
+
+ # Extract the tarball contents.
+cat << EOM
+
+################################################################################
+ Extracting boot partition tarball
+
+################################################################################
+EOM
+ untar_progress $TARBALLPATH/boot_partition.tar.xz tmp/
+ if [ -e "./tmp/MLO" ]
+ then
+ cp ./tmp/MLO boot/
+ fi
+ cp -rf ./tmp/* boot/
+
+cat << EOM
+
+################################################################################
+ Extracting rootfs partition tarball
+
+################################################################################
+EOM
+ untar_progress $TARBALLPATH/rootfs_partition.tar.xz rootfs/
+
+cat << EOM
+
+################################################################################
+ Extracting start_here partition to temp directory
+
+################################################################################
+EOM
+ rm -rf tmp/*
+ untar_progress $TARBALLPATH/start_here_partition.tar.xz tmp/
+
+cat << EOM
+
+################################################################################
+ Copying Contents to START_HERE
+
+################################################################################
+EOM
+
+ TOTALSIZE=`sudo du -c tmp/* | grep total | awk {'print $1'}`
+ cp -rf tmp/* start_here/ &
+ cp_progress $TOTALSIZE start_here/
+ sync;sync
+ # Fix up the START_HERE partitoin permissions
+ chown nobody -R start_here
+ chgrp nogroup -R start_here
+
+ umount boot rootfs start_here
+ sync;sync
+
+ # Clean up the temp directories
+ rm -rf boot rootfs start_here tmp
+}
+
+
+# find the avaible SD cards
+ROOTDRIVE=`mount | grep 'on / ' | awk {'print $1'} | cut -c6-9`
+if [ "$ROOTDRIVE" = "root" ]; then
+ ROOTDRIVE=`readlink /dev/root | cut -c1-3`
+else
+ ROOTDRIVE=`echo $ROOTDRIVE | cut -c1-3`
+fi
+
+PARTITION_TEST=`cat /proc/partitions | grep -v $ROOTDRIVE | grep '\<sd.\>\|\<mmcblk.\>' | grep -n ''`
+
+# Check for available mounts
+check_for_sdcards
+
+echo -e "\nAvailable Drives to write images to: \n"
+echo "# major minor size name "
+cat /proc/partitions | grep -v $ROOTDRIVE | grep '\<sd.\>\|\<mmcblk.\>' | grep -n ''
+echo " "
+
+DEVICEDRIVENUMBER=
+while true;
+do
+ read -p 'Enter Device Number or 'n' to exit: ' DEVICEDRIVENUMBER
+ echo " "
+ if [ "$DEVICEDRIVENUMBER" = 'n' ]; then
+ exit 1
+ fi
+
+ if [ "$DEVICEDRIVENUMBER" = "" ]; then
+ # Check to see if there are any changes
+ check_for_sdcards
+ echo -e "These are the Drives available to write images to:"
+ echo "# major minor size name "
+ cat /proc/partitions | grep -v $ROOTDRIVE | grep '\<sd.\>\|\<mmcblk.\>' | grep -n ''
+ echo " "
+ continue
+ fi
+
+ DEVICEDRIVENAME=`cat /proc/partitions | grep -v $ROOTDRIVE | grep '\<sd.\>\|\<mmcblk.\>' | grep -n '' | grep "${DEVICEDRIVENUMBER}:" | awk '{print $5}'`
+ if [ -n "$DEVICEDRIVENAME" ]
+ then
+ DRIVE=/dev/$DEVICEDRIVENAME
+ DEVICESIZE=`cat /proc/partitions | grep -v $ROOTDRIVE | grep '\<sd.\>\|\<mmcblk.\>' | grep -n '' | grep "${DEVICEDRIVENUMBER}:" | awk '{print $4}'`
+ break
+ else
+ echo -e "Invalid selection!"
+ # Check to see if there are any changes
+ check_for_sdcards
+ echo -e "These are the only Drives available to write images to: \n"
+ echo "# major minor size name "
+ cat /proc/partitions | grep -v $ROOTDRIVE | grep '\<sd.\>\|\<mmcblk.\>' | grep -n ''
+ echo " "
+ fi
+done
+
+echo "$DEVICEDRIVENAME was selected"
+#Check the size of disk to make sure its under 16GB
+if [ $DEVICESIZE -gt 17000000 ] ; then
+cat << EOM
+
+################################################################################
+
+ **********WARNING**********
+
+ Selected Device is greater then 16GB
+ Continuing past this point will erase data from device
+ Double check that this is the correct SD Card
+
+################################################################################
+
+EOM
+ ENTERCORRECTLY=0
+ while [ $ENTERCORRECTLY -ne 1 ]
+ do
+ read -p 'Would you like to continue [y/n] : ' SIZECHECK
+ echo ""
+ echo " "
+ ENTERCORRECTLY=1
+ case $SIZECHECK in
+ "y") ;;
+ "n") exit;;
+ *) echo "Please enter y or n";ENTERCORRECTLY=0;;
+ esac
+ echo ""
+ done
+
+fi
+echo ""
+
+DRIVE=/dev/$DEVICEDRIVENAME
+NUM_OF_DRIVES=`df | grep -c $DEVICEDRIVENAME`
+
+# This if statement will determine if we have a mounted sdX or mmcblkX device.
+# If it is mmcblkX, then we need to set an extra char in the partition names, 'p',
+# to account for /dev/mmcblkXpY labled partitions.
+if [[ ${DEVICEDRIVENAME} =~ ^sd. ]]; then
+ echo "$DRIVE is an sdx device"
+ P=''
+else
+ echo "$DRIVE is an mmcblkx device"
+ P='p'
+fi
+
+if [ "$NUM_OF_DRIVES" != "0" ]; then
+ echo "Unmounting the $DEVICEDRIVENAME drives"
+ for ((c=1; c<="$NUM_OF_DRIVES"; c++ ))
+ do
+ unmounted=`df | grep '\<'$DEVICEDRIVENAME$P$c'\>' | awk '{print $1}'`
+ if [ -n "$unmounted" ]
+ then
+ echo " unmounted ${DRIVE}$P$c"
+ sudo umount -f ${DRIVE}$P$c
+ fi
+
+ done
+fi
+
+# Refresh this variable as the device may not be mounted at script instantiation time
+# This will always return one more then needed
+NUM_OF_PARTS=`cat /proc/partitions | grep -v $ROOTDRIVE | grep -c $DEVICEDRIVENAME`
+for ((c=1; c<"$NUM_OF_PARTS"; c++ ))
+do
+ SIZE=`cat /proc/partitions | grep -v $ROOTDRIVE | grep '\<'$DEVICEDRIVENAME$P$c'\>' | awk '{print $3}'`
+ echo "Current size of $DEVICEDRIVENAME$P$c $SIZE bytes"
+done
+
+# check to see if the device is already partitioned
+for (( c=1; c<5; c++ ))
+do
+ eval "SIZE$c=`cat /proc/partitions | grep -v $ROOTDRIVE | grep '\<'$DEVICEDRIVENAME$P$c'\>' | awk '{print $3}'`"
+done
+
+PARTITION="0"
+if [ -n "$SIZE1" -a -n "$SIZE2" ] ; then
+ if [ "$SIZE1" -gt "72000" -a "$SIZE2" -gt "700000" ]
+ then
+ PARTITION=1
+
+ if [ -z "$SIZE3" -a -z "$SIZE4" ]
+ then
+ #Detected 2 partitions
+ PARTS=2
+
+ elif [ "$SIZE3" -gt "1000" -a -z "$SIZE4" ]
+ then
+ #Detected 3 partitions
+ PARTS=3
+
+ else
+ echo "SD Card is not correctly partitioned"
+ PARTITION=0
+ fi
+ fi
+else
+ echo "SD Card is not correctly partitioned"
+ PARTITION=0
+ PARTS=0
+fi
+
+
+#Partition is found
+if [ "$PARTITION" -eq "1" ]
+then
+cat << EOM
+
+################################################################################
+
+ Detected device has $PARTS partitions already
+
+ Re-partitioning will allow the choice of 2 or 3 partitions
+
+################################################################################
+
+EOM
+
+ ENTERCORRECTLY=0
+ while [ $ENTERCORRECTLY -ne 1 ]
+ do
+ read -p 'Would you like to re-partition the drive anyways [y/n] : ' CASEPARTITION
+ echo ""
+ echo " "
+ ENTERCORRECTLY=1
+ case $CASEPARTITION in
+ "y") echo "Now partitioning $DEVICEDRIVENAME ...";PARTITION=0;;
+ "n") echo "Skipping partitioning";;
+ *) echo "Please enter y or n";ENTERCORRECTLY=0;;
+ esac
+ echo ""
+ done
+
+fi
+
+#Partition is not found, choose to partition 2 or 3 segments
+if [ "$PARTITION" -eq "0" ]
+then
+cat << EOM
+
+################################################################################
+
+ Select 2 partitions if only need boot and rootfs (most users).
+ Select 3 partitions if need SDK & other content on SD card. This is
+ usually used by device manufacturers with access to partition tarballs.
+
+ ****WARNING**** continuing will erase all data on $DEVICEDRIVENAME
+
+################################################################################
+
+EOM
+ ENTERCORRECTLY=0
+ while [ $ENTERCORRECTLY -ne 1 ]
+ do
+
+ read -p 'Number of partitions needed [2/3] : ' CASEPARTITIONNUMBER
+ echo ""
+ echo " "
+ ENTERCORRECTLY=1
+ case $CASEPARTITIONNUMBER in
+ "2") echo "Now partitioning $DEVICEDRIVENAME with 2 partitions...";PARTITION=2;;
+ "3") echo "Now partitioning $DEVICEDRIVENAME with 3 partitions...";PARTITION=3;;
+ "n") exit;;
+ *) echo "Please enter 2 or 3";ENTERCORRECTLY=0;;
+ esac
+ echo " "
+ done
+fi
+
+
+
+#Section for partitioning the drive
+
+#create 3 partitions
+if [ "$PARTITION" -eq "3" ]
+then
+
+# set the PARTS value as well
+PARTS=3
+
+cat << EOM
+
+################################################################################
+
+ Now making 3 partitions
+
+################################################################################
+
+EOM
+
+dd if=/dev/zero of=$DRIVE bs=1024 count=1024
+
+SIZE=`fdisk -l $DRIVE | grep Disk | awk '{print $5}'`
+
+echo DISK SIZE - $SIZE bytes
+
+parted -s $DRIVE mklabel msdos
+parted -s $DRIVE unit cyl mkpart primary fat32 -- 0 9
+parted -s $DRIVE set 1 boot on
+parted -s $DRIVE unit cyl mkpart primary ext2 -- 9 310
+parted -s $DRIVE unit cyl mkpart primary ext2 -- 310 -2
+
+
+cat << EOM
+
+################################################################################
+
+ Partitioning Boot
+
+################################################################################
+EOM
+ mkfs.vfat -F 32 -n "boot" ${DRIVE}${P}1
+cat << EOM
+
+################################################################################
+
+ Partitioning Rootfs
+
+################################################################################
+EOM
+ mkfs.ext3 -L "rootfs" ${DRIVE}${P}2
+cat << EOM
+
+################################################################################
+
+ Partitioning START_HERE
+
+################################################################################
+EOM
+ mkfs.ext3 -L "START_HERE" ${DRIVE}${P}3
+ sync
+ sync
+
+#create only 2 partitions
+elif [ "$PARTITION" -eq "2" ]
+then
+
+# Set the PARTS value as well
+PARTS=2
+cat << EOM
+
+################################################################################
+
+ Now making 2 partitions
+
+################################################################################
+
+EOM
+dd if=/dev/zero of=$DRIVE bs=1024 count=1024
+
+SIZE=`fdisk -l $DRIVE | grep Disk | awk '{print $5}'`
+
+echo DISK SIZE - $SIZE bytes
+
+parted -s $DRIVE mklabel msdos
+parted -s $DRIVE unit cyl mkpart primary fat32 -- 0 9
+parted -s $DRIVE set 1 boot on
+parted -s $DRIVE unit cyl mkpart primary ext2 -- 9 -2
+
+cat << EOM
+
+################################################################################
+
+ Partitioning Boot
+
+################################################################################
+EOM
+ mkfs.vfat -F 32 -n "boot" ${DRIVE}${P}1
+cat << EOM
+
+################################################################################
+
+ Partitioning rootfs
+
+################################################################################
+EOM
+ mkfs.ext3 -L "rootfs" ${DRIVE}${P}2
+ sync
+ sync
+ INSTALLSTARTHERE=n
+fi
+
+
+
+#Break between partitioning and installing file system
+cat << EOM
+
+
+################################################################################
+
+ Partitioning is now done
+ Continue to install filesystem or select 'n' to safe exit
+
+ **Warning** Continuing will erase files any files in the partitions
+
+################################################################################
+
+
+EOM
+ENTERCORRECTLY=0
+while [ $ENTERCORRECTLY -ne 1 ]
+do
+ read -p 'Would you like to continue? [y/n] : ' EXITQ
+ echo ""
+ echo " "
+ ENTERCORRECTLY=1
+ case $EXITQ in
+ "y") ;;
+ "n") exit;;
+ *) echo "Please enter y or n";ENTERCORRECTLY=0;;
+ esac
+done
+
+# If this is a three partition card then we will jump to a function to
+# populate the three partitions and then exit the script. If not we
+# go on to prompt the user for input on the two partitions
+if [ "$PARTS" -eq "3" ]
+then
+ populate_3_partitions
+ exit 0
+fi
+
+#Add directories for images
+export START_DIR=$PWD
+mkdir $START_DIR/tmp
+export PATH_TO_SDBOOT=boot
+export PATH_TO_SDROOTFS=rootfs
+export PATH_TO_TMP_DIR=$START_DIR/tmp
+
+
+echo " "
+echo "Mount the partitions "
+mkdir $PATH_TO_SDBOOT
+mkdir $PATH_TO_SDROOTFS
+
+sudo mount -t vfat ${DRIVE}${P}1 boot/
+sudo mount -t ext3 ${DRIVE}${P}2 rootfs/
+
+
+
+echo " "
+echo "Emptying partitions "
+echo " "
+sudo rm -rf $PATH_TO_SDBOOT/*
+sudo rm -rf $PATH_TO_SDROOTFS/*
+
+echo ""
+echo "Syncing...."
+echo ""
+sync
+sync
+sync
+
+cat << EOM
+################################################################################
+
+ Choose file path to install from
+
+ 1 ) Install pre-built images from SDK
+ 2 ) Enter in custom boot and rootfs file paths
+
+################################################################################
+
+EOM
+ENTERCORRECTLY=0
+while [ $ENTERCORRECTLY -ne 1 ]
+do
+ read -p 'Choose now [1/2] : ' FILEPATHOPTION
+ echo ""
+ echo " "
+ ENTERCORRECTLY=1
+ case $FILEPATHOPTION in
+ "1") echo "Will now install from SDK pre-built images";;
+ "2") echo "";;
+ *) echo "Please enter 1 or 2";ENTERCORRECTLY=0;;
+ esac
+done
+
+# SDK DEFAULTS
+if [ $FILEPATHOPTION -eq 1 ] ; then
+
+ #check that in the right directory
+
+ THEEVMSDK=`echo $PARSEPATH | grep -o 'ti-sdk-.*[0-9]'`
+
+ if [ $PATHVALID -eq 1 ]; then
+ echo "now installing: $THEEVMSDK"
+ else
+ echo "no SDK PATH found"
+ ENTERCORRECTLY=0
+ while [ $ENTERCORRECTLY -ne 1 ]
+ do
+ read -e -p 'Enter path to SDK : ' SDKFILEPATH
+
+ echo ""
+ ENTERCORRECTLY=1
+ if [ -d $SDKFILEPATH ]
+ then
+ echo "Directory exists"
+ echo ""
+ PARSEPATH=`echo $SDKFILEPATH | grep -o '.*ti-sdk.*.[0-9]/'`
+ #echo $PARSEPATH
+
+ if [ "$PARSEPATH" != "" ] ; then
+ PATHVALID=1
+ else
+ PATHVALID=0
+ fi
+ #echo $PATHVALID
+ if [ $PATHVALID -eq 1 ] ; then
+
+ THEEVMSDK=`echo $SDKFILEPATH | grep -o 'ti-sdk-.*[0-9]'`
+ echo "Is this the correct SDK: $THEEVMSDK"
+ echo ""
+ read -p 'Is this correct? [y/n] : ' ISRIGHTPATH
+ case $ISRIGHTPATH in
+ "y") ;;
+ "n") ENTERCORRECTLY=0;;
+ *) echo "Please enter y or n";ENTERCORRECTLY=0;;
+ esac
+ else
+ echo "Invalid SDK path make sure to include ti-sdk-xxxx"
+ ENTERCORRECTLY=0
+ fi
+
+ else
+ echo "Invalid path make sure to include complete path"
+
+ ENTERCORRECTLY=0
+ fi
+ done
+ fi
+
+
+
+ #check that files are in SDK
+ BOOTFILEPATH="$PARSEPATH/board-support/prebuilt-images"
+ MLO=`ls $BOOTFILEPATH | grep MLO | awk {'print $1'}`
+ KERNELIMAGE=`ls $BOOTFILEPATH | grep [uz]Image | awk {'print $1'}`
+ BOOTIMG=`ls $BOOTFILEPATH | grep u-boot | grep .img | awk {'print $1'}`
+ BOOTBIN=`ls $BOOTFILEPATH | grep u-boot | grep .bin | awk {'print $1'}`
+ BOOTUENV=`ls $BOOTFILEPATH | grep uEnv.txt | awk {'print $1'}`
+ #fitImage
+ ROOTFILEPARTH="$PARSEPATH/filesystem"
+ #ROOTFSTAR=`ls $ROOTFILEPARTH | grep tisdk.*rootfs | awk {'print $1'}`
+
+ #Make sure there is only 1 tar
+ CHECKNUMOFFITIMAGE=`ls $BOOTFILEPATH | grep "fitImage.*\.itb" | grep -n '' | grep '2:' | awk {'print $1'}`
+ if [ -n "$CHECKNUMOFTAR" ]
+ then
+cat << EOM
+
+################################################################################
+
+ Multiple FIT Images found
+
+################################################################################
+
+EOM
+ ls $BOOTFILEPATH | grep "fitImage.*\.itb" | grep -n '' | awk {'print " " , $1'}
+ echo ""
+ read -p "Enter Number of fitImage: " FITIMAGENUMBER
+ echo " "
+ FOUNDFITIMAGEFILENAME=`ls $BOOTFILEPARTH | grep "fitImage.*\.itb" | grep -n '' | grep "${FITIMAGENUMBER}:" | cut -c3- | awk {'print$1'}`
+ FITIMAGE=$FOUNDFITIMAGEFILENAME
+
+ else
+ FITIMAGE=`ls $BOOTFILEPATH | grep "fitImage.*\.itb" | awk {'print $1'}`
+ fi
+
+ FITIMAGEUSERFILEPATH=$BOOTFILEPATH/$FITIMAGE
+ BOOTPATHOPTION=1
+ ROOTFSPATHOPTION=2
+
+elif [ $FILEPATHOPTION -eq 2 ] ; then
+cat << EOM
+################################################################################
+
+ For U-boot and MLO
+
+ If files are located in Tarball write complete path including the file name.
+ e.x. $: /home/user/MyCustomTars/boot.tar.xz
+
+ If files are located in a directory write the directory path
+ e.x. $: /ti-sdk/board-support/prebuilt-images/
+
+ NOTE: Not all platforms will have an MLO file and this file can
+ be ignored for platforms that do not support an MLO.
+
+ Update: The proper location for the kernel image and device tree
+ files have moved from the boot partition to the root filesystem.
+
+################################################################################
+
+EOM
+ ENTERCORRECTLY=0
+ while [ $ENTERCORRECTLY -ne 1 ]
+ do
+ read -e -p 'Enter path for Boot Partition : ' BOOTUSERFILEPATH
+
+ echo ""
+ ENTERCORRECTLY=1
+ if [ -f $BOOTUSERFILEPATH ]
+ then
+ echo "File exists"
+ echo ""
+ elif [ -d $BOOTUSERFILEPATH ]
+ then
+ echo "Directory exists"
+ echo ""
+ echo "This directory contains:"
+ ls $BOOTUSERFILEPATH
+ echo ""
+ read -p 'Is this correct? [y/n] : ' ISRIGHTPATH
+ case $ISRIGHTPATH in
+ "y") ;;
+ "n") ENTERCORRECTLY=0;;
+ *) echo "Please enter y or n";ENTERCORRECTLY=0;;
+ esac
+ else
+ echo "Invalid path make sure to include complete path"
+
+ ENTERCORRECTLY=0
+ fi
+ done
+
+
+cat << EOM
+
+
+################################################################################
+
+ For FIT Image
+
+ Please provide the path the the fitImage to boot
+ e.x. $: /home/user/MyCustomFIT/fitImage.itb
+
+################################################################################
+
+EOM
+ ENTERCORRECTLY=0
+ while [ $ENTERCORRECTLY -ne 1 ]
+ do
+ read -e -p 'Enter path for FIT Image : ' FITIMAGEUSERFILEPATH
+ echo ""
+ ENTERCORRECTLY=1
+ if [ -f $FITIMAGEUSERFILEPATH ]
+ then
+ echo "File exists"
+ echo ""
+ elif [ -d $FITIMAGEUSERFILEPATH ]
+ then
+ echo "This directory contains:"
+ ls $FITIMAGEUSERFILEPATH
+ echo ""
+ read -p 'Is this correct? [y/n] : ' ISRIGHTPATH
+ case $ISRIGHTPATH in
+ "y") ;;
+ "n") ENTERCORRECTLY=0;;
+ *) echo "Please enter y or n";ENTERCORRECTLY=0;;
+ esac
+
+ else
+ echo "Invalid path make sure to include complete path"
+
+ ENTERCORRECTLY=0
+ fi
+ done
+ echo ""
+
+
+ # Check if user entered a tar or not for Boot
+ ISBOOTTAR=`ls $BOOTUSERFILEPATH | grep .tar.xz | awk {'print $1'}`
+ if [ -n "$ISBOOTTAR" ]
+ then
+ BOOTPATHOPTION=2
+ else
+ BOOTPATHOPTION=1
+ BOOTFILEPATH=$BOOTUSERFILEPATH
+ MLO=`ls $BOOTFILEPATH | grep MLO | awk {'print $1'}`
+ BOOTIMG=`ls $BOOTFILEPATH | grep u-boot | grep .img | awk {'print $1'}`
+ BOOTBIN=`ls $BOOTFILEPATH | grep u-boot | grep .bin | awk {'print $1'}`
+ BOOTUENV=`ls $BOOTFILEPATH | grep uEnv.txt | awk {'print $1'}`
+ fi
+fi
+
+cat << EOM
+################################################################################
+
+ Copying files now... will take minutes
+
+################################################################################
+
+Copying boot partition
+EOM
+
+
+if [ $BOOTPATHOPTION -eq 1 ] ; then
+
+ echo ""
+ #copy boot files out of board support
+ if [ "$MLO" != "" ] ; then
+ cp $BOOTFILEPATH/$MLO $PATH_TO_SDBOOT/MLO
+ echo "MLO copied"
+ else
+ echo "MLO file not found"
+ fi
+
+ echo ""
+
+ echo ""
+
+ if [ "$BOOTIMG" != "" ] ; then
+ cp $BOOTFILEPATH/$BOOTIMG $PATH_TO_SDBOOT/u-boot.img
+ echo "u-boot.img copied"
+ elif [ "$BOOTBIN" != "" ] ; then
+ cp $BOOTFILEPATH/$BOOTBIN $PATH_TO_SDBOOT/u-boot.bin
+ echo "u-boot.bin copied"
+ else
+ echo "No U-Boot file found"
+ fi
+
+ echo ""
+
+ if [ "$BOOTUENV" != "" ] ; then
+ cp $BOOTFILEPATH/$BOOTUENV $PATH_TO_SDBOOT/uEnv.txt
+ echo "uEnv.txt copied"
+ fi
+
+elif [ $BOOTPATHOPTION -eq 2 ] ; then
+ untar_progress $BOOTUSERFILEPATH $PATH_TO_TMP_DIR
+ cp -rf $PATH_TO_TMP_DIR/* $PATH_TO_SDBOOT
+ echo ""
+
+fi
+
+echo ""
+sync
+
+echo "Copying FIT Image"
+sudo mkdir -p $PATH_TO_SDROOTFS/boot
+sudo cp $FITIMAGEUSERFILEPATH $PATH_TO_SDROOTFS/boot/fitImage.itb
+
+echo ""
+echo ""
+echo "Syncing..."
+sync
+sync
+sync
+sync
+sync
+sync
+sync
+sync
+
+echo " "
+echo "Un-mount the partitions "
+sudo umount -f $PATH_TO_SDBOOT
+sudo umount -f $PATH_TO_SDROOTFS
+
+
+echo " "
+echo "Remove created temp directories "
+sudo rm -rf $PATH_TO_TMP_DIR
+sudo rm -rf $PATH_TO_SDROOTFS
+sudo rm -rf $PATH_TO_SDBOOT
+
+
+echo " "
+echo "Operation Finished"
+echo " "
--
1.9.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [tisdk-setup-scripts][PATCH 2/2] setup: add support for HS EVMs
2017-07-17 16:50 [tisdk-setup-scripts][PATCH 1/2] create-sdcard-fit: create SD card for secure platforms Jacob Stiffler
@ 2017-07-17 16:50 ` Jacob Stiffler
2017-07-26 20:46 ` [tisdk-setup-scripts][PATCH 1/2] create-sdcard-fit: create SD card for secure platforms Denys Dmytriyenko
1 sibling, 0 replies; 3+ messages in thread
From: Jacob Stiffler @ 2017-07-17 16:50 UTC (permalink / raw)
To: meta-arago
Signed-off-by: Jacob Stiffler <j-stiffler@ti.com>
---
setup-tftp-fit.sh | 148 +++++++++++++
setup-uboot-env-am335x-hs.sh | 339 +++++++++++++++++++++++++++++
setup-uboot-env-am43x-hs.sh | 165 ++++++++++++++
setup-uboot-env-am57xx-hs-evm.sh | 242 +++++++++++++++++++++
setup-uboot-env-keystone-hs.sh | 456 +++++++++++++++++++++++++++++++++++++++
5 files changed, 1350 insertions(+)
create mode 100644 setup-tftp-fit.sh
create mode 100644 setup-uboot-env-am335x-hs.sh
create mode 100644 setup-uboot-env-am43x-hs.sh
create mode 100644 setup-uboot-env-am57xx-hs-evm.sh
create mode 100755 setup-uboot-env-keystone-hs.sh
diff --git a/setup-tftp-fit.sh b/setup-tftp-fit.sh
new file mode 100644
index 0000000..a0cc07d
--- /dev/null
+++ b/setup-tftp-fit.sh
@@ -0,0 +1,148 @@
+#!/bin/sh
+
+# This distribution contains contributions or derivatives under copyright
+# as follows:
+#
+# Copyright (c) 2010, Texas Instruments Incorporated
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# - Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# - Neither the name of Texas Instruments nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cwd=`dirname $0`
+. $cwd/common.sh
+
+tftpcfg=/etc/xinetd.d/tftp
+tftprootdefault=/tftpboot
+
+tftp() {
+ echo "
+service tftp
+{
+protocol = udp
+port = 69
+socket_type = dgram
+wait = yes
+user = nobody
+server = /usr/sbin/in.tftpd
+server_args = $tftproot
+disable = no
+}
+" | sudo tee $tftpcfg > /dev/null
+ check_status
+ echo
+ echo "$tftpcfg successfully created"
+}
+
+prebuiltimagesdir=`cd $cwd/../board-support/prebuilt-images/ ; echo $PWD`
+copy_to_tftproot() {
+ files="$1"
+ for file in $files
+ do
+ if [ -f $tftproot/$file ]; then
+ echo
+ echo "$tftproot/$file already exists. The existing installed file can be renamed and saved under the new name."
+ echo "(o) overwrite (s) skip copy "
+ read -p "[o] " exists
+ case "$exists" in
+ s) echo "Skipping copy of $file, existing version will be used"
+ ;;
+ *) sudo cp "$prebuiltimagesdir/$file" $tftproot
+ check_status
+ echo
+ echo "Successfully overwritten $file in tftp root directory $tftproot"
+ ;;
+ esac
+ else
+ sudo cp "$prebuiltimagesdir/$file" $tftproot
+ check_status
+ echo
+ echo "Successfully copied $file to tftp root directory $tftproot"
+ fi
+ done
+}
+
+echo "--------------------------------------------------------------------------------"
+echo "Which directory do you want to be your tftp root directory?(if this directory does not exist it will be created for you)"
+read -p "[ $tftprootdefault ] " tftproot
+
+if [ ! -n "$tftproot" ]; then
+ tftproot=$tftprootdefault
+fi
+echo $tftproot > $cwd/../.tftproot
+echo "--------------------------------------------------------------------------------"
+
+echo
+echo "--------------------------------------------------------------------------------"
+echo "This step will set up the tftp server in the $tftproot directory."
+echo
+echo "Note! This command requires you to have administrator priviliges (sudo access) "
+echo "on your host."
+read -p "Press return to continue" REPLY
+
+if [ -d $tftproot ]; then
+ echo
+ echo "$tftproot already exists, not creating.."
+else
+ sudo mkdir -p $tftproot
+ check_status
+ sudo chmod 777 $tftproot
+ check_status
+ sudo chown nobody $tftproot
+ check_status
+fi
+
+platform=`cat $cwd/../Rules.make | grep -e "^PLATFORM=" | cut -d= -f2`
+itbfiles=`cd $prebuiltimagesdir;ls -1 *.itb`
+copy_to_tftproot "$itbfiles"
+
+uboot_files=`cd $prebuiltimagesdir;ls -1 u-boot_HS_MLO* 2> /dev/null`
+copy_to_tftproot "$uboot_files"
+
+echo
+if [ -f $tftpcfg ]; then
+ echo "$tftpcfg already exists.."
+
+ #Use = instead of == for POSIX and dash shell compliance
+ if [ "`cat $tftpcfg | grep server_args | cut -d= -f2 | sed 's/^[ ]*//'`" \
+ = "$tftproot" ]; then
+ echo "$tftproot already exported for TFTP, skipping.."
+ else
+ echo "Copying old $tftpcfg to $tftpcfg.old"
+ sudo cp $tftpcfg $tftpcfg.old
+ check_status
+ tftp
+ fi
+else
+ tftp
+fi
+
+echo
+echo "Restarting tftp server"
+sudo /etc/init.d/xinetd stop
+check_status
+sleep 1
+sudo /etc/init.d/xinetd start
+check_status
+echo "--------------------------------------------------------------------------------"
diff --git a/setup-uboot-env-am335x-hs.sh b/setup-uboot-env-am335x-hs.sh
new file mode 100644
index 0000000..3e7bfad
--- /dev/null
+++ b/setup-uboot-env-am335x-hs.sh
@@ -0,0 +1,339 @@
+#!/bin/sh
+
+# This distribution contains contributions or derivatives under copyright
+# as follows:
+#
+# Copyright (c) 2010, Texas Instruments Incorporated
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# - Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# - Neither the name of Texas Instruments nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cwd=`dirname $0`
+. $cwd/common.sh
+
+do_expect() {
+ echo "expect {" >> $3
+ check_status
+ echo " $1" >> $3
+ check_status
+ echo "}" >> $3
+ check_status
+ echo $2 >> $3
+ check_status
+ echo >> $3
+}
+
+
+echo
+echo "--------------------------------------------------------------------------------"
+echo "This step will set up the U-Boot variables for booting the EVM."
+echo
+
+ipdefault=`ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1 }'`
+platform=`grep PLATFORM= $cwd/../Rules.make | cut -d= -f2`
+
+# Configure prompt for U-Boot 2016.05
+prompt="=>"
+
+echo "Autodetected the following ip address of your host, correct it if necessary"
+read -p "[ $ipdefault ] " ip
+echo
+
+if [ ! -n "$ip" ]; then
+ ip=$ipdefault
+fi
+
+fitimage="fitImage-arago-base-tisdk-image-"$platform".itb"
+fitimagesrc=`ls -1 $cwd/../board-support/prebuilt-images/$fitimage`
+fitimagedefault=`basename $fitimagesrc`
+
+
+echo "Select fit image location:"
+echo " 1: TFTP"
+echo " 2: SD card"
+echo
+read -p "[ 1 ] " fit
+
+if [ ! -n "$fitimage" ]; then
+ fit="1"
+fi
+
+
+if [ "$fit" -eq "1" ]; then
+ echo
+ echo "Available fit images in /tftproot:"
+ for file in /tftpboot/*.itb; do
+ basefile=`basename $file`
+ echo " $basefile"
+ done
+ echo
+ echo "Which fit image do you want to boot from TFTP?"
+ read -p "[ $fitimagedefault ] " fitimage
+
+ if [ ! -n "$fitimage" ]; then
+ fitimage=$fitimagedefault
+ fi
+fi
+
+isBB="n"
+isBBBlack="n"
+isBBrevA3="n"
+configBB="n"
+
+check_for_beaglebone() {
+ # First check if there is a rev A3 board which uses the custom VID/PID
+ # combination
+ lsusb -d 0403:a6d0 > /dev/null
+
+ if [ "$?" = "0" ]
+ then
+ # We found a beaglebone
+ isBB="y"
+ isBBrevA3="y"
+ return
+ fi
+
+ # Now let's check for a standard VID/PID like newer BeagleBones have
+ sudo lsusb -vv -d 0403:6010 | grep "Product" | grep "BeagleBone" > /dev/null
+
+ if [ "$?" = "0" ]
+ then
+ isBB="y"
+ return
+ fi
+
+ # Now let's check for EVM-SK
+ sudo lsusb -vv -d 0403:6010 | grep "Product" | grep "EVM-SK" > /dev/null
+
+ if [ "$?" = "0" ]
+ then
+ isBB="y"
+ return
+ fi
+
+
+ # Now let's check for BeagleBone Black
+ sudo lsusb -vv -d 0403:6001 > /dev/null
+
+ if [ "$?" = "0" ]
+ then
+ isBB="y"
+ isBBBlack="y"
+ return
+ fi
+
+}
+
+echo "timeout 300" > $cwd/setupBoard.minicom
+echo "verbose on" >> $cwd/setupBoard.minicom
+
+do_expect "\"abort autoboot\"" "send \" \"" $cwd/setupBoard.minicom
+do_expect "\"$prompt\"" "send \"env default -f -a\"" $cwd/setupBoard.minicom
+do_expect "\"$prompt\"" "send \"saveenv\"" $cwd/setupBoard.minicom
+do_expect "\"$prompt\"" "send \"reset\"" $cwd/setupBoard.minicom
+do_expect "\"abort autoboot\"" "send \" \"" $cwd/setupBoard.minicom
+
+if [ "$fit" -eq "1" ]; then
+ do_expect "\"$prompt\"" "send setenv serverip $ip" $cwd/setupBoard.minicom
+ do_expect "\"$prompt\"" "send setenv fit_bootfile $fitimage" $cwd/setupBoard.minicom
+ do_expect "\"$prompt\"" "send setenv bootcmd 'run findfdt; run init_console; run envboot; setenv autoload no; dhcp; tftp \${fit_loadaddr} \${fit_bootfile}; run args_fit; bootm \${fit_loadaddr}#\${fdtfile}'" $cwd/setupBoard.minicom
+ do_expect "\"$prompt\"" "send \"saveenv\"" $cwd/setupBoard.minicom
+fi
+# Default U-Boot environment will boot our default SD card image.
+
+do_expect "\"$prompt\"" "send \"boot\"" $cwd/setupBoard.minicom
+echo "! killall -s SIGHUP minicom" >> $cwd/setupBoard.minicom
+
+echo "--------------------------------------------------------------------------------"
+echo "Would you like to create a minicom script with the above parameters (y/n)?"
+read -p "[ y ] " minicom
+echo
+
+if [ ! -n "$minicom" ]; then
+ minicom="y"
+fi
+
+if [ "$minicom" = "y" ]; then
+
+ echo -n "Successfully wrote "
+ readlink -m $cwd/setupBoard.minicom
+fi
+
+while [ yes ]
+do
+ check_for_beaglebone
+
+ if [ "$isBB" = "y" ]
+ then
+ echo ""
+ echo "A BeagleBone (Black) or StarterKit board has been detected"
+ echo "Do you want to configure U-Boot for one of the boards mentioned"
+ echo "above? An answer of 'n' will configure U-Boot for the"
+ echo "General Purpose EVM instead"
+ read -p "(y/n) " configBB
+ echo
+
+ if [ "$configBB" = "y" ] || [ "$configBB" = "n" ]
+ then
+ break
+ else
+ echo "Invalid response"
+ echo
+ continue
+ fi
+ else
+ echo ""
+ echo "No BeagleBone (Black) or StarterKit detected. Assuming"
+ echo "general purpose evm is being used. Is this correct?"
+ read -p "(y/n) " validevm
+ echo ""
+ if [ "$validevm" = "y" ]
+ then
+ configBB="n"
+ break
+ else
+ if [ "$validevm" != "n" ]
+ then
+ echo "Invalid response"
+ echo
+ continue
+ fi
+
+ echo "Please connect the Beaglebone (Black) or StarterKit to the PC"
+ echo "If your using the StarterKit board make sure it is turned on"
+ read -p "Press any key to try checking again." temp
+ fi
+ fi
+done
+
+if [ "$configBB" = "y" ]
+then
+ ftdiInstalled=`lsmod | grep ftdi_sio`
+ if [ -z "$ftdiInstalled" ]; then
+ #Add the ability to regconize the BeagleBone as two serial ports
+ if [ "$isBBrevA3" = "y" ]
+ then
+ echo "Finishing install by adding drivers for Beagle Bone..."
+ sudo modprobe -q ftdi_sio vendor=0x0403 product=0xa6d0
+
+ #Create uDev rule
+ echo "# Load ftdi_sio driver including support for XDS100v2." > $cwd/99-custom.rules
+ echo "SYSFS{idVendor}=="0403", SYSFS{idProduct}=="a6d0", \\" >> $cwd/99-custom.rules
+ echo "RUN+=\"/sbin/modprobe -q ftdi_sio vendor=0x0403 product=0xa6d0\"" >> $cwd/99-custom.rules
+ sudo cp $cwd/99-custom.rules /etc/udev/rules.d/
+ rm $cwd/99-custom.rules
+ else
+ sudo modprobe -q ftdi_sio
+ fi
+ fi
+
+ #infinite loop to look for board unless user asks to stop
+ while [ yes ]
+ do
+ echo "Detecting connection to board..."
+ loopCount=0
+ port=`dmesg | grep FTDI | grep "tty" | tail -1 | grep "attached" | awk '{ print $NF }'`
+ while [ -z "$port" ] && [ "$loopCount" -ne "10" ]
+ do
+ #count to 10 and timeout if no connection is found
+ loopCount=$((loopCount+1))
+
+ sleep 1
+ port=`dmesg | grep FTDI | grep "tty" | tail -1 | grep "attached" | awk '{ print $NF }'`
+ done
+
+ #check to see if we actually found a port
+ if [ -n "$port" ]; then
+ break;
+ fi
+
+ #if we didn't find a port and reached the timeout limit then ask to reconnect
+ if [ -z "$port" ] && [ "$loopCount" = "10" ]; then
+ echo ""
+ echo "Unable to detect which port the board is connected to."
+ echo "Please reconnect your board."
+ echo "Press 'y' to attempt to detect your board again or press 'n' to continue..."
+ read -p "(y/n)" retryBoardDetection
+ fi
+
+ #if they choose not to retry, ask user to reboot manually and exit
+ if [ "$retryBoardDetection" = "n" ]; then
+ echo ""
+ echo "Please reboot your board manually and connect using minicom."
+ exit;
+ fi
+ done
+
+ #Change minicom to accurately reflect the bone
+ minicomcfg=${HOME}/.minirc.dfl
+ echo "pu port /dev/$port
+ pu baudrate 115200
+ pu bits 8
+ pu parity N
+ pu stopbits 1
+ pu minit
+ pu mreset
+ pu mdialpre
+ pu mdialsuf
+ pu mdialpre2
+ pu mdialsuf2
+ pu mdialpre3
+ pu mdialsuf3
+ pu mconnect
+ pu mnocon1 NO CARRIER
+ pu mnocon2 BUSY
+ pu mnocon3 NO DIALTONE
+ pu mnocon4 VOICE
+ pu rtscts No" | tee $minicomcfg > /dev/null
+ check_status
+fi
+
+echo "Would you like to run the setup script now (y/n)? For the general purpose evm "
+echo "you must now connect the RS-232 cable to your evm now. For the Beaglebone (Black)"
+echo "or StarterKit this step should of already have been done. Also connect the ethernet"
+echo "cable as described in the Quick Start Guide."
+echo "**Important**"
+echo "Once answering 'y' on the prompt below you will have 300 seconds to turn on the"
+echo "board or if it was already on reboot the board before the setup times out"
+echo
+echo "After successfully executing this script, your board will be set up. You will be "
+echo "able to connect to it by executing 'minicom -w' or if you prefer a windows host"
+echo "you can set up Tera Term as explained in the Software Developer's Guide."
+echo "If you connect minicom or Tera Term and power cycle the board Linux will boot."
+echo
+read -p "[ y ] " minicomsetup
+
+if [ ! -n "$minicomsetup" ]; then
+minicomsetup="y"
+fi
+
+if [ "$minicomsetup" = "y" ]; then
+cd $cwd
+sudo minicom -w -S setupBoard.minicom
+cd -
+fi
+
+echo "You can manually run minicom in the future with this setup script using: minicom -S $cwd/setupBoard.minicom"
+echo "--------------------------------------------------------------------------------"
diff --git a/setup-uboot-env-am43x-hs.sh b/setup-uboot-env-am43x-hs.sh
new file mode 100644
index 0000000..7b67a65
--- /dev/null
+++ b/setup-uboot-env-am43x-hs.sh
@@ -0,0 +1,165 @@
+#!/bin/sh
+
+# This distribution contains contributions or derivatives under copyright
+# as follows:
+#
+# Copyright (c) 2014, Texas Instruments Incorporated
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# - Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# - Neither the name of Texas Instruments nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cwd=`dirname $0`
+. $cwd/common.sh
+
+do_expect() {
+ echo "expect {" >> $3
+ check_status
+ echo " $1" >> $3
+ check_status
+ echo "}" >> $3
+ check_status
+ echo $2 >> $3
+ check_status
+ echo >> $3
+}
+
+
+echo
+echo "--------------------------------------------------------------------------------"
+echo "This step will set up the u-boot variables for booting the EVM."
+echo
+
+ipdefault=`ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1 }'`
+platform=`grep PLATFORM= $cwd/../Rules.make | cut -d= -f2`
+
+# Configure prompt for U-Boot 2016.05
+prompt="=>"
+
+
+echo "Autodetected the following ip address of your host, correct it if necessary"
+read -p "[ $ipdefault ] " ip
+echo
+
+if [ ! -n "$ip" ]; then
+ ip=$ipdefault
+fi
+
+fitimage="fitImage-arago-base-tisdk-image-"$platform".itb"
+fitimagesrc=`ls -1 $cwd/../board-support/prebuilt-images/$fitimage`
+fitimagedefault=`basename $fitimagesrc`
+
+
+echo "Select fit image location:"
+echo " 1: TFTP"
+echo " 2: SD card"
+echo
+read -p "[ 1 ] " fit
+
+if [ ! -n "$fitimage" ]; then
+ fit="1"
+fi
+
+
+if [ "$fit" -eq "1" ]; then
+ echo
+ echo "Available fit images in /tftproot:"
+ for file in /tftpboot/*.itb; do
+ basefile=`basename $file`
+ echo " $basefile"
+ done
+ echo
+ echo "Which fit image do you want to boot from TFTP?"
+ read -p "[ $fitimagedefault ] " fitimage
+
+ if [ ! -n "$fitimage" ]; then
+ fitimage=$fitimagedefault
+ fi
+fi
+
+
+#This is an AM437x GP/EPOS EVM and thus has a NAND. Flash information to NAND.
+
+
+echo "timeout 300" > $cwd/setupBoard.minicom
+echo "verbose on" >> $cwd/setupBoard.minicom
+do_expect "\"stop autoboot:\"" "send \" \"" $cwd/setupBoard.minicom
+do_expect "\"$prompt\"" "send \"env default -f -a\"" $cwd/setupBoard.minicom
+do_expect "\"$prompt\"" "send \"saveenv\"" $cwd/setupBoard.minicom
+do_expect "\"$prompt\"" "send \"reset\"" $cwd/setupBoard.minicom
+do_expect "\"stop autoboot:\"" "send \" \"" $cwd/setupBoard.minicom
+
+if [ "$fit" -eq "1" ]; then
+ do_expect "\"$prompt\"" "send setenv serverip $ip" $cwd/setupBoard.minicom
+ do_expect "\"$prompt\"" "send setenv fit_bootfile $fitimage" $cwd/setupBoard.minicom
+ do_expect "\"$prompt\"" "send setenv bootcmd 'run findfdt; run init_console; run envboot; setenv autoload no; dhcp; tftp \${fit_loadaddr} \${fit_bootfile}; run args_fit; bootm \${fit_loadaddr}#\${fdtfile}'" $cwd/setupBoard.minicom
+ do_expect "\"$prompt\"" "send \"saveenv\"" $cwd/setupBoard.minicom
+fi
+# Default U-Boot environment will boot our default SD card image.
+
+do_expect "\"$prompt\"" "send \"boot\"" $cwd/setupBoard.minicom
+echo "! killall -s SIGHUP minicom" >> $cwd/setupBoard.minicom
+
+echo "--------------------------------------------------------------------------------"
+echo "Would you like to create a minicom script with the above parameters (y/n)?"
+read -p "[ y ] " minicom
+echo
+
+if [ ! -n "$minicom" ]; then
+ minicom="y"
+fi
+
+if [ "$minicom" = "y" ]; then
+
+ echo -n "Successfully wrote "
+ readlink -m $cwd/setupBoard.minicom
+
+ echo "Would you like to run the setup script now (y/n)? This requires you to connect"
+ echo "the RS-232 cable between your host and EVM as well as your ethernet cable as"
+ echo "described in the Quick Start Guide. Once answering 'y' on the prompt below"
+ echo "you will have 300 seconds to connect the board and power cycle it"
+ echo "before the setup times out"
+ echo
+ echo "After successfully executing this script, your EVM will be set up. You will be "
+ echo "able to connect to it by executing 'minicom -w' or if you prefer a windows host"
+ echo "you can set up Tera Term as explained in the Software Developer's Guide."
+ echo "If you connect minicom or Tera Term and power cycle the board Linux will boot."
+ echo
+ read -p "[ y ] " minicomsetup
+
+ if [ ! -n "$minicomsetup" ]; then
+ minicomsetup="y"
+ fi
+
+ if [ "$minicomsetup" = "y" ]; then
+ cd $cwd
+ sudo minicom -w -S setupBoard.minicom
+ cd -
+ fi
+
+ echo "You can manually run minicom in the future with this setup script using: minicom -S $cwd/setupBoard.minicom"
+ echo "--------------------------------------------------------------------------------"
+
+fi
+
diff --git a/setup-uboot-env-am57xx-hs-evm.sh b/setup-uboot-env-am57xx-hs-evm.sh
new file mode 100644
index 0000000..c3192b5
--- /dev/null
+++ b/setup-uboot-env-am57xx-hs-evm.sh
@@ -0,0 +1,242 @@
+#!/bin/sh
+
+# This distribution contains contributions or derivatives under copyright
+# as follows:
+#
+# Copyright (c) 2010, Texas Instruments Incorporated
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# - Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# - Neither the name of Texas Instruments nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cwd=`dirname $0`
+. $cwd/common.sh
+
+do_expect() {
+ echo "expect {" >> $3
+ check_status
+ echo " $1" >> $3
+ check_status
+ echo "}" >> $3
+ check_status
+ echo $2 >> $3
+ check_status
+ echo >> $3
+}
+
+
+echo
+echo "--------------------------------------------------------------------------------"
+echo "This step will set up the u-boot variables for booting the EVM."
+echo "--------------------------------------------------------------------------------"
+
+ipdefault=`ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1 }'`
+platform=`grep PLATFORM= $cwd/../Rules.make | cut -d= -f2`
+
+# Configure prompt for U-Boot 2016.05
+prompt="=>"
+
+
+echo "Autodetected the following ip address of your host, correct it if necessary"
+read -p "[ $ipdefault ] " ip
+echo
+
+if [ ! -n "$ip" ]; then
+ ip=$ipdefault
+fi
+
+fitimage="fitImage-arago-base-tisdk-image-"$platform".itb"
+fitimagesrc=`ls -1 $cwd/../board-support/prebuilt-images/$fitimage`
+fitimagedefault=`basename $fitimagesrc`
+
+
+echo "Select fit image location:"
+echo " 1: TFTP"
+echo " 2: SD card"
+echo
+read -p "[ 1 ] " fit
+
+if [ ! -n "$fitimage" ]; then
+ fit="1"
+fi
+
+
+if [ "$fit" -eq "1" ]; then
+ echo
+ echo "Available fit images in /tftproot:"
+ for file in /tftpboot/*.itb; do
+ basefile=`basename $file`
+ echo " $basefile"
+ done
+ echo
+ echo "Which fit image do you want to boot from TFTP?"
+ read -p "[ $fitimagedefault ] " fitimage
+
+ if [ ! -n "$fitimage" ]; then
+ fitimage=$fitimagedefault
+ fi
+fi
+
+board="unknown"
+check_for_board() {
+ lsusb -vv -d 0403:6001 > /dev/null 2>&1
+
+ if [ "$?" = "0" ]
+ then
+ board="x15"
+ fi
+
+ lsusb -vv -d 0403:6010 > /dev/null 2>&1
+
+ if [ "$?" = "0" ]
+ then
+ board="am5-idk"
+ fi
+}
+
+echo "timeout 300" > $cwd/setupBoard.minicom
+echo "verbose on" >> $cwd/setupBoard.minicom
+do_expect "\"stop autoboot:\"" "send \" \"" $cwd/setupBoard.minicom
+do_expect "\"$prompt\"" "send \"env default -f -a\"" $cwd/setupBoard.minicom
+do_expect "\"$prompt\"" "send \"saveenv\"" $cwd/setupBoard.minicom
+do_expect "\"$prompt\"" "send \"reset\"" $cwd/setupBoard.minicom
+do_expect "\"stop autoboot:\"" "send \" \"" $cwd/setupBoard.minicom
+
+if [ "$fit" -eq "1" ]; then
+ do_expect "\"$prompt\"" "send setenv serverip $ip" $cwd/setupBoard.minicom
+ do_expect "\"$prompt\"" "send setenv fit_bootfile $fitimage" $cwd/setupBoard.minicom
+ do_expect "\"$prompt\"" "send setenv bootcmd 'run findfdt; run init_console; run envboot; setenv autoload no; dhcp; tftp \${fit_loadaddr} \${fit_bootfile}; run args_fit; bootm \${fit_loadaddr}#\${fdtfile}'" $cwd/setupBoard.minicom
+ do_expect "\"$prompt\"" "send \"saveenv\"" $cwd/setupBoard.minicom
+fi
+# Default U-Boot environment will boot our default SD card image.
+
+do_expect "\"$prompt\"" "send \"boot\"" $cwd/setupBoard.minicom
+echo "! killall -s SIGHUP minicom" >> $cwd/setupBoard.minicom
+
+echo "--------------------------------------------------------------------------------"
+echo "Would you like to create a minicom script with the above parameters (y/n)?"
+read -p "[ y ] " minicom
+echo
+
+if [ ! -n "$minicom" ]; then
+ minicom="y"
+fi
+
+if [ "$minicom" = "y" ]; then
+
+ echo -n "Successfully wrote "
+ readlink -m $cwd/setupBoard.minicom
+
+ while [ yes ]
+ do
+ check_for_board
+
+ if [ "$board" != "unknown" ]
+ then
+ break
+ else
+ echo ""
+ echo "Board could not be detected. Please connect the board to the PC."
+ read -p "Press any key to try checking again." temp
+ fi
+ done
+
+ if [ "$board" != "unknown" ]
+ then
+ ftdiInstalled=`lsmod | grep ftdi_sio`
+ if [ -z "$ftdiInstalled" ]
+ then
+ sudo modprobe -q ftdi_sio
+ fi
+
+ while [ yes ]
+ do
+ echo ""
+ echo -n "Detecting connection to board... "
+ loopCount=0
+ port=`dmesg | grep FTDI | grep "tty" | tail -1 | grep "attached" | awk '{ print $NF }'`
+ while [ -z "$port" ] && [ "$loopCount" -ne "10" ]
+ do
+ #count to 10 and timeout if no connection is found
+ loopCount=$((loopCount+1))
+
+ sleep 1
+ port=`dmesg | grep FTDI | grep "tty" | tail -1 | grep "attached" | awk '{ print $NF }'`
+ done
+
+ #check to see if we actually found a port
+ if [ -n "$port" ]; then
+ echo "/dev/$port"
+ break;
+ fi
+
+ #if we didn't find a port and reached the timeout limit then ask to reconnect
+ if [ -z "$port" ] && [ "$loopCount" = "10" ]; then
+ echo ""
+ echo "Unable to detect which port the board is connected to."
+ echo "Please reconnect your board."
+ echo "Press 'y' to attempt to detect your board again or press 'n' to continue..."
+ read -p "(y/n)" retryBoardDetection
+ fi
+
+ #if they choose not to retry, ask user to reboot manually and exit
+ if [ "$retryBoardDetection" = "n" ]; then
+ echo ""
+ echo "Please reboot your board manually and connect using minicom."
+ exit;
+ fi
+ done
+
+ sed -i -e "s|^pu port.*$|pu port /dev/$port|g" ${HOME}/.minirc.dfl
+ fi
+
+ echo
+ echo "--------------------------------------------------------------------------------"
+ echo "Would you like to run the setup script now (y/n)?"
+ echo
+ echo "Please connect the ethernet cable as described in the Quick Start Guide."
+ echo "Once answering 'y' on the prompt below, you will have 300 seconds to connect"
+ echo "the board and power cycle it before the setup times out"
+ echo
+ echo "After successfully executing this script, your EVM will be set up. You will be "
+ echo "able to connect to it by executing 'minicom -w' or if you prefer a windows host"
+ echo "you can set up Tera Term as explained in the Software Developer's Guide."
+ echo "If you connect minicom or Tera Term and power cycle the board Linux will boot."
+ echo
+ read -p "[ y ] " minicomsetup
+
+ if [ ! -n "$minicomsetup" ]; then
+ minicomsetup="y"
+ fi
+
+ if [ "$minicomsetup" = "y" ]; then
+ cd $cwd
+ sudo minicom -w -S setupBoard.minicom
+ cd -
+ fi
+
+ echo "You can manually run minicom in the future with this setup script using: minicom -S $cwd/setupBoard.minicom"
+ echo "--------------------------------------------------------------------------------"
+
+fi
diff --git a/setup-uboot-env-keystone-hs.sh b/setup-uboot-env-keystone-hs.sh
new file mode 100755
index 0000000..9eff80f
--- /dev/null
+++ b/setup-uboot-env-keystone-hs.sh
@@ -0,0 +1,456 @@
+#!/bin/sh
+
+# This distribution contains contributions or derivatives under copyright
+# as follows:
+#
+# Copyright (c) 2010, Texas Instruments Incorporated
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# - Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+# - Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# - Neither the name of Texas Instruments nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cwd=`dirname $0`
+. $cwd/common.sh
+
+do_expect() {
+ local expect_str="$1"
+ local command="$2"
+
+ shift; shift
+
+ while [ $# -gt 0 ]
+ do
+ echo "expect {" >> "$1"
+ check_status
+ echo " $expect_str" >> "$1"
+ check_status
+ echo " timeout 600 goto end" >> "$1"
+ echo "}" >> "$1"
+ check_status
+ echo $command >> "$1"
+ check_status
+ echo >> "$1"
+
+ shift
+ done
+}
+
+prompt_feedback() {
+ # Usage: prompt_feedback <prompt> [variable] [default_value] [valid_opt1] [valid_opt2]...
+ local prompt="$1"
+ local var=""
+ local default=""
+
+ local opt_str=""
+
+ local response=""
+ local good_response=""
+
+ shift
+ [ $# -eq 0 ] || var="$1"
+ shift
+ [ $# -eq 0 ] || default="$1"
+ shift
+
+ if [ $# -gt 0 ]
+ then
+ opt_str="($1"
+ shift
+
+ while [ $# -gt 0 ]
+ do
+ opt_str="${opt_str}/$1"
+ shift
+ done
+ opt_str="${opt_str})"
+ fi
+
+ echo "$prompt $opt_str"
+ if [ ! -z "$default" ]
+ then
+ read -p "[ $default ] " response
+ else
+ read response
+ fi
+ echo
+
+ [ ! -z "$response" ] || response="$default"
+
+ [ -z "$var" ] || eval $var=\"$response\"
+}
+
+copy_to_tftproot() {
+ files="$1"
+ for file in $files
+ do
+ if [ -f $tftproot/$file ]; then
+ echo
+ echo "$tftproot/$file already exists. The existing installed file can be renamed and saved under the new name."
+ prompt_feedback "(o) overwrite (s) skip copy" exists o
+ case "$exists" in
+ s) echo "Skipping copy of $file, existing version will be used"
+ ;;
+ *) sudo cp "$prebuiltimagesdir/$file" $tftproot
+ check_status
+ echo
+ echo "Successfully overwritten $file in tftp root directory $tftproot"
+ ;;
+ esac
+ else
+ sudo cp "$prebuiltimagesdir/$file" $tftproot
+ check_status
+ echo
+ echo "Successfully copied $file to tftp root directory $tftproot"
+ fi
+ done
+}
+
+# Create the BMC scripts. These require no configuration from the user.
+create_bmc_scripts() {
+ ( echo "timeout 300"; echo; ) > $cwd/bmcUartBoot.minicom
+ ( echo "timeout 300"; echo; ) > $cwd/bmcNandBoot.minicom
+
+ # Allow time for XMODEM transfer to begin
+ echo "! sleep 1" >> $cwd/bmcUartBoot.minicom
+
+ ( echo "send \" \""; echo; ) >> $cwd/bmcUartBoot.minicom
+ ( echo "send \" \""; echo; ) >> $cwd/bmcNandBoot.minicom
+
+ do_expect "\"BMC>\"" "send \"bootmode #4\"" $cwd/bmcUartBoot.minicom
+ do_expect "\"BMC>\"" "send \"bootmode #0\"" $cwd/bmcNandBoot.minicom
+
+ do_expect "\"BMC>\"" "send \"reboot\"" $cwd/bmcUartBoot.minicom $cwd/bmcNandBoot.minicom
+
+ echo "end:" >> $cwd/bmcUartBoot.minicom
+ echo "end:" >> $cwd/bmcNandBoot.minicom
+
+ # bmcUartboot.minicom will be killed by the updateUboot.minicom script
+ echo "! killall -s SIGHUP minicom" >> $cwd/bmcNandBoot.minicom
+}
+
+echo
+echo "--------------------------------------------------------------------------------"
+echo "This step will set up the u-boot variables for booting the EVM."
+echo "--------------------------------------------------------------------------------"
+
+ipdefault=`ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1 }'`
+platform=`grep PLATFORM= $cwd/../Rules.make | cut -d= -f2`
+
+# Configure prompt for U-Boot 2016.05
+prompt="=>"
+
+prompt_feedback "Autodetected the following ip address of your host, correct it if necessary" ip "$(echo $ipdefault | sed -e 's| .*||')" $ipdefault
+
+if [ -f $cwd/../.tftproot ]; then
+ tftproot=`cat $cwd/../.tftproot`
+else
+ prompt_feedback "Where is your tftp root directory?" tftproot "/tftpboot"
+fi
+
+if [ -f $cwd/../.targetfs ]; then
+ rootpath=`cat $cwd/../.targetfs`
+else
+ prompt_feedback "Where is your target filesystem extracted?" rootpath "${HOME}/targetNFS"
+fi
+
+
+fitimage="fitImage-arago-base-tisdk-image-"$platform".itb"
+fitimagesrc=`ls -1 $cwd/../board-support/prebuilt-images/$fitimage`
+fitimagedefault=`basename $fitimagesrc`
+
+ubootimage="u-boot_HS_MLO-${platform}"
+ubootimagesrc=`readlink -m $cwd/../board-support/prebuilt-images/$ubootimage`
+
+echo "--------------------------------------------------------------------------------"
+prompt_feedback "Would you like to update U-boot on the board?" ubootupdate y y n
+
+echo
+echo "Available fit images in /tftproot:"
+for file in /tftpboot/*.itb; do
+ basefile=`basename $file`
+ echo " $basefile"
+done
+echo
+echo "Which fit image do you want to boot from TFTP?"
+read -p "[ $fitimagedefault ] " fitimage
+
+if [ ! -n "$fitimage" ]; then
+ fitimage=$fitimagedefault
+fi
+
+board="unknown"
+check_for_board() {
+ case $platform in
+ "k2hk-evm")
+ lsusb -vv -d 0403:6010 > /dev/null 2>&1
+
+ if [ "$?" = "0" ]
+ then
+ board="k2evm"
+ board_vendor="0403"
+ board_product="6010"
+ num_port="2"
+ uart_port_idx="1"
+ bmc_port_idx="2"
+ fi
+ ;;
+
+ "k2l-evm"|"k2e-evm")
+ lsusb -vv -d 10c4:ea70 > /dev/null 2>&1
+
+ if [ "$?" = "0" ]
+ then
+ board="k2evm"
+ board_vendor="10c4"
+ board_product="ea70"
+ num_port="2"
+ uart_port_idx="1"
+ bmc_port_idx="2"
+ fi
+ ;;
+ esac
+}
+
+echo "timeout 1800" > $cwd/setupBoard.minicom
+echo "timeout 1800" > $cwd/updateBoard.minicom
+echo "verbose on" >> $cwd/setupBoard.minicom
+echo "verbose on" >> $cwd/updateBoard.minicom
+
+do_expect "\"stop autoboot:\"" "send \" \"" $cwd/setupBoard.minicom $cwd/updateBoard.minicom
+
+# If U-Boot was not updated, refuse to proceed.
+cat >> $cwd/setupBoard.minicom << __EOF__
+expect {
+ "$prompt"
+ "# " goto uboot_update_required
+ timeout 60 goto end
+}
+send " "
+__EOF__
+
+# Reset to the default environment
+do_expect "\"$prompt\"" "send \"env default -f -a\"" $cwd/setupBoard.minicom $cwd/updateBoard.minicom
+
+do_expect "\"$prompt\"" "send \"saveenv\"" $cwd/setupBoard.minicom
+
+# Reset incase any variables are set when u-boot initializes
+do_expect "\"$prompt\"" "send \"reset\"" $cwd/setupBoard.minicom
+do_expect "\"stop autoboot:\"" "send \" \"" $cwd/setupBoard.minicom
+
+# Set up the U-Boot environment
+do_expect "\"$prompt\"" "send \"setenv serverip $ip\"" $cwd/setupBoard.minicom $cwd/updateBoard.minicom
+do_expect "\"$prompt\"" "send \"setenv tftp_root '$tftproot'\"" $cwd/setupBoard.minicom $cwd/updateBoard.minicom
+do_expect "\"$prompt\"" "send \"setenv name_uboot $ubootimage\"" $cwd/setupBoard.minicom $cwd/updateBoard.minicom
+do_expect "\"$prompt\"" "send \"setenv fit_bootfile $fitimage\"" $cwd/setupBoard.minicom $cwd/updateBoard.minicom
+do_expect "\"$prompt\"" "send \"setenv fit_loadaddr 0xc0000000\"" $cwd/setupBoard.minicom $cwd/updateBoard.minicom
+do_expect "\"$prompt\"" "send \"setenv addr_mon 0xc08000\"" $cwd/setupBoard.minicom $cwd/updateBoard.minicom
+do_expect "\"$prompt\"" "send \"setenv addr_mon_mkimg 0xc07ffc0\"" $cwd/setupBoard.minicom $cwd/updateBoard.minicom
+do_expect "\"$prompt\"" "send \"setenv mon_size 0x1210\"" $cwd/setupBoard.minicom $cwd/updateBoard.minicom
+do_expect "\"$prompt\"" "send \"setenv addr_mon 0xc08000\"" $cwd/setupBoard.minicom $cwd/updateBoard.minicom
+do_expect "\"$prompt\"" "send \"setenv sec_bm_install 'go \${addr_mon}4 0xc084000 \${mon_size}; mon_install \${addr_mon_mkimg}'\"" $cwd/setupBoard.minicom $cwd/updateBoard.minicom
+do_expect "\"$prompt\"" "send \"setenv loadimage 'dhcp \${fit_loadaddr} \${tftp_root}/\${fit_bootfile}'\"" $cwd/setupBoard.minicom $cwd/updateBoard.minicom
+do_expect "\"$prompt\"" "send \"setenv bootcmd 'run sec_bm_install; run loadimage; bootm \${fit_loadaddr}#\${name_fdt}'\"" $cwd/setupBoard.minicom $cwd/updateBoard.minicom
+
+
+# Create command to fetch and flash u-boot and ubi
+#
+# TBD: Save minicom output to a log and use these strings to determine the
+# update status on the host machine.
+#
+update_uboot_status="U-Boot update:"
+update_ubi_status="UBI update:"
+
+do_expect "\"$prompt\"" "send \"setenv update_uboot 'if run get_uboot_net burn_uboot_nand; then echo $update_uboot_status SUCCESS; else echo $update_uboot_status FAILED; fi'\"" $cwd/setupBoard.minicom $cwd/updateBoard.minicom
+
+do_expect "\"$prompt\"" "send \"saveenv\"" $cwd/setupBoard.minicom $cwd/updateBoard.minicom
+do_expect "\"$prompt\"" "send \"printenv\"" $cwd/setupBoard.minicom $cwd/updateBoard.minicom
+
+if [ "$ubootupdate" = "y" ]; then
+ do_expect "\"$prompt\"" "send \"run sec_bm_install\"" $cwd/updateBoard.minicom
+ do_expect "\"$prompt\"" "send \"run update_uboot\"" $cwd/updateBoard.minicom
+fi
+
+do_expect "\"$prompt\"" "send \" \"" $cwd/updateBoard.minicom
+do_expect "\"$prompt\"" "send \"boot\"" $cwd/setupBoard.minicom
+
+cat >> $cwd/setupBoard.minicom << __EOF__
+goto end
+uboot_update_required:
+send echo; echo "*** U-boot is require to be updated before proceeding!"; echo "*** The automatic upgrade of this version of U-boot is currently disabled."; echo "*** Please follow the wiki instructions to manually upgrade U-boot."; echo
+end:
+__EOF__
+
+cat >> $cwd/updateBoard.minicom << __EOF__
+goto end
+uboot_update_required:
+send echo; echo "*** U-boot is require to be updated before proceeding!"; echo "*** The automatic upgrade of this version of U-boot is currently disabled."; echo "*** Please follow the wiki instructions to manually upgrade U-boot."; echo
+end:
+__EOF__
+echo "! killall -s SIGHUP minicom" >> $cwd/updateBoard.minicom
+
+echo "--------------------------------------------------------------------------------"
+prompt_feedback "Would you like to create a minicom script with the above parameters?" minicom y y n
+
+if [ "$minicom" = "y" ]; then
+
+ echo -n "Successfully wrote "
+ readlink -m $cwd/setupBoard.minicom
+
+ while [ yes ]
+ do
+ check_for_board
+
+ if [ "$board" = "k2evm" ]
+ then
+ break
+ else
+ echo ""
+ prompt_feedback "Board could not be detected. Please connect the board to the PC." temp "Press any key to try checking again"
+
+ # Set to default board to allow user to specify the correct ports.
+ board=k2evm
+ fi
+ done
+
+ if [ "$board" != "unknown" ]
+ then
+ ftdiInstalled=`lsmod | grep ftdi_sio`
+ if [ -z "$ftdiInstalled" ]
+ then
+ sudo modprobe -q ftdi_sio
+ fi
+
+ while [ yes ]
+ do
+ echo ""
+ echo "--------------------------------------------------------------------------------"
+ echo
+ echo -n "Detecting connection to board... "
+ loopCount=0
+ usb_id=`dmesg | grep "idVendor=${board_vendor}" | grep "idProduct=${board_product}" | tail -1 | sed -e 's|.*usb \(.*\):.*|\1|'`
+ uart_port=`dmesg | grep "usb $usb_id" | grep "tty" | tail -${num_port} | head -${uart_port_idx} | tail -1 | grep "attached" | awk '{ print $NF }'`
+ bmc_port=`dmesg | grep "usb $usb_id" | grep "tty" | tail -${num_port} | head -${bmc_port_idx} | tail -1 | grep "attached" | awk '{ print $NF }'`
+ while [ -z "$uart_port" ] && [ "$loopCount" -ne "10" ]
+ do
+ #count to 10 and timeout if no connection is found
+ loopCount=$((loopCount+1))
+
+ sleep 1
+ usb_id=`dmesg | grep "idVendor=${board_vendor}" | grep "idProduct=${board_product}" | tail -1 | sed -e 's|.*usb \(.*\):.*|\1|'`
+ uart_port=`dmesg | grep "usb $usb_id" | grep "tty" | tail -${num_port} | head -${uart_port_idx} | tail -1 | grep "attached" | awk '{ print $NF }'`
+ bmc_port=`dmesg | grep "usb $usb_id" | grep "tty" | tail -${num_port} | head -${bmc_port_idx} | tail -1 | grep "attached" | awk '{ print $NF }'`
+ done
+
+ #check to see if we actually found a port
+ if [ -n "$uart_port" ]; then
+ echo "${platform} (UART) autodetected at /dev/$uart_port"
+ echo
+ prompt_feedback "Please verify that this is correct or manually enter the correct port:" dev_uart_port "/dev/$uart_port"
+
+ echo "${platform} (BMC) autodetected at /dev/$bmc_port"
+ echo
+ prompt_feedback "Please verify that this is correct or manually enter the correct port:" dev_bmc_port "/dev/$bmc_port"
+
+ if [ ! -e "${dev_uart_port}" ]; then
+ echo; echo "ERROR: ${dev_uart_port} does not exist!"
+ dev_uart_port=""
+ fi
+
+ if [ ! -e "${dev_bmc_port}" ]; then
+ echo; echo "ERROR: ${dev_bmc_port} does not exist!"
+ dev_bmc_port=""
+ fi
+
+ if [ "$dev_uart_port" = "$dev_bmc_port" ]; then
+ echo; echo "ERROR: UART and BMC cannot be the same port: $dev_uart_port!"
+ dev_uart_port=""
+ fi
+
+ if [ -n "$dev_uart_port" ] && [ -n "$dev_bmc_port" ]; then
+ break
+ fi
+ fi
+
+ #if we didn't find a port and reached the timeout limit then ask to reconnect
+ if [ -z "$uart_port" ] && [ "$loopCount" = "10" ]; then
+ echo ""
+ echo "Unable to detect which port the board is connected to."
+ echo "Please reconnect your board."
+ prompt_feedback "Press 'y' to attempt to detect your board again or press 'n' to continue..." retryBoardDetection y
+ fi
+
+ #if they choose not to retry, ask user to reboot manually and exit
+ if [ "$retryBoardDetection" = "n" ]; then
+ echo ""
+ echo "Please reboot your board manually and connect using minicom."
+ exit;
+ fi
+ done
+
+ sed -i -e "s|^pu port.*$|pu port $dev_uart_port|g" ${HOME}/.minirc.dfl
+ fi
+
+ echo
+ echo "--------------------------------------------------------------------------------"
+ echo "Would you like to run the setup script now (y/n)?"
+ echo
+ echo "Please connect the ethernet cable as described in the Quick Start Guide."
+ echo "Once answering 'y' on the prompt below, the script will proceed with"
+ echo "automatically booting and configuring the board based on the responses"
+ echo "provided."
+ echo
+ echo "After successfully executing this script, your EVM will be set up. You will be "
+ echo "able to connect to it by executing 'minicom -w' or if you prefer a windows host"
+ echo "you can set up Tera Term as explained in the Software Developer's Guide."
+ echo "If you connect minicom or Tera Term and power cycle the board Linux will boot."
+
+ prompt_feedback "" minicomsetup y
+
+ if [ "$minicomsetup" = "y" ]; then
+ create_bmc_scripts
+
+ cd $cwd
+
+ # Configuring bootmode to UART boot via BMC
+ screen -dmS minicom_${platform}_bmc minicom -D "$dev_bmc_port" -S bmcUartBoot.minicom -C bmcUartBoot.log
+
+ # Transfering uboot.bin using XMODEM protocol
+ sx -kb "$ubootimagesrc" < "$dev_uart_port" > "$dev_uart_port"
+
+ # Configure U-Boot environment and optionally flash board
+ minicom -D "$dev_uart_port" -S updateBoard.minicom -C updateBoard.log
+ rm "$tmp_fifo"
+
+ # Configuring bootmode to NAND boot via BMC
+ minicom -D "$dev_bmc_port" -S bmcNandBoot.minicom -C bmcNandBoot.log
+
+ # Running terminal to board (UART)
+ minicom -w -D "$dev_uart_port" -C bootBoard.log
+ cd -
+ fi
+
+ echo "You can manually run minicom in the future with this setup script using: minicom -S $cwd/setupBoard.minicom"
+ echo "--------------------------------------------------------------------------------"
+
+fi
--
1.9.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [tisdk-setup-scripts][PATCH 1/2] create-sdcard-fit: create SD card for secure platforms
2017-07-17 16:50 [tisdk-setup-scripts][PATCH 1/2] create-sdcard-fit: create SD card for secure platforms Jacob Stiffler
2017-07-17 16:50 ` [tisdk-setup-scripts][PATCH 2/2] setup: add support for HS EVMs Jacob Stiffler
@ 2017-07-26 20:46 ` Denys Dmytriyenko
1 sibling, 0 replies; 3+ messages in thread
From: Denys Dmytriyenko @ 2017-07-26 20:46 UTC (permalink / raw)
To: Jacob Stiffler; +Cc: meta-arago
Jake,
Will you be merging these 2 tisdk-setup-scripts patches yourself or waiting
for me to do it?
--
Denys
On Mon, Jul 17, 2017 at 12:50:45PM -0400, Jacob Stiffler wrote:
> Signed-off-by: Jacob Stiffler <j-stiffler@ti.com>
> ---
> create-sdcard-fit.sh | 978 +++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 978 insertions(+)
> create mode 100644 create-sdcard-fit.sh
>
> diff --git a/create-sdcard-fit.sh b/create-sdcard-fit.sh
> new file mode 100644
> index 0000000..60f32fa
> --- /dev/null
> +++ b/create-sdcard-fit.sh
> @@ -0,0 +1,978 @@
> +#!/bin/bash
> +# Authors:
> +# LT Thomas <ltjr@ti.com>
> +# Chase Maupin
> +# Franklin Cooper Jr.
> +#
> +# create-sdcard.sh v0.3
> +
> +# This distribution contains contributions or derivatives under copyright
> +# as follows:
> +#
> +# Copyright (c) 2010, Texas Instruments Incorporated
> +# All rights reserved.
> +#
> +# Redistribution and use in source and binary forms, with or without
> +# modification, are permitted provided that the following conditions
> +# are met:
> +# - Redistributions of source code must retain the above copyright notice,
> +# this list of conditions and the following disclaimer.
> +# - Redistributions in binary form must reproduce the above copyright
> +# notice, this list of conditions and the following disclaimer in the
> +# documentation and/or other materials provided with the distribution.
> +# - Neither the name of Texas Instruments nor the names of its
> +# contributors may be used to endorse or promote products derived
> +# from this software without specific prior written permission.
> +#
> +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
> +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
> +# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
> +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
> +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
> +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
> +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
> +# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
> +# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
> +# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
> +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> +
> +# Force locale language to be set to English. This avoids issues when doing
> +# text and string processing.
> +export LANG=C
> +
> +# Determine the absolute path to the executable
> +# EXE will have the PWD removed so we can concatenate with the PWD safely
> +PWD=`pwd`
> +EXE=`echo $0 | sed s=$PWD==`
> +EXEPATH="$PWD"/"$EXE"
> +clear
> +cat << EOM
> +
> +################################################################################
> +
> +This script will create a bootable SD card from custom or pre-built binaries.
> +
> +The script must be run with root permissions and from the bin directory of
> +the SDK
> +
> +Example:
> + $ sudo ./create-sdcard.sh
> +
> +Formatting can be skipped if the SD card is already formatted and
> +partitioned properly.
> +
> +################################################################################
> +
> +EOM
> +
> +AMIROOT=`whoami | awk {'print $1'}`
> +if [ "$AMIROOT" != "root" ] ; then
> +
> + echo " **** Error *** must run script with sudo"
> + echo ""
> + exit
> +fi
> +
> +THEPWD=$EXEPATH
> +PARSEPATH=`echo $THEPWD | grep -o '.*ti-sdk.*.[0-9]/'`
> +
> +if [ "$PARSEPATH" != "" ] ; then
> +PATHVALID=1
> +else
> +PATHVALID=0
> +fi
> +
> +#Precentage function
> +untar_progress ()
> +{
> + TARBALL=$1;
> + DIRECTPATH=$2;
> + BLOCKING_FACTOR=$(($(xz --robot --list ${TARBALL} | grep 'totals' | awk '{print $5}') / 51200 + 1));
> + tar --blocking-factor=${BLOCKING_FACTOR} --checkpoint=1 --checkpoint-action='ttyout=Written %u% \r' -Jxf ${TARBALL} -C ${DIRECTPATH}
> +}
> +
> +#copy/paste programs
> +cp_progress ()
> +{
> + CURRENTSIZE=0
> + while [ $CURRENTSIZE -lt $TOTALSIZE ]
> + do
> + TOTALSIZE=$1;
> + TOHERE=$2;
> + CURRENTSIZE=`sudo du -c $TOHERE | grep total | awk {'print $1'}`
> + echo -e -n "$CURRENTSIZE / $TOTALSIZE copied \r"
> + sleep 1
> + done
> +}
> +
> +check_for_sdcards()
> +{
> + # find the avaible SD cards
> + ROOTDRIVE=`mount | grep 'on / ' | awk {'print $1'} | cut -c6-8`
> + PARTITION_TEST=`cat /proc/partitions | grep -v $ROOTDRIVE | grep '\<sd.\>\|\<mmcblk.\>' | grep -n ''`
> + if [ "$PARTITION_TEST" = "" ]; then
> + echo -e "Please insert a SD card to continue\n"
> + while [ "$PARTITION_TEST" = "" ]; do
> + read -p "Type 'y' to re-detect the SD card or 'n' to exit the script: " REPLY
> + if [ "$REPLY" = 'n' ]; then
> + exit 1
> + fi
> + ROOTDRIVE=`mount | grep 'on / ' | awk {'print $1'} | cut -c6-8`
> + PARTITION_TEST=`cat /proc/partitions | grep -v $ROOTDRIVE | grep '\<sd.\>\|\<mmcblk.\>' | grep -n ''`
> + done
> + fi
> +}
> +
> +populate_3_partitions() {
> + ENTERCORRECTLY="0"
> + while [ $ENTERCORRECTLY -ne 1 ]
> + do
> + read -e -p 'Enter path where SD card tarballs were downloaded : ' TARBALLPATH
> +
> + echo ""
> + ENTERCORRECTLY=1
> + if [ -d $TARBALLPATH ]
> + then
> + echo "Directory exists"
> + echo ""
> + echo "This directory contains:"
> + ls $TARBALLPATH
> + echo ""
> + read -p 'Is this correct? [y/n] : ' ISRIGHTPATH
> + case $ISRIGHTPATH in
> + "y" | "Y") ;;
> + "n" | "N" ) ENTERCORRECTLY=0;continue;;
> + *) echo "Please enter y or n";ENTERCORRECTLY=0;continue;;
> + esac
> + else
> + echo "Invalid path make sure to include complete path"
> + ENTERCORRECTLY=0
> + continue
> + fi
> + # Check that tarballs were found
> + if [ ! -e "$TARBALLPATH""/boot_partition.tar.xz" ]
> + then
> + echo "Could not find boot_partition.tar.xz as expected. Please"
> + echo "point to the directory containing the boot_partition.tar.xz"
> + ENTERCORRECTLY=0
> + continue
> + fi
> +
> + if [ ! -e "$TARBALLPATH""/rootfs_partition.tar.xz" ]
> + then
> + echo "Could not find rootfs_partition.tar.xz as expected. Please"
> + echo "point to the directory containing the rootfs_partition.tar.xz"
> + ENTERCORRECTLY=0
> + continue
> + fi
> +
> + if [ ! -e "$TARBALLPATH""/start_here_partition.tar.xz" ]
> + then
> + echo "Could not find start_here_partition.tar.xz as expected. Please"
> + echo "point to the directory containing the start_here_partition.tar.xz"
> + ENTERCORRECTLY=0
> + continue
> + fi
> + done
> +
> + # Make temporary directories and untar mount the partitions
> + mkdir $PWD/boot
> + mkdir $PWD/rootfs
> + mkdir $PWD/start_here
> + mkdir $PWD/tmp
> +
> + mount -t vfat ${DRIVE}${P}1 boot
> + mount -t ext3 ${DRIVE}${P}2 rootfs
> + mount -t ext3 ${DRIVE}${P}3 start_here
> +
> + # Remove any existing content in case the partitions were not
> + # recreated
> + sudo rm -rf boot/*
> + sudo rm -rf rootfs/*
> + sudo rm -rf start_here/*
> +
> + # Extract the tarball contents.
> +cat << EOM
> +
> +################################################################################
> + Extracting boot partition tarball
> +
> +################################################################################
> +EOM
> + untar_progress $TARBALLPATH/boot_partition.tar.xz tmp/
> + if [ -e "./tmp/MLO" ]
> + then
> + cp ./tmp/MLO boot/
> + fi
> + cp -rf ./tmp/* boot/
> +
> +cat << EOM
> +
> +################################################################################
> + Extracting rootfs partition tarball
> +
> +################################################################################
> +EOM
> + untar_progress $TARBALLPATH/rootfs_partition.tar.xz rootfs/
> +
> +cat << EOM
> +
> +################################################################################
> + Extracting start_here partition to temp directory
> +
> +################################################################################
> +EOM
> + rm -rf tmp/*
> + untar_progress $TARBALLPATH/start_here_partition.tar.xz tmp/
> +
> +cat << EOM
> +
> +################################################################################
> + Copying Contents to START_HERE
> +
> +################################################################################
> +EOM
> +
> + TOTALSIZE=`sudo du -c tmp/* | grep total | awk {'print $1'}`
> + cp -rf tmp/* start_here/ &
> + cp_progress $TOTALSIZE start_here/
> + sync;sync
> + # Fix up the START_HERE partitoin permissions
> + chown nobody -R start_here
> + chgrp nogroup -R start_here
> +
> + umount boot rootfs start_here
> + sync;sync
> +
> + # Clean up the temp directories
> + rm -rf boot rootfs start_here tmp
> +}
> +
> +
> +# find the avaible SD cards
> +ROOTDRIVE=`mount | grep 'on / ' | awk {'print $1'} | cut -c6-9`
> +if [ "$ROOTDRIVE" = "root" ]; then
> + ROOTDRIVE=`readlink /dev/root | cut -c1-3`
> +else
> + ROOTDRIVE=`echo $ROOTDRIVE | cut -c1-3`
> +fi
> +
> +PARTITION_TEST=`cat /proc/partitions | grep -v $ROOTDRIVE | grep '\<sd.\>\|\<mmcblk.\>' | grep -n ''`
> +
> +# Check for available mounts
> +check_for_sdcards
> +
> +echo -e "\nAvailable Drives to write images to: \n"
> +echo "# major minor size name "
> +cat /proc/partitions | grep -v $ROOTDRIVE | grep '\<sd.\>\|\<mmcblk.\>' | grep -n ''
> +echo " "
> +
> +DEVICEDRIVENUMBER=
> +while true;
> +do
> + read -p 'Enter Device Number or 'n' to exit: ' DEVICEDRIVENUMBER
> + echo " "
> + if [ "$DEVICEDRIVENUMBER" = 'n' ]; then
> + exit 1
> + fi
> +
> + if [ "$DEVICEDRIVENUMBER" = "" ]; then
> + # Check to see if there are any changes
> + check_for_sdcards
> + echo -e "These are the Drives available to write images to:"
> + echo "# major minor size name "
> + cat /proc/partitions | grep -v $ROOTDRIVE | grep '\<sd.\>\|\<mmcblk.\>' | grep -n ''
> + echo " "
> + continue
> + fi
> +
> + DEVICEDRIVENAME=`cat /proc/partitions | grep -v $ROOTDRIVE | grep '\<sd.\>\|\<mmcblk.\>' | grep -n '' | grep "${DEVICEDRIVENUMBER}:" | awk '{print $5}'`
> + if [ -n "$DEVICEDRIVENAME" ]
> + then
> + DRIVE=/dev/$DEVICEDRIVENAME
> + DEVICESIZE=`cat /proc/partitions | grep -v $ROOTDRIVE | grep '\<sd.\>\|\<mmcblk.\>' | grep -n '' | grep "${DEVICEDRIVENUMBER}:" | awk '{print $4}'`
> + break
> + else
> + echo -e "Invalid selection!"
> + # Check to see if there are any changes
> + check_for_sdcards
> + echo -e "These are the only Drives available to write images to: \n"
> + echo "# major minor size name "
> + cat /proc/partitions | grep -v $ROOTDRIVE | grep '\<sd.\>\|\<mmcblk.\>' | grep -n ''
> + echo " "
> + fi
> +done
> +
> +echo "$DEVICEDRIVENAME was selected"
> +#Check the size of disk to make sure its under 16GB
> +if [ $DEVICESIZE -gt 17000000 ] ; then
> +cat << EOM
> +
> +################################################################################
> +
> + **********WARNING**********
> +
> + Selected Device is greater then 16GB
> + Continuing past this point will erase data from device
> + Double check that this is the correct SD Card
> +
> +################################################################################
> +
> +EOM
> + ENTERCORRECTLY=0
> + while [ $ENTERCORRECTLY -ne 1 ]
> + do
> + read -p 'Would you like to continue [y/n] : ' SIZECHECK
> + echo ""
> + echo " "
> + ENTERCORRECTLY=1
> + case $SIZECHECK in
> + "y") ;;
> + "n") exit;;
> + *) echo "Please enter y or n";ENTERCORRECTLY=0;;
> + esac
> + echo ""
> + done
> +
> +fi
> +echo ""
> +
> +DRIVE=/dev/$DEVICEDRIVENAME
> +NUM_OF_DRIVES=`df | grep -c $DEVICEDRIVENAME`
> +
> +# This if statement will determine if we have a mounted sdX or mmcblkX device.
> +# If it is mmcblkX, then we need to set an extra char in the partition names, 'p',
> +# to account for /dev/mmcblkXpY labled partitions.
> +if [[ ${DEVICEDRIVENAME} =~ ^sd. ]]; then
> + echo "$DRIVE is an sdx device"
> + P=''
> +else
> + echo "$DRIVE is an mmcblkx device"
> + P='p'
> +fi
> +
> +if [ "$NUM_OF_DRIVES" != "0" ]; then
> + echo "Unmounting the $DEVICEDRIVENAME drives"
> + for ((c=1; c<="$NUM_OF_DRIVES"; c++ ))
> + do
> + unmounted=`df | grep '\<'$DEVICEDRIVENAME$P$c'\>' | awk '{print $1}'`
> + if [ -n "$unmounted" ]
> + then
> + echo " unmounted ${DRIVE}$P$c"
> + sudo umount -f ${DRIVE}$P$c
> + fi
> +
> + done
> +fi
> +
> +# Refresh this variable as the device may not be mounted at script instantiation time
> +# This will always return one more then needed
> +NUM_OF_PARTS=`cat /proc/partitions | grep -v $ROOTDRIVE | grep -c $DEVICEDRIVENAME`
> +for ((c=1; c<"$NUM_OF_PARTS"; c++ ))
> +do
> + SIZE=`cat /proc/partitions | grep -v $ROOTDRIVE | grep '\<'$DEVICEDRIVENAME$P$c'\>' | awk '{print $3}'`
> + echo "Current size of $DEVICEDRIVENAME$P$c $SIZE bytes"
> +done
> +
> +# check to see if the device is already partitioned
> +for (( c=1; c<5; c++ ))
> +do
> + eval "SIZE$c=`cat /proc/partitions | grep -v $ROOTDRIVE | grep '\<'$DEVICEDRIVENAME$P$c'\>' | awk '{print $3}'`"
> +done
> +
> +PARTITION="0"
> +if [ -n "$SIZE1" -a -n "$SIZE2" ] ; then
> + if [ "$SIZE1" -gt "72000" -a "$SIZE2" -gt "700000" ]
> + then
> + PARTITION=1
> +
> + if [ -z "$SIZE3" -a -z "$SIZE4" ]
> + then
> + #Detected 2 partitions
> + PARTS=2
> +
> + elif [ "$SIZE3" -gt "1000" -a -z "$SIZE4" ]
> + then
> + #Detected 3 partitions
> + PARTS=3
> +
> + else
> + echo "SD Card is not correctly partitioned"
> + PARTITION=0
> + fi
> + fi
> +else
> + echo "SD Card is not correctly partitioned"
> + PARTITION=0
> + PARTS=0
> +fi
> +
> +
> +#Partition is found
> +if [ "$PARTITION" -eq "1" ]
> +then
> +cat << EOM
> +
> +################################################################################
> +
> + Detected device has $PARTS partitions already
> +
> + Re-partitioning will allow the choice of 2 or 3 partitions
> +
> +################################################################################
> +
> +EOM
> +
> + ENTERCORRECTLY=0
> + while [ $ENTERCORRECTLY -ne 1 ]
> + do
> + read -p 'Would you like to re-partition the drive anyways [y/n] : ' CASEPARTITION
> + echo ""
> + echo " "
> + ENTERCORRECTLY=1
> + case $CASEPARTITION in
> + "y") echo "Now partitioning $DEVICEDRIVENAME ...";PARTITION=0;;
> + "n") echo "Skipping partitioning";;
> + *) echo "Please enter y or n";ENTERCORRECTLY=0;;
> + esac
> + echo ""
> + done
> +
> +fi
> +
> +#Partition is not found, choose to partition 2 or 3 segments
> +if [ "$PARTITION" -eq "0" ]
> +then
> +cat << EOM
> +
> +################################################################################
> +
> + Select 2 partitions if only need boot and rootfs (most users).
> + Select 3 partitions if need SDK & other content on SD card. This is
> + usually used by device manufacturers with access to partition tarballs.
> +
> + ****WARNING**** continuing will erase all data on $DEVICEDRIVENAME
> +
> +################################################################################
> +
> +EOM
> + ENTERCORRECTLY=0
> + while [ $ENTERCORRECTLY -ne 1 ]
> + do
> +
> + read -p 'Number of partitions needed [2/3] : ' CASEPARTITIONNUMBER
> + echo ""
> + echo " "
> + ENTERCORRECTLY=1
> + case $CASEPARTITIONNUMBER in
> + "2") echo "Now partitioning $DEVICEDRIVENAME with 2 partitions...";PARTITION=2;;
> + "3") echo "Now partitioning $DEVICEDRIVENAME with 3 partitions...";PARTITION=3;;
> + "n") exit;;
> + *) echo "Please enter 2 or 3";ENTERCORRECTLY=0;;
> + esac
> + echo " "
> + done
> +fi
> +
> +
> +
> +#Section for partitioning the drive
> +
> +#create 3 partitions
> +if [ "$PARTITION" -eq "3" ]
> +then
> +
> +# set the PARTS value as well
> +PARTS=3
> +
> +cat << EOM
> +
> +################################################################################
> +
> + Now making 3 partitions
> +
> +################################################################################
> +
> +EOM
> +
> +dd if=/dev/zero of=$DRIVE bs=1024 count=1024
> +
> +SIZE=`fdisk -l $DRIVE | grep Disk | awk '{print $5}'`
> +
> +echo DISK SIZE - $SIZE bytes
> +
> +parted -s $DRIVE mklabel msdos
> +parted -s $DRIVE unit cyl mkpart primary fat32 -- 0 9
> +parted -s $DRIVE set 1 boot on
> +parted -s $DRIVE unit cyl mkpart primary ext2 -- 9 310
> +parted -s $DRIVE unit cyl mkpart primary ext2 -- 310 -2
> +
> +
> +cat << EOM
> +
> +################################################################################
> +
> + Partitioning Boot
> +
> +################################################################################
> +EOM
> + mkfs.vfat -F 32 -n "boot" ${DRIVE}${P}1
> +cat << EOM
> +
> +################################################################################
> +
> + Partitioning Rootfs
> +
> +################################################################################
> +EOM
> + mkfs.ext3 -L "rootfs" ${DRIVE}${P}2
> +cat << EOM
> +
> +################################################################################
> +
> + Partitioning START_HERE
> +
> +################################################################################
> +EOM
> + mkfs.ext3 -L "START_HERE" ${DRIVE}${P}3
> + sync
> + sync
> +
> +#create only 2 partitions
> +elif [ "$PARTITION" -eq "2" ]
> +then
> +
> +# Set the PARTS value as well
> +PARTS=2
> +cat << EOM
> +
> +################################################################################
> +
> + Now making 2 partitions
> +
> +################################################################################
> +
> +EOM
> +dd if=/dev/zero of=$DRIVE bs=1024 count=1024
> +
> +SIZE=`fdisk -l $DRIVE | grep Disk | awk '{print $5}'`
> +
> +echo DISK SIZE - $SIZE bytes
> +
> +parted -s $DRIVE mklabel msdos
> +parted -s $DRIVE unit cyl mkpart primary fat32 -- 0 9
> +parted -s $DRIVE set 1 boot on
> +parted -s $DRIVE unit cyl mkpart primary ext2 -- 9 -2
> +
> +cat << EOM
> +
> +################################################################################
> +
> + Partitioning Boot
> +
> +################################################################################
> +EOM
> + mkfs.vfat -F 32 -n "boot" ${DRIVE}${P}1
> +cat << EOM
> +
> +################################################################################
> +
> + Partitioning rootfs
> +
> +################################################################################
> +EOM
> + mkfs.ext3 -L "rootfs" ${DRIVE}${P}2
> + sync
> + sync
> + INSTALLSTARTHERE=n
> +fi
> +
> +
> +
> +#Break between partitioning and installing file system
> +cat << EOM
> +
> +
> +################################################################################
> +
> + Partitioning is now done
> + Continue to install filesystem or select 'n' to safe exit
> +
> + **Warning** Continuing will erase files any files in the partitions
> +
> +################################################################################
> +
> +
> +EOM
> +ENTERCORRECTLY=0
> +while [ $ENTERCORRECTLY -ne 1 ]
> +do
> + read -p 'Would you like to continue? [y/n] : ' EXITQ
> + echo ""
> + echo " "
> + ENTERCORRECTLY=1
> + case $EXITQ in
> + "y") ;;
> + "n") exit;;
> + *) echo "Please enter y or n";ENTERCORRECTLY=0;;
> + esac
> +done
> +
> +# If this is a three partition card then we will jump to a function to
> +# populate the three partitions and then exit the script. If not we
> +# go on to prompt the user for input on the two partitions
> +if [ "$PARTS" -eq "3" ]
> +then
> + populate_3_partitions
> + exit 0
> +fi
> +
> +#Add directories for images
> +export START_DIR=$PWD
> +mkdir $START_DIR/tmp
> +export PATH_TO_SDBOOT=boot
> +export PATH_TO_SDROOTFS=rootfs
> +export PATH_TO_TMP_DIR=$START_DIR/tmp
> +
> +
> +echo " "
> +echo "Mount the partitions "
> +mkdir $PATH_TO_SDBOOT
> +mkdir $PATH_TO_SDROOTFS
> +
> +sudo mount -t vfat ${DRIVE}${P}1 boot/
> +sudo mount -t ext3 ${DRIVE}${P}2 rootfs/
> +
> +
> +
> +echo " "
> +echo "Emptying partitions "
> +echo " "
> +sudo rm -rf $PATH_TO_SDBOOT/*
> +sudo rm -rf $PATH_TO_SDROOTFS/*
> +
> +echo ""
> +echo "Syncing...."
> +echo ""
> +sync
> +sync
> +sync
> +
> +cat << EOM
> +################################################################################
> +
> + Choose file path to install from
> +
> + 1 ) Install pre-built images from SDK
> + 2 ) Enter in custom boot and rootfs file paths
> +
> +################################################################################
> +
> +EOM
> +ENTERCORRECTLY=0
> +while [ $ENTERCORRECTLY -ne 1 ]
> +do
> + read -p 'Choose now [1/2] : ' FILEPATHOPTION
> + echo ""
> + echo " "
> + ENTERCORRECTLY=1
> + case $FILEPATHOPTION in
> + "1") echo "Will now install from SDK pre-built images";;
> + "2") echo "";;
> + *) echo "Please enter 1 or 2";ENTERCORRECTLY=0;;
> + esac
> +done
> +
> +# SDK DEFAULTS
> +if [ $FILEPATHOPTION -eq 1 ] ; then
> +
> + #check that in the right directory
> +
> + THEEVMSDK=`echo $PARSEPATH | grep -o 'ti-sdk-.*[0-9]'`
> +
> + if [ $PATHVALID -eq 1 ]; then
> + echo "now installing: $THEEVMSDK"
> + else
> + echo "no SDK PATH found"
> + ENTERCORRECTLY=0
> + while [ $ENTERCORRECTLY -ne 1 ]
> + do
> + read -e -p 'Enter path to SDK : ' SDKFILEPATH
> +
> + echo ""
> + ENTERCORRECTLY=1
> + if [ -d $SDKFILEPATH ]
> + then
> + echo "Directory exists"
> + echo ""
> + PARSEPATH=`echo $SDKFILEPATH | grep -o '.*ti-sdk.*.[0-9]/'`
> + #echo $PARSEPATH
> +
> + if [ "$PARSEPATH" != "" ] ; then
> + PATHVALID=1
> + else
> + PATHVALID=0
> + fi
> + #echo $PATHVALID
> + if [ $PATHVALID -eq 1 ] ; then
> +
> + THEEVMSDK=`echo $SDKFILEPATH | grep -o 'ti-sdk-.*[0-9]'`
> + echo "Is this the correct SDK: $THEEVMSDK"
> + echo ""
> + read -p 'Is this correct? [y/n] : ' ISRIGHTPATH
> + case $ISRIGHTPATH in
> + "y") ;;
> + "n") ENTERCORRECTLY=0;;
> + *) echo "Please enter y or n";ENTERCORRECTLY=0;;
> + esac
> + else
> + echo "Invalid SDK path make sure to include ti-sdk-xxxx"
> + ENTERCORRECTLY=0
> + fi
> +
> + else
> + echo "Invalid path make sure to include complete path"
> +
> + ENTERCORRECTLY=0
> + fi
> + done
> + fi
> +
> +
> +
> + #check that files are in SDK
> + BOOTFILEPATH="$PARSEPATH/board-support/prebuilt-images"
> + MLO=`ls $BOOTFILEPATH | grep MLO | awk {'print $1'}`
> + KERNELIMAGE=`ls $BOOTFILEPATH | grep [uz]Image | awk {'print $1'}`
> + BOOTIMG=`ls $BOOTFILEPATH | grep u-boot | grep .img | awk {'print $1'}`
> + BOOTBIN=`ls $BOOTFILEPATH | grep u-boot | grep .bin | awk {'print $1'}`
> + BOOTUENV=`ls $BOOTFILEPATH | grep uEnv.txt | awk {'print $1'}`
> + #fitImage
> + ROOTFILEPARTH="$PARSEPATH/filesystem"
> + #ROOTFSTAR=`ls $ROOTFILEPARTH | grep tisdk.*rootfs | awk {'print $1'}`
> +
> + #Make sure there is only 1 tar
> + CHECKNUMOFFITIMAGE=`ls $BOOTFILEPATH | grep "fitImage.*\.itb" | grep -n '' | grep '2:' | awk {'print $1'}`
> + if [ -n "$CHECKNUMOFTAR" ]
> + then
> +cat << EOM
> +
> +################################################################################
> +
> + Multiple FIT Images found
> +
> +################################################################################
> +
> +EOM
> + ls $BOOTFILEPATH | grep "fitImage.*\.itb" | grep -n '' | awk {'print " " , $1'}
> + echo ""
> + read -p "Enter Number of fitImage: " FITIMAGENUMBER
> + echo " "
> + FOUNDFITIMAGEFILENAME=`ls $BOOTFILEPARTH | grep "fitImage.*\.itb" | grep -n '' | grep "${FITIMAGENUMBER}:" | cut -c3- | awk {'print$1'}`
> + FITIMAGE=$FOUNDFITIMAGEFILENAME
> +
> + else
> + FITIMAGE=`ls $BOOTFILEPATH | grep "fitImage.*\.itb" | awk {'print $1'}`
> + fi
> +
> + FITIMAGEUSERFILEPATH=$BOOTFILEPATH/$FITIMAGE
> + BOOTPATHOPTION=1
> + ROOTFSPATHOPTION=2
> +
> +elif [ $FILEPATHOPTION -eq 2 ] ; then
> +cat << EOM
> +################################################################################
> +
> + For U-boot and MLO
> +
> + If files are located in Tarball write complete path including the file name.
> + e.x. $: /home/user/MyCustomTars/boot.tar.xz
> +
> + If files are located in a directory write the directory path
> + e.x. $: /ti-sdk/board-support/prebuilt-images/
> +
> + NOTE: Not all platforms will have an MLO file and this file can
> + be ignored for platforms that do not support an MLO.
> +
> + Update: The proper location for the kernel image and device tree
> + files have moved from the boot partition to the root filesystem.
> +
> +################################################################################
> +
> +EOM
> + ENTERCORRECTLY=0
> + while [ $ENTERCORRECTLY -ne 1 ]
> + do
> + read -e -p 'Enter path for Boot Partition : ' BOOTUSERFILEPATH
> +
> + echo ""
> + ENTERCORRECTLY=1
> + if [ -f $BOOTUSERFILEPATH ]
> + then
> + echo "File exists"
> + echo ""
> + elif [ -d $BOOTUSERFILEPATH ]
> + then
> + echo "Directory exists"
> + echo ""
> + echo "This directory contains:"
> + ls $BOOTUSERFILEPATH
> + echo ""
> + read -p 'Is this correct? [y/n] : ' ISRIGHTPATH
> + case $ISRIGHTPATH in
> + "y") ;;
> + "n") ENTERCORRECTLY=0;;
> + *) echo "Please enter y or n";ENTERCORRECTLY=0;;
> + esac
> + else
> + echo "Invalid path make sure to include complete path"
> +
> + ENTERCORRECTLY=0
> + fi
> + done
> +
> +
> +cat << EOM
> +
> +
> +################################################################################
> +
> + For FIT Image
> +
> + Please provide the path the the fitImage to boot
> + e.x. $: /home/user/MyCustomFIT/fitImage.itb
> +
> +################################################################################
> +
> +EOM
> + ENTERCORRECTLY=0
> + while [ $ENTERCORRECTLY -ne 1 ]
> + do
> + read -e -p 'Enter path for FIT Image : ' FITIMAGEUSERFILEPATH
> + echo ""
> + ENTERCORRECTLY=1
> + if [ -f $FITIMAGEUSERFILEPATH ]
> + then
> + echo "File exists"
> + echo ""
> + elif [ -d $FITIMAGEUSERFILEPATH ]
> + then
> + echo "This directory contains:"
> + ls $FITIMAGEUSERFILEPATH
> + echo ""
> + read -p 'Is this correct? [y/n] : ' ISRIGHTPATH
> + case $ISRIGHTPATH in
> + "y") ;;
> + "n") ENTERCORRECTLY=0;;
> + *) echo "Please enter y or n";ENTERCORRECTLY=0;;
> + esac
> +
> + else
> + echo "Invalid path make sure to include complete path"
> +
> + ENTERCORRECTLY=0
> + fi
> + done
> + echo ""
> +
> +
> + # Check if user entered a tar or not for Boot
> + ISBOOTTAR=`ls $BOOTUSERFILEPATH | grep .tar.xz | awk {'print $1'}`
> + if [ -n "$ISBOOTTAR" ]
> + then
> + BOOTPATHOPTION=2
> + else
> + BOOTPATHOPTION=1
> + BOOTFILEPATH=$BOOTUSERFILEPATH
> + MLO=`ls $BOOTFILEPATH | grep MLO | awk {'print $1'}`
> + BOOTIMG=`ls $BOOTFILEPATH | grep u-boot | grep .img | awk {'print $1'}`
> + BOOTBIN=`ls $BOOTFILEPATH | grep u-boot | grep .bin | awk {'print $1'}`
> + BOOTUENV=`ls $BOOTFILEPATH | grep uEnv.txt | awk {'print $1'}`
> + fi
> +fi
> +
> +cat << EOM
> +################################################################################
> +
> + Copying files now... will take minutes
> +
> +################################################################################
> +
> +Copying boot partition
> +EOM
> +
> +
> +if [ $BOOTPATHOPTION -eq 1 ] ; then
> +
> + echo ""
> + #copy boot files out of board support
> + if [ "$MLO" != "" ] ; then
> + cp $BOOTFILEPATH/$MLO $PATH_TO_SDBOOT/MLO
> + echo "MLO copied"
> + else
> + echo "MLO file not found"
> + fi
> +
> + echo ""
> +
> + echo ""
> +
> + if [ "$BOOTIMG" != "" ] ; then
> + cp $BOOTFILEPATH/$BOOTIMG $PATH_TO_SDBOOT/u-boot.img
> + echo "u-boot.img copied"
> + elif [ "$BOOTBIN" != "" ] ; then
> + cp $BOOTFILEPATH/$BOOTBIN $PATH_TO_SDBOOT/u-boot.bin
> + echo "u-boot.bin copied"
> + else
> + echo "No U-Boot file found"
> + fi
> +
> + echo ""
> +
> + if [ "$BOOTUENV" != "" ] ; then
> + cp $BOOTFILEPATH/$BOOTUENV $PATH_TO_SDBOOT/uEnv.txt
> + echo "uEnv.txt copied"
> + fi
> +
> +elif [ $BOOTPATHOPTION -eq 2 ] ; then
> + untar_progress $BOOTUSERFILEPATH $PATH_TO_TMP_DIR
> + cp -rf $PATH_TO_TMP_DIR/* $PATH_TO_SDBOOT
> + echo ""
> +
> +fi
> +
> +echo ""
> +sync
> +
> +echo "Copying FIT Image"
> +sudo mkdir -p $PATH_TO_SDROOTFS/boot
> +sudo cp $FITIMAGEUSERFILEPATH $PATH_TO_SDROOTFS/boot/fitImage.itb
> +
> +echo ""
> +echo ""
> +echo "Syncing..."
> +sync
> +sync
> +sync
> +sync
> +sync
> +sync
> +sync
> +sync
> +
> +echo " "
> +echo "Un-mount the partitions "
> +sudo umount -f $PATH_TO_SDBOOT
> +sudo umount -f $PATH_TO_SDROOTFS
> +
> +
> +echo " "
> +echo "Remove created temp directories "
> +sudo rm -rf $PATH_TO_TMP_DIR
> +sudo rm -rf $PATH_TO_SDROOTFS
> +sudo rm -rf $PATH_TO_SDBOOT
> +
> +
> +echo " "
> +echo "Operation Finished"
> +echo " "
> --
> 1.9.1
>
> _______________________________________________
> meta-arago mailing list
> meta-arago@arago-project.org
> http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-07-26 20:46 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-07-17 16:50 [tisdk-setup-scripts][PATCH 1/2] create-sdcard-fit: create SD card for secure platforms Jacob Stiffler
2017-07-17 16:50 ` [tisdk-setup-scripts][PATCH 2/2] setup: add support for HS EVMs Jacob Stiffler
2017-07-26 20:46 ` [tisdk-setup-scripts][PATCH 1/2] create-sdcard-fit: create SD card for secure platforms Denys Dmytriyenko
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.