Intention:
Make it as easy as possible for users to add patches (new features, hotfixes, etc.) to an exisiting (old ) BSP.
Approach:
Use self-installing archive with bash script to add patches to a BSP.
Packaging:
ZIP file with same name (including revision) of target BSP plus extension describing the contents/purpose of the patches, which contains
E.g.
cat <<EOF > README Target BSP: TQMa335x-BSP-REV0102 Purpose: Upgrade BSP to accept eMMC 5.0 devices IMPORTANT: This patch does not add any features introduced with eMMC 5.0. It just makes sure eMMC 5.0 devices are detected correctly and can be used properly. Instructions ============ 1. copy/move installer "TQMa335x-BSP-REV0102_add_eMMC5.0_detection.run" to BSP root folder 2. change to BSP root folder 3. execute installer: "./TQMa335x-BSP-REV0102_add_eMMC5.0_detection.run" EOF
unzip -p ~/workspace/TQMa335x/ARCHIVE/TQMa335x-BSP-REV0102.zip TQMa335x-BSP-REV.0102.tar.gz | tar xvzf -
tar xvf ~/workspace/TQ-ARM-BSP/ARCHIVE/TQ-ARM-BSP-REV.0109.tar.gz
cat <<EOF > README.TQMa335x_eMMC5.0 Proper detection of eMMC version 5.0 devices added --> patches/u-boot-2013.07/tqma335x/mmc-add-mmc_version_5_0.patch EOF
cat <<EOF > TQ_add_eMMC5.0_detection.sh
#!/bin/bash
TQ_UBOOT_PATCH_PATH="patches/u-boot-2013.07/"
TQ_UBOOT_PATCH_LAST="tqma335x/0032-tqma335x-trigger-cold-reset-to-fix-samsung-ddr3-free.patch"
TQ_UBOOT_PATCH_EMMC="tqma335x/mmc-add-mmc_version_5_0.patch"
apply_patch()
{
# Setup parameters
SERIES="${1}series.tqma335x"
PATCH="$2"
CONTEXT="$3"
echo -en "Trying to insert \"$PATCH\" into \"$SERIES\" after \"$CONTEXT\" ..."
# Verify prerequisites
if [ -e "$SERIES" ]
then
if grep --quiet $CONTEXT $SERIES
then
if grep --quiet $PATCH $SERIES
then
echo -e "\nerror: Patch \"$PATCH\" already listed in \"$SERIES\" - aborting!"
return 3
fi
else
echo -e "\nerror: Cannot find patch \"$CONTEXT\" in \"$SERIES\" - aborting!"
return 2
fi
else
echo -e "\nerror: \"$SERIES\" does not exist - aborting!"
return 1
fi
# Modify series file
sed -i.bak -e "s|${CONTEXT}|${CONTEXT}\n${PATCH}|" ${SERIES}
if [ -e "${SERIES}.bak" ]
then
echo "done!"
else
echo "failed"
fi
}
apply_patch $TQ_UBOOT_PATCH_PATH $TQ_UBOOT_PATCH_EMMC $TQ_UBOOT_PATCH_LAST
let "RETVAL=10*$?"
exit $RETVAL
EOF
e.g.
cp ../SOME_PATH/mmc-add-mmc_version_5_0.patch patches/u-boot-2013.07/tqma335x/
Keep
Remove
cd TQMa335x-BSP-REV.0102
makeself --current --nocomp . ../TQMa335x-BSP-REV0102_add_eMMC5.0_detection.run "TQMa335x-BSP-REV0102_add_eMMC5.0_detection" ./TQ_add_eMMC5.0_detection.sh
zip -o -0 TQMa335x-BSP-REV0102_add_eMMC5.0_detection.zip TQMa335x-BSP-REV0102_add_eMMC5.0_detection.run README