diff options
author | Ryan Harkin <ryan.harkin@linaro.org> | 2013-11-14 18:15:14 +0000 |
---|---|---|
committer | Ryan Harkin <ryan.harkin@linaro.org> | 2013-11-14 18:15:14 +0000 |
commit | 6f4ac4b697687f8ab365114157c2e75cf0fd3c07 (patch) | |
tree | a7a1dccd63561edc93e23e88068728ea0a038ea5 | |
parent | 0567995c382cfc098c1d9e4fdcb7e532a802a521 (diff) |
Convert script to build ARM Trusted Firmware
Convert the uefi.sh script to build the ARM Trusted Firmware instead of
UEFI.
Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
-rwxr-xr-x | uefi.sh | 129 |
1 files changed, 26 insertions, 103 deletions
@@ -1,6 +1,5 @@ #!/bin/bash -# Script used by CI to build UEFI for various boards -# Requirements: uuid-dev package +# Script used by CI to build the ARM Trusted Firmware error_count=0 built_count=0 @@ -20,25 +19,33 @@ if [ -z "${WORKSPACE}" ]; then # Local build export WORKSPACE=`pwd` export BUILD_NUMBER=0 - export JOB_NAME=${JOB_NAME:-uefi} + export JOB_NAME=${JOB_NAME:-linaro} fi case "${JOB_NAME}" in - uefi) - repo=uefi + linaro) + repo=arm-trusted-firmware + repo_url=git://git.linaro.org/arm/models + branch=linaro + ;; + master) + repo=arm-trusted-firmware + repo_url=git://git.linaro.org/arm/models branch=master ;; - uefi-next) - repo=uefi-next - branch=linaro-tracking + upstream) + repo=arm-trusted-firmware + repo_url=https://github.com/ARM-software + branch=master ;; - uefi-lce-2013) - repo=uefi-next - branch=lce-2013 + *) + echo "Invalid JOB_NAME $JOB_NAME" + exit 1 + ;; esac -pkg_source=edk2-${JOB_NAME} -pkg_repository=git://git.linaro.org/arm/uefi/${repo}.git +pkg_source=arm-trusted-firmware-${JOB_NAME} +pkg_repository=$repo_url/${repo}.git if [ "${BUILD_NUMBER}" -eq 0 ]; then git clone --depth 1 ${pkg_repository} -b ${branch} @@ -56,109 +63,25 @@ pkg_dir=${pkg_source}-${pkg_version} unset ARCH export builddir=${WORKSPACE}/${JOB_NAME}-build -export EDK_WORKSPACE=${WORKSPACE}/${repo} -export EDK_TOOLS_PATH=${EDK_WORKSPACE}/BaseTools -export CROSS_COMPILE=${CROSS_COMPILE:-arm-linux-gnueabihf-} +export REPO_WORKSPACE=${WORKSPACE}/${repo} +export CROSS_COMPILE=${CROSS_COMPILE:-aarch64-linux-gnu-} rm -rf ${builddir} && mkdir -p ${builddir} # Create source tarball -cd ${EDK_WORKSPACE} +cd ${REPO_WORKSPACE} git checkout ${branch} git archive --format=tar --prefix=${pkg_dir}/ ${branch} | bzip2 > ${pkg_source}_${pkg_version}.orig.tar.bz2 mv ${pkg_source}_${pkg_version}.orig.tar.bz2 ${builddir} cd ${WORKSPACE} -# Fix WORKSPACE environment variable conflict with Jenkins -find ${EDK_WORKSPACE} -type f | xargs sed -i 's/WORKSPACE/EDK_WORKSPACE/g' - -# Get the toolchain -#wget --progress=dot -e dotbytes=1M http://releases.linaro.org/12.04/components/toolchain/binaries/gcc-linaro-arm-linux-gnueabi-2012.04-20120426_linux.tar.bz2 -#tar -jxf gcc-linaro-arm-linux-gnueabi-2012.04-20120426_linux.tar.bz2 -#export ARMLINUXGCC_TOOLS_PATH=${WORKSPACE}/gcc-linaro-arm-linux-gnueabi-2012.04-20120426_linux/bin/ - -edksetup=`find ${EDK_WORKSPACE} -type f -name 'edksetup.sh'` -source ${edksetup} - -basetools=`find ${EDK_WORKSPACE} -type d -name BaseTools` -make -C ${basetools} - -export ARCH=arm -export TARGET=${TARGET:-RELEASE} - # disable exit on error set +e -build -a ARM -b ${TARGET} -t ARMLINUXGCC -p ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.dsc -D EDK2_ARMVE_STANDALONE=1 -D EDK2_ARMVE_SINGLE_BINARY=1 -count_errors $? -cp -a ${EDK_WORKSPACE}/Build/ArmVExpress-CTA9x4/${TARGET}_ARMLINUXGCC/FV/ARMVEXPRESS_EFI.fd ${builddir}/uefi_v2p-ca9.bin -build -a ARM -b ${TARGET} -t ARMLINUXGCC -p ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.dsc -D ARM_BIGLITTLE_TC2=1 -count_errors $? -cp -a ${EDK_WORKSPACE}/Build/ArmVExpress-CTA15-A7/${TARGET}_ARMLINUXGCC/FV/ARM_VEXPRESS_CTA15A7_EFI.fd ${builddir}/uefi_v2p-ca15-tc2.bin -build -a ARM -b ${TARGET} -t ARMLINUXGCC -p ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA5s.dsc -D EDK2_ARMVE_STANDALONE=1 -count_errors $? -cp -a ${EDK_WORKSPACE}/Build/ArmVExpress-CTA5s/${TARGET}_ARMLINUXGCC/FV/ARMVEXPRESS_EFI.fd ${builddir}/uefi_v2p-ca5s.bin -build -a ARM -b ${TARGET} -t ARMLINUXGCC -p ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15x2.dsc -D EDK2_ARMVE_STANDALONE=1 -count_errors $? -cp -a ${EDK_WORKSPACE}/Build/ArmVExpress-CTA15x2/${TARGET}_ARMLINUXGCC/FV/ARMVEXPRESS_EFI.fd ${builddir}/uefi_v2p-ca15-tc1.bin -build -a ARM -b ${TARGET} -t ARMLINUXGCC -p ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A9x4.dsc -count_errors $? -cp -a ${EDK_WORKSPACE}/Build/ArmVExpress-RTSM-A9x4/${TARGET}_ARMLINUXGCC/FV/RTSM_VE_CORTEX-A9_EFI.fd ${builddir}/uefi_rtsm_ve-ca9x4.bin -build -a ARM -b ${TARGET} -t ARMLINUXGCC -p ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.dsc -count_errors $? -cp -a ${EDK_WORKSPACE}/Build/ArmVExpress-RTSM-A15_MPCore/${TARGET}_ARMLINUXGCC/FV/RTSM_VE_CORTEX-A15_MPCORE_EFI.fd ${builddir}/uefi_rtsm_ve-ca15.bin -CROSS_COMPILE=aarch64-linux-gnu- build -a AARCH64 -b ${TARGET} -t ARMLINUXGCC -p ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc -count_errors $? -cp -a ${EDK_WORKSPACE}/Build/ArmVExpress-FVP-AArch64/${TARGET}_ARMLINUXGCC/FV/FVP_AARCH64_EFI.fd ${builddir}/uefi_fvp-base.bin -CROSS_COMPILE=aarch64-linux-gnu- build -a AARCH64 -b ${TARGET} -t ARMLINUXGCC -p ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.dsc -count_errors $? -cp -a ${EDK_WORKSPACE}/Build/ArmVExpress-RTSM-AEMv8Ax4/${TARGET}_ARMLINUXGCC/FV/RTSM_VE_AEMV8_EFI.fd ${builddir}/uefi_rtsm_ve-aemv8.bin -pushd ${EDK_WORKSPACE}/ArmPlatformPkg/ArmVExpressPkg/Scripts/uefi-aarch64-bootstrap/ -CROSS_COMPILE=aarch64-linux-gnu- make uefi-bootstrap-el3-foundation.axf -cp -a uefi-bootstrap-el3-foundation.axf ${builddir}/uefi-bootstrap-el3-foundation.axf -popd -CROSS_COMPILE=aarch64-linux-gnu- build -a AARCH64 -b ${TARGET} -t ARMLINUXGCC -p ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4-foundation.dsc -count_errors $? -cp -a ${EDK_WORKSPACE}/Build/ArmVExpress-RTSM-AEMv8Ax4-foundation/${TARGET}_ARMLINUXGCC/FV/RTSM_VE_FOUNDATIONV8_EFI.fd ${builddir}/uefi_foundation.bin -build -a ARM -b ${TARGET} -t ARMLINUXGCC -p SamsungPlatformPkgOrigen/OrigenBoardPkg/OrigenBoardPkg-Exynos.dsc -count_errors $? -cp -a ${EDK_WORKSPACE}/Build/OrigenBoard-Exynos/${TARGET}_ARMLINUXGCC/FV/ORIGENBOARD_EFI.fd ${builddir}/uefi_origen.bin -build -a ARM -b ${TARGET} -t ARMLINUXGCC -p SamsungPlatformPkg/ArndaleBoardPkg/arndale-Exynos5250.dsc -D EXYNOS5250_EVT1 -D DDR3 -count_errors $? -cp -a ${EDK_WORKSPACE}/Build/Arndale-Exynos/${TARGET}_ARMLINUXGCC/FV/ARNDALE_EFI.fd ${builddir}/uefi_arndale.bin - -cp -a ${EDK_WORKSPACE}/SamsungPlatformPkg/Apps/Tools/mkbl2/5250/fwbl1_5250.bin ${builddir}/ - -mkbl2=`find ${EDK_WORKSPACE} -type d -name mkbl2` -make -C ${mkbl2} -${mkbl2}/mkbl2 ${builddir}/uefi_arndale.bin +cd ${REPO_WORKSPACE} +make count_errors $? -mv fwbl2.bin ${builddir}/ - -cd ${EDK_WORKSPACE}/PandaBoardPkg -export TARGET_TOOLS=ARMLINUXGCC -./build.sh -b ${TARGET} -count_errors $? -cd ${EDK_WORKSPACE} -cp -a ${EDK_WORKSPACE}/Build/PandaBoard/${TARGET}_ARMLINUXGCC/FV/MLO ${builddir}/uefi_panda.bin - -if [ "${SCT}" -ne 0 ]; then - git clone --branch linaro-internal-topic-sct --depth 1 ssh://linaro-private.git.linaro.org/srv/linaro-private.git.linaro.org/uefi/sct.git ${EDK_WORKSPACE}/SctPkg - - find ${EDK_WORKSPACE}/SctPkg -type f | xargs sed -i 's/WORKSPACE/EDK_WORKSPACE/g' - - sed -i 's/-Werror//g' ${basetools}/Conf/tools_def.template - sed -i 's/-Werror//g' ${EDK_WORKSPACE}/Conf/tools_def.txt - mkdir -p ${basetools}/Bin/Linux-x86_64 -# rm -f \ -# ${EDK_WORKSPACE}/Conf/BuildEnv.sh \ -# ${EDK_WORKSPACE}/Conf/build_rule.txt \ -# ${EDK_WORKSPACE}/Conf/target.txt \ -# ${EDK_WORKSPACE}/Conf/tools_def.txt - cd ${EDK_WORKSPACE} - ./SctPkg/BuildSct.sh ARM ARMLINUXGCC - cp -a ${EDK_WORKSPACE}/Build/UefiSct/DEBUG_ARMLINUXGCC/SctPackageARM ${builddir}/ -fi +cp -a ${REPO_WORKSPACE}/bl*.bin ${builddir} # If nothing build, return an error if [ $built_count -eq 0 ]; then |