aboutsummaryrefslogtreecommitdiff
path: root/rpb-uefi
diff options
context:
space:
mode:
authorFathi Boudra <fathi.boudra@linaro.org>2017-05-23 11:18:07 +0300
committerFathi Boudra <fathi.boudra@linaro.org>2017-05-23 11:18:07 +0300
commit6c48807c0d5068b4b698d65c3c1bdc99e8c544b2 (patch)
tree3d6266c16591dafd731cfe9bae9dcf0514580e7e /rpb-uefi
parent800b3ad36087f35f9ebe1e663c877520bf00f6d2 (diff)
rpb-uefi: move the shell step to include-raw
Change-Id: I6a8ba8d15bc1cb8ae5006654f7a98e998fb7d50d Signed-off-by: Fathi Boudra <fathi.boudra@linaro.org>
Diffstat (limited to 'rpb-uefi')
-rwxr-xr-xrpb-uefi/stable/builders.sh178
-rwxr-xr-xrpb-uefi/staging/builders.sh179
2 files changed, 357 insertions, 0 deletions
diff --git a/rpb-uefi/stable/builders.sh b/rpb-uefi/stable/builders.sh
new file mode 100755
index 0000000000..41dee2ecba
--- /dev/null
+++ b/rpb-uefi/stable/builders.sh
@@ -0,0 +1,178 @@
+#!/bin/bash
+
+export JOB_NAME=96boards-reference-uefi
+echo "JOB_URL: ${JOB_URL}"
+echo "BUILD_URL: ${BUILD_URL}"
+echo "WORKSPACE: ${WORKSPACE}"
+echo "BUILD_NUMBER: ${BUILD_NUMBER}"
+
+# Create lower case debug/release string for use in paths
+BUILD_TYPE="${MX_TYPE,,}"
+
+sudo apt-get update
+sudo apt-get install -y libssl-dev nasm python-requests python-crypto python-wand zip
+
+set -ex
+
+trap cleanup_exit INT TERM EXIT
+
+cleanup_exit()
+{
+ cd ${WORKSPACE}
+ rm -rf arm-trusted-firmware
+ rm -rf uefi-tools
+ rm -rf l-loader
+ rm -rf OpenPlatformPkg
+ rm -rf optee_os
+ rm -rf edk2/Build
+}
+
+# sbin isn't in the PATH by default and prevent to find sgdisk
+export PATH="/usr/sbin:/sbin:$PATH"
+
+# Use pre-installed linaro toolchain (GCC 5.3)
+export PATH="${HOME}/srv/toolchain/arm-tc-16.02/bin:${HOME}/srv/toolchain/arm64-tc-16.02/bin:$PATH"
+
+# Common git repositories to fetch
+UEFI_TOOLS_GIT_URL=https://git.linaro.org/uefi/uefi-tools.git
+UEFI_TOOLS_GIT_BRANCH=master
+EDK2_GIT_URL=https://github.com/tianocore/edk2.git
+EDK2_GIT_VERSION=$EDK2_VERSION
+ATF_GIT_URL=https://github.com/ARM-software/arm-trusted-firmware.git
+ATF_GIT_VERSION=$ATF_VERSION
+## Temporarily switch to a dev tree/branch
+OPEN_PLATFORM_PKG_GIT_URL=https://git.linaro.org/uefi/OpenPlatformPkg.git
+OPEN_PLATFORM_PKG_GIT_BRANCH=master
+OPTEE_OS_GIT_URL=https://github.com/OP-TEE/optee_os.git
+OPTEE_GIT_VERSION=$OPTEE_VERSION
+
+# So we can easily identify the build number via build path
+mkdir ${BUILD_NUMBER}; cd ${BUILD_NUMBER}
+
+# Per board repositories overrides
+if [ "${MX_PLATFORM}" == "hikey" ]; then
+ EDK2_GIT_URL=https://github.com/96boards-hikey/edk2.git
+ EDK2_GIT_VERSION="origin/hikey-aosp"
+ ATF_GIT_URL=https://github.com/96boards-hikey/arm-trusted-firmware.git
+ ATF_GIT_VERSION="origin/hikey"
+ OPEN_PLATFORM_PKG_GIT_URL=https://github.com/96boards-hikey/OpenPlatformPkg.git
+ OPEN_PLATFORM_PKG_GIT_BRANCH=hikey-aosp
+fi
+
+# Force cap GCC build profile to GCC49, still preferred by upstream
+TOOLCHAIN=GCC49
+export AARCH64_TOOLCHAIN=GCC49
+
+# Clone the repos
+git clone -b $UEFI_TOOLS_GIT_BRANCH $UEFI_TOOLS_GIT_URL uefi-tools
+cd uefi-tools; UEFI_TOOLS_GIT_VERSION=`git log --format="%H" -1`; cd ..
+
+git clone $EDK2_GIT_URL edk2
+cd edk2; git checkout -b stable-baseline $EDK2_GIT_VERSION
+EDK2_GIT_VERSION=$(git rev-parse $EDK2_GIT_VERSION)
+cd ..
+
+git clone -b $OPEN_PLATFORM_PKG_GIT_BRANCH $OPEN_PLATFORM_PKG_GIT_URL OpenPlatformPkg
+cd edk2; rm -rf OpenPlatformPkg; ln -s ../OpenPlatformPkg; cd ..
+cd OpenPlatformPkg; OPEN_PLATFORM_PKG_GIT_VERSION=`git log --format="%H" -1`; cd ..
+
+git clone $ATF_GIT_URL arm-trusted-firmware
+cd arm-trusted-firmware; git checkout -b stable-baseline $ATF_GIT_VERSION;
+ATF_GIT_VERSION=$(git rev-parse $ATF_GIT_VERSION)
+cd ..
+
+git clone $OPTEE_OS_GIT_URL optee_os
+cd optee_os; git checkout -b stable-baseline $OPTEE_GIT_VERSION;
+OPTEE_OS_GIT_VERSION=`git log --format="%H" -1`; cd ..
+
+# Build setup
+export EDK2_DIR=${WORKSPACE}/${BUILD_NUMBER}/edk2
+export OPP_DIR=${WORKSPACE}/${BUILD_NUMBER}/OpenPlatformPkg
+export ATF_DIR=${WORKSPACE}/${BUILD_NUMBER}/arm-trusted-firmware
+export OPTEE_OS_DIR=${WORKSPACE}/${BUILD_NUMBER}/optee_os
+export UEFI_TOOLS_DIR=${WORKSPACE}/${BUILD_NUMBER}/uefi-tools
+export JENKINS_WORKSPACE=${WORKSPACE}
+
+# WORKSPACE is used by uefi-build.sh
+unset WORKSPACE
+
+# Build UEFI for the desired platform, with the specified build type
+cd ${EDK2_DIR}
+bash -x ${UEFI_TOOLS_DIR}/uefi-build.sh -T ${TOOLCHAIN} -b ${MX_TYPE} -a ${ATF_DIR} -s ${OPTEE_OS_DIR} ${MX_PLATFORM}
+
+unset WORKSPACE
+export WORKSPACE=${JENKINS_WORKSPACE}
+
+# Find out the artifacts and image dir so we can publish the correct output files
+IMAGES=`$UEFI_TOOLS_DIR/parse-platforms.py -c $UEFI_TOOLS_DIR/platforms.config -p ${MX_PLATFORM} images`
+IMAGE_DIR=`$UEFI_TOOLS_DIR/parse-platforms.py -c $UEFI_TOOLS_DIR/platforms.config -p ${MX_PLATFORM} -o UEFI_IMAGE_DIR get`
+BUILD_ATF=`$UEFI_TOOLS_DIR/parse-platforms.py -c $UEFI_TOOLS_DIR/platforms.config -p ${MX_PLATFORM} -o BUILD_ATF get`
+BUILD_TOS=`$UEFI_TOOLS_DIR/parse-platforms.py -c $UEFI_TOOLS_DIR/platforms.config -p ${MX_PLATFORM} -o BUILD_TOS get`
+
+cd ${WORKSPACE}
+mkdir -p out/${BUILD_TYPE}
+for image in ${IMAGES}; do
+ cp -a ${EDK2_DIR}/Build/${IMAGE_DIR}/${MX_TYPE}_*/FV/${image} out/${BUILD_TYPE}/
+done
+
+cat > out/${BUILD_TYPE}/BUILD-INFO.txt << EOF
+Format-Version: 0.5
+
+Files-Pattern: *
+License-Type: open
+EOF
+
+if [ "${MX_PLATFORM}" == "hikey" ]; then
+ # Additional components for hikey, such as fastboot and l-loader
+ cp -a ${EDK2_DIR}/Build/${IMAGE_DIR}/${MX_TYPE}_*/AARCH64/AndroidFastbootApp.efi out/${BUILD_TYPE}
+ cd ${WORKSPACE}/${BUILD_NUMBER}
+ git clone --depth 1 https://github.com/96boards-hikey/l-loader.git
+ cd l-loader
+ ln -s ${WORKSPACE}/out/${BUILD_TYPE}/bl1.bin
+ make
+ cp -a l-loader.bin ptable*.img ${WORKSPACE}/out/${BUILD_TYPE}
+ wget https://raw.githubusercontent.com/96boards/burn-boot/master/hisi-idt.py -O ${WORKSPACE}/out/${BUILD_TYPE}/hisi-idt.py
+ # Ship nvme.img with UEFI binaries for convenience
+ dd if=/dev/zero of=${WORKSPACE}/out/${BUILD_TYPE}/nvme.img bs=128 count=1024
+
+ # Ship files needed to build OP-TEE test suite
+ tar -C ${OPTEE_OS_DIR}/out -acvf \
+ ${WORKSPACE}/out/${BUILD_TYPE}/optee-arm-plat-hikey.tar.xz \
+ arm-plat-hikey/export-ta_arm64 arm-plat-hikey/export-ta_arm32
+fi
+cd ${WORKSPACE}
+
+# Create MD5SUMS file
+(cd out/${BUILD_TYPE} && md5sum * > MD5SUMS.txt)
+
+# Build information
+cat > out/${BUILD_TYPE}/HEADER.textile << EOF
+
+h4. Reference Platform - UEFI
+
+Tianocore EDK2 UEFI build consumed by the Reference Platform Builds
+
+Build Description:
+* Build URL: "$BUILD_URL":$BUILD_URL
+* UEFI Tools: "$UEFI_TOOLS_GIT_URL":$UEFI_TOOLS_GIT_URL
+* UEFI Tools head: $UEFI_TOOLS_GIT_VERSION
+* EDK2: "$EDK2_GIT_URL":$EDK2_GIT_URL
+* EDK2 head: $EDK2_GIT_VERSION
+* OpenPlatformPkg: "$OPEN_PLATFORM_PKG_GIT_URL":$OPEN_PLATFORM_PKG_GIT_URL
+* OpenPlatformPkg branch: $OPEN_PLATFORM_PKG_GIT_BRANCH
+* OpenPlatformPkg head: $OPEN_PLATFORM_PKG_GIT_VERSION
+EOF
+
+if [ "$BUILD_ATF" == "yes" ]; then
+ cat >> out/${BUILD_TYPE}/HEADER.textile << EOF
+* ARM Trusted Firmware: "$ATF_GIT_URL":$ATF_GIT_URL
+* ARM Trusted Firmware head: $ATF_GIT_VERSION
+EOF
+fi
+
+if [ "$BUILD_TOS" == "yes" ]; then
+ cat >> out/${BUILD_TYPE}/HEADER.textile << EOF
+* OP-TEE OS: "$OPTEE_OS_GIT_URL":$OPTEE_OS_GIT_URL
+* OP-TEE OS head: $OPTEE_OS_GIT_VERSION
+EOF
+fi
diff --git a/rpb-uefi/staging/builders.sh b/rpb-uefi/staging/builders.sh
new file mode 100755
index 0000000000..c59f0ef918
--- /dev/null
+++ b/rpb-uefi/staging/builders.sh
@@ -0,0 +1,179 @@
+#!/bin/bash
+
+export JOB_NAME=96boards-reference-uefi
+echo "JOB_URL: ${JOB_URL}"
+echo "BUILD_URL: ${BUILD_URL}"
+echo "WORKSPACE: ${WORKSPACE}"
+echo "BUILD_NUMBER: ${BUILD_NUMBER}"
+
+# Create lower case debug/release string for use in paths
+BUILD_TYPE="${MX_TYPE,,}"
+
+sudo apt-get update
+sudo apt-get install -y libssl-dev nasm python-requests python-crypto python-wand zip
+
+set -ex
+
+trap cleanup_exit INT TERM EXIT
+
+cleanup_exit()
+{
+ cd ${WORKSPACE}
+ rm -rf arm-trusted-firmware
+ rm -rf uefi-tools
+ rm -rf l-loader
+ rm -rf OpenPlatformPkg
+ rm -rf optee_os
+ rm -rf edk2/Build
+}
+
+# sbin isn't in the PATH by default and prevent to find sgdisk
+export PATH="/usr/sbin:/sbin:$PATH"
+
+# Use pre-installed linaro toolchain (GCC 5.3)
+export PATH="${HOME}/srv/toolchain/arm-tc-16.02/bin:${HOME}/srv/toolchain/arm64-tc-16.02/bin:$PATH"
+
+# Common git repositories to fetch
+UEFI_TOOLS_GIT_URL=https://git.linaro.org/uefi/uefi-tools.git
+UEFI_TOOLS_GIT_BRANCH=master
+#EDK2_GIT_URL=https://github.com/tianocore/edk2.git
+EDK2_GIT_URL=https://git.linaro.org/uefi/linaro-edk2.git
+EDK2_GIT_VERSION=$EDK2_VERSION
+ATF_GIT_URL=https://github.com/ARM-software/arm-trusted-firmware.git
+ATF_GIT_VERSION=$ATF_VERSION
+## Temporarily switch to a dev tree/branch
+OPEN_PLATFORM_PKG_GIT_URL=https://git.linaro.org/uefi/OpenPlatformPkg.git
+OPEN_PLATFORM_PKG_GIT_BRANCH=master
+OPTEE_OS_GIT_URL=https://github.com/OP-TEE/optee_os.git
+OPTEE_GIT_VERSION=$OPTEE_VERSION
+
+# So we can easily identify the build number via build path
+mkdir ${BUILD_NUMBER}; cd ${BUILD_NUMBER}
+
+# Per board repositories overrides
+if [ "${MX_PLATFORM}" == "hikey" ]; then
+ EDK2_GIT_URL=https://github.com/96boards-hikey/edk2.git
+ EDK2_GIT_VERSION="origin/hikey-aosp"
+ ATF_GIT_URL=https://github.com/96boards-hikey/arm-trusted-firmware.git
+ ATF_GIT_VERSION="origin/hikey"
+ OPEN_PLATFORM_PKG_GIT_URL=https://github.com/96boards-hikey/OpenPlatformPkg.git
+ OPEN_PLATFORM_PKG_GIT_BRANCH=hikey-aosp
+fi
+
+# Force cap GCC build profile to GCC49, still preferred by upstream
+TOOLCHAIN=GCC49
+export AARCH64_TOOLCHAIN=GCC49
+
+# Clone the repos
+git clone -b $UEFI_TOOLS_GIT_BRANCH $UEFI_TOOLS_GIT_URL uefi-tools
+cd uefi-tools; UEFI_TOOLS_GIT_VERSION=`git log --format="%H" -1`; cd ..
+
+git clone $EDK2_GIT_URL edk2
+cd edk2; git checkout -b stable-baseline $EDK2_GIT_VERSION
+EDK2_GIT_VERSION=$(git rev-parse $EDK2_GIT_VERSION)
+cd ..
+
+git clone -b $OPEN_PLATFORM_PKG_GIT_BRANCH $OPEN_PLATFORM_PKG_GIT_URL OpenPlatformPkg
+cd edk2; rm -rf OpenPlatformPkg; ln -s ../OpenPlatformPkg; cd ..
+cd OpenPlatformPkg; OPEN_PLATFORM_PKG_GIT_VERSION=`git log --format="%H" -1`; cd ..
+
+git clone $ATF_GIT_URL arm-trusted-firmware
+cd arm-trusted-firmware; git checkout -b stable-baseline $ATF_GIT_VERSION;
+ATF_GIT_VERSION=$(git rev-parse $ATF_GIT_VERSION)
+cd ..
+
+git clone $OPTEE_OS_GIT_URL optee_os
+cd optee_os; git checkout -b stable-baseline $OPTEE_GIT_VERSION;
+OPTEE_OS_GIT_VERSION=`git log --format="%H" -1`; cd ..
+
+# Build setup
+export EDK2_DIR=${WORKSPACE}/${BUILD_NUMBER}/edk2
+export OPP_DIR=${WORKSPACE}/${BUILD_NUMBER}/OpenPlatformPkg
+export ATF_DIR=${WORKSPACE}/${BUILD_NUMBER}/arm-trusted-firmware
+export OPTEE_OS_DIR=${WORKSPACE}/${BUILD_NUMBER}/optee_os
+export UEFI_TOOLS_DIR=${WORKSPACE}/${BUILD_NUMBER}/uefi-tools
+export JENKINS_WORKSPACE=${WORKSPACE}
+
+# WORKSPACE is used by uefi-build.sh
+unset WORKSPACE
+
+# Build UEFI for the desired platform, with the specified build type
+cd ${EDK2_DIR}
+bash -x ${UEFI_TOOLS_DIR}/uefi-build.sh -T ${TOOLCHAIN} -b ${MX_TYPE} -a ${ATF_DIR} -s ${OPTEE_OS_DIR} ${MX_PLATFORM}
+
+unset WORKSPACE
+export WORKSPACE=${JENKINS_WORKSPACE}
+
+# Find out the artifacts and image dir so we can publish the correct output files
+IMAGES=`$UEFI_TOOLS_DIR/parse-platforms.py -c $UEFI_TOOLS_DIR/platforms.config -p ${MX_PLATFORM} images`
+IMAGE_DIR=`$UEFI_TOOLS_DIR/parse-platforms.py -c $UEFI_TOOLS_DIR/platforms.config -p ${MX_PLATFORM} -o UEFI_IMAGE_DIR get`
+BUILD_ATF=`$UEFI_TOOLS_DIR/parse-platforms.py -c $UEFI_TOOLS_DIR/platforms.config -p ${MX_PLATFORM} -o BUILD_ATF get`
+BUILD_TOS=`$UEFI_TOOLS_DIR/parse-platforms.py -c $UEFI_TOOLS_DIR/platforms.config -p ${MX_PLATFORM} -o BUILD_TOS get`
+
+cd ${WORKSPACE}
+mkdir -p out/${BUILD_TYPE}
+for image in ${IMAGES}; do
+ cp -a ${EDK2_DIR}/Build/${IMAGE_DIR}/${MX_TYPE}_*/FV/${image} out/${BUILD_TYPE}/
+done
+
+cat > out/${BUILD_TYPE}/BUILD-INFO.txt << EOF
+Format-Version: 0.5
+
+Files-Pattern: *
+License-Type: open
+EOF
+
+if [ "${MX_PLATFORM}" == "hikey" ]; then
+ # Additional components for hikey, such as fastboot and l-loader
+ cp -a ${EDK2_DIR}/Build/${IMAGE_DIR}/${MX_TYPE}_*/AARCH64/AndroidFastbootApp.efi out/${BUILD_TYPE}
+ cd ${WORKSPACE}/${BUILD_NUMBER}
+ git clone --depth 1 https://github.com/96boards-hikey/l-loader.git
+ cd l-loader
+ ln -s ${WORKSPACE}/out/${BUILD_TYPE}/bl1.bin
+ make
+ cp -a l-loader.bin ptable*.img ${WORKSPACE}/out/${BUILD_TYPE}
+ wget https://raw.githubusercontent.com/96boards/burn-boot/master/hisi-idt.py -O ${WORKSPACE}/out/${BUILD_TYPE}/hisi-idt.py
+ # Ship nvme.img with UEFI binaries for convenience
+ dd if=/dev/zero of=${WORKSPACE}/out/${BUILD_TYPE}/nvme.img bs=128 count=1024
+
+ # Ship files needed to build OP-TEE test suite
+ tar -C ${OPTEE_OS_DIR}/out -acvf \
+ ${WORKSPACE}/out/${BUILD_TYPE}/optee-arm-plat-hikey.tar.xz \
+ arm-plat-hikey/export-ta_arm64 arm-plat-hikey/export-ta_arm32
+fi
+cd ${WORKSPACE}
+
+# Create MD5SUMS file
+(cd out/${BUILD_TYPE} && md5sum * > MD5SUMS.txt)
+
+# Build information
+cat > out/${BUILD_TYPE}/HEADER.textile << EOF
+
+h4. Reference Platform - UEFI
+
+Tianocore EDK2 UEFI build consumed by the Reference Platform Builds
+
+Build Description:
+* Build URL: "$BUILD_URL":$BUILD_URL
+* UEFI Tools: "$UEFI_TOOLS_GIT_URL":$UEFI_TOOLS_GIT_URL
+* UEFI Tools head: $UEFI_TOOLS_GIT_VERSION
+* EDK2: "$EDK2_GIT_URL":$EDK2_GIT_URL
+* EDK2 head: $EDK2_GIT_VERSION
+* OpenPlatformPkg: "$OPEN_PLATFORM_PKG_GIT_URL":$OPEN_PLATFORM_PKG_GIT_URL
+* OpenPlatformPkg branch: $OPEN_PLATFORM_PKG_GIT_BRANCH
+* OpenPlatformPkg head: $OPEN_PLATFORM_PKG_GIT_VERSION
+EOF
+
+if [ "$BUILD_ATF" == "yes" ]; then
+ cat >> out/${BUILD_TYPE}/HEADER.textile << EOF
+* ARM Trusted Firmware: "$ATF_GIT_URL":$ATF_GIT_URL
+* ARM Trusted Firmware head: $ATF_GIT_VERSION
+EOF
+fi
+
+if [ "$BUILD_TOS" == "yes" ]; then
+ cat >> out/${BUILD_TYPE}/HEADER.textile << EOF
+* OP-TEE OS: "$OPTEE_OS_GIT_URL":$OPTEE_OS_GIT_URL
+* OP-TEE OS head: $OPTEE_OS_GIT_VERSION
+EOF
+fi