arm:manage versioning of u-boot and upgrade u-boot
Replaced the wget download of u-boot by a versioned git checkout this allows us to better manage the u-boot and MLO version we ship while still allowing us to build ofline. This changes replaces the BASE_URL setting by U_BOOT_BIN_DIR and also updates to a newer build of u-boot.
This commit is contained in:
parent
7194772eae
commit
91a2fe4aba
2 changed files with 81 additions and 18 deletions
|
@ -20,6 +20,7 @@ fi
|
||||||
: ${CROSS_PREFIX=${CROSS_TOOLS}/arm-elf32-minix-}
|
: ${CROSS_PREFIX=${CROSS_TOOLS}/arm-elf32-minix-}
|
||||||
: ${JOBS=1}
|
: ${JOBS=1}
|
||||||
: ${DESTDIR=${OBJ}/destdir.$ARCH}
|
: ${DESTDIR=${OBJ}/destdir.$ARCH}
|
||||||
|
: ${RELEASETOOLSDIR=./releasetools/}
|
||||||
: ${FSTAB=${DESTDIR}/etc/fstab}
|
: ${FSTAB=${DESTDIR}/etc/fstab}
|
||||||
: ${BUILDVARS=}
|
: ${BUILDVARS=}
|
||||||
: ${BUILDSH=build.sh}
|
: ${BUILDSH=build.sh}
|
||||||
|
@ -33,17 +34,32 @@ fi
|
||||||
: ${UBOOT=u-boot.img}
|
: ${UBOOT=u-boot.img}
|
||||||
|
|
||||||
|
|
||||||
# beagleboard-xm
|
# Beagleboard-xm
|
||||||
: ${BASE_URL=http://www.minix3.org/arm/beagleboard-xm}
|
: ${U_BOOT_BIN_DIR=build/omap3_beagle/}
|
||||||
: ${FLAG=-DDM37XX}
|
: ${FLAG=-DDM37XX}
|
||||||
: ${CONSOLE=tty02}
|
: ${CONSOLE=tty02}
|
||||||
|
|
||||||
|
|
||||||
#beaglebone (and black)
|
# BeagleBone (and black)
|
||||||
#: ${BASE_URL=http://www.minix3.org/arm/beaglebone}
|
#: ${U_BOOT_BIN_DIR=build/am335x_evm/}
|
||||||
#: ${FLAG=-DAM335X}
|
#: ${FLAG=-DAM335X}
|
||||||
#: ${CONSOLE=tty00}
|
#: ${CONSOLE=tty00}
|
||||||
|
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# We host u-boot binaries.
|
||||||
|
U_BOOT_GIT_VERSION=cb5178f12787c690cb1c888d88733137e5a47b15
|
||||||
|
|
||||||
|
if [ -n "$BASE_URL" ]
|
||||||
|
then
|
||||||
|
#we no longer download u-boot but do a checkout
|
||||||
|
#BASE_URL used to be the base url for u-boot
|
||||||
|
#Downloads
|
||||||
|
echo "Warning:** Setting BASE_URL (u-boot) is no longer possible use U_BOOT_BIN_DIR"
|
||||||
|
echo "Look in ./releasetools/arm_sdimage.sh for suggested values"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
if [ ! -f ${BUILDSH} ]
|
if [ ! -f ${BUILDSH} ]
|
||||||
then echo "Please invoke me from the root source dir, where ${BUILDSH} is."
|
then echo "Please invoke me from the root source dir, where ${BUILDSH} is."
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -51,7 +67,7 @@ fi
|
||||||
|
|
||||||
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:$PATH
|
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:$PATH
|
||||||
|
|
||||||
for needed in mcopy dd wget mkfs.vfat
|
for needed in mcopy dd mkfs.vfat git
|
||||||
do
|
do
|
||||||
if ! which $needed 2>&1 > /dev/null
|
if ! which $needed 2>&1 > /dev/null
|
||||||
then
|
then
|
||||||
|
@ -68,19 +84,9 @@ mkdir -p $IMG_DIR
|
||||||
#
|
#
|
||||||
# Download the stage 1 bootloader and u-boot
|
# Download the stage 1 bootloader and u-boot
|
||||||
#
|
#
|
||||||
for i in ${MLO} ${UBOOT}
|
./releasetools/fetch_u-boot.sh -o ${RELEASETOOLSDIR}/u-boot -n $U_BOOT_GIT_VERSION
|
||||||
do
|
cp ${RELEASETOOLSDIR}/u-boot/${U_BOOT_BIN_DIR}/u-boot.img ${IMG_DIR}/
|
||||||
if [ ! -f ${IMG_DIR}/${i} ]
|
cp ${RELEASETOOLSDIR}/u-boot/${U_BOOT_BIN_DIR}/MLO ${IMG_DIR}/
|
||||||
then
|
|
||||||
if ! wget -O ${IMG_DIR}/$i ${BASE_URL}/$i
|
|
||||||
then
|
|
||||||
echo "Failed to download $i"
|
|
||||||
rm -f ${IMG_DIR}/$i
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Call build.sh using a sloppy file list so we don't need to remove the installed /etc/fstag
|
# Call build.sh using a sloppy file list so we don't need to remove the installed /etc/fstag
|
||||||
|
|
57
releasetools/fetch_u-boot.sh
Executable file
57
releasetools/fetch_u-boot.sh
Executable file
|
@ -0,0 +1,57 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Perform a checkout / update the MINIX u-boot git repo if needed
|
||||||
|
#
|
||||||
|
# -o output dir
|
||||||
|
OUTPUT_DIR=""
|
||||||
|
GIT_VERSION=""
|
||||||
|
while getopts "o:n:?" c
|
||||||
|
do
|
||||||
|
case "$c" in
|
||||||
|
\?)
|
||||||
|
echo "Usage: $0 -o output dir -n version " >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
o)
|
||||||
|
OUTPUT_DIR=$OPTARG
|
||||||
|
;;
|
||||||
|
n)
|
||||||
|
GIT_VERSION=$OPTARG
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# check arguments
|
||||||
|
#
|
||||||
|
if [ -z "$OUTPUT_DIR" -o -z "$GIT_VERSION" ]
|
||||||
|
then
|
||||||
|
echo "Missing required parameters OUTPUT_DIR=$OUTPUT_DIR GIT_VERSION=$GIT_VERSION"
|
||||||
|
echo "Usage: $0 -o output dir -n version " >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# if the file doesn't exist it's easy , to a checkout
|
||||||
|
#
|
||||||
|
if [ ! -e "$OUTPUT_DIR" ]
|
||||||
|
then
|
||||||
|
git clone git://git.minix3.org/u-boot -b minix $OUTPUT_DIR
|
||||||
|
fi
|
||||||
|
|
||||||
|
(
|
||||||
|
cd "$OUTPUT_DIR"
|
||||||
|
|
||||||
|
#
|
||||||
|
# perform an update
|
||||||
|
#
|
||||||
|
CURRENT_VERSION=`git rev-parse HEAD`
|
||||||
|
if [ "$CURRENT_VERSION" != "$GIT_VERSION" ]
|
||||||
|
then
|
||||||
|
echo "Current version $CURRENT_VERSION does not match wanted $GIT_VERSION performing update and checkout"
|
||||||
|
git fetch -v
|
||||||
|
git checkout $GIT_VERSION
|
||||||
|
fi
|
||||||
|
)
|
Loading…
Reference in a new issue