diff options
author | James Kung <kong1191@gmail.com> | 2015-01-07 15:20:47 +0800 |
---|---|---|
committer | James Kung <kong1191@gmail.com> | 2015-01-07 17:49:44 +0800 |
commit | 411dd2bd213ebc41e3a442fedaad2649fe49f359 (patch) | |
tree | c6bf3f23ad8d2533c6fcc33597c313fadee69c6f | |
parent | 85fa753b6a82033abdfa2f1efbde2c8449697a50 (diff) |
finish setup_fvp_optee.sh implementation
-rwxr-xr-x | script/setup_fvp_optee.sh | 166 |
1 files changed, 96 insertions, 70 deletions
diff --git a/script/setup_fvp_optee.sh b/script/setup_fvp_optee.sh index 386441f..7016644 100755 --- a/script/setup_fvp_optee.sh +++ b/script/setup_fvp_optee.sh @@ -2,19 +2,19 @@ ################################################################################ # EDIT so these match your credentials # ################################################################################ -DEV_PATH=$HOME/devel/fvp_optee -SRC_FVP=1 +DEV_PATH=$HOME/devel/fvp_optee_benchmark +SRC_FVP= -# You only need to set these variables if you have access to the TEETEST -# (requires a Linaro account and access to the git called teetest.git) -LINARO_USERNAME=james.kung # Should _NOT_ contain @linaro.org. -HAVE_ACCESS_TO_TEETEST= +# You only need to set these variables if you have access to the OPTEE_TEST +# (requires a Linaro account and access to the git called optee_test.git) +LINARO_USERNAME=firstname.lastname # Should _NOT_ contain @linaro.org. +HAVE_ACCESS_TO_OPTEE_TEST= ################################################################################ # Don't touch anything below this comment # ################################################################################ mkdir -p $DEV_PATH -DST_FVP=$DEV_PATH/Foundation_v8pkg +DST_FVP=$DEV_PATH/Foundation_Platformpkg if [ ! -n "$SRC_FVP" ]; then echo "FVP must be downloaded first, please go to: " echo " http://www.arm.com/products/tools/models/fast-models/foundation-model.php" @@ -25,35 +25,38 @@ if [ ! -n "$SRC_FVP" ]; then exit fi -#Until something official ARM-TF supports loading a partitioned OP-TEE -#SRC_ATF=https://github.com/ARM-software/arm-trusted-firmware.git -SRC_ATF=https://github.com/jenswi-linaro/arm-trusted-firmware.git -DST_ATF=$DEV_PATH/arm-trusted-firmware -STABLE_ATF_COMMIT=db4b9efe59b4f76e9680836a443158fde0f12e40 +# Until something official ARM-TF supports loading a partitioned OP-TEE +# SRC_ARM_TF=https://github.com/ARM-software/arm-trusted-firmware.git +SRC_ARM_TF=https://github.com/jenswi-linaro/arm-trusted-firmware.git +DST_ARM_TF=$DEV_PATH/arm-trusted-firmware +STABLE_ARM_TF_COMMIT=db4b9efe59b4f76e9680836a443158fde0f12e40 SRC_KERNEL=git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git DST_KERNEL=$DEV_PATH/linux STABLE_KERNEL_COMMIT=v3.18-rc1 -SRC_OPTEE_OS=https://github.com/OP-TEE/optee_os.git +SRC_OPTEE_OS=https://github.com/kong1191/optee_os.git DST_OPTEE_OS=$DEV_PATH/optee_os SRC_OPTEE_CLIENT=https://github.com/OP-TEE/optee_client.git DST_OPTEE_CLIENT=$DEV_PATH/optee_client STABLE_CLIENT_COMMIT=2893f86b0925bc6be358a6913a07773b2b909ee3 -SRC_OPTEE_LK=https://github.com/OP-TEE/optee_linuxdriver.git +SRC_OPTEE_LK=https://github.com/kong1191/optee_linuxdriver.git DST_OPTEE_LK=$DEV_PATH/optee_linuxdriver -STABLE_LK_COMMIT=eb4ea6b1094ce3452c376c12a529178d202d229b +STABLE_LK_COMMIT=a6026e5c41abe32fc973d8fa5e0fe281bf01a8f3 -SRC_TEETEST=ssh://$LINARO_USERNAME@linaro-private.git.linaro.org/srv/linaro-private.git.linaro.org/swg/teetest.git -DST_TEETEST=$DEV_PATH/teetest -STABLE_TEETEST_COMMIT=e7cda93bf9af4b93b1629630b3aa6e3e0df57314 +SRC_OPTEE_TEST=ssh://$LINARO_USERNAME@linaro-private.git.linaro.org/srv/linaro-private.git.linaro.org/swg/optee_test.git +DST_OPTEE_TEST=$DEV_PATH/optee_test +STABLE_OPTEE_TEST_COMMIT=774cc3c10954eba316d56f48112652eff05f33a0 SRC_GEN_ROOTFS=https://github.com/jbech-linaro/gen_rootfs.git DST_GEN_ROOTFS=$DEV_PATH/gen_rootfs STABLE_GEN_ROOTFS_COMMIT=e4633eb4e5d170021f45bbdfca9c65e3b41c866b +SRC_OPTEE_BENCHMARK=https://github.com/kong1191/optee_benchmark.git +DST_OPTEE_BENCHMARK=$DEV_PATH/optee_benchmark + SRC_EDK2=https://github.com/tianocore/edk2.git DST_EDK2=$DEV_PATH/edk2 STABLE_EDK2_COMMIT=8c83d0c0b9bd102cd905c83b2644a543e9711815 @@ -77,11 +80,11 @@ DST_AARCH32_GCC=$DEV_PATH/toolchains/$AARCH32_GCC # Cloning all needed repositories # ################################################################################ cd $DEV_PATH -if [ ! -d "$DST_ATF" ]; then - git clone $SRC_ATF && cd $DST_ATF && git reset --hard $STABLE_ATF_COMMIT +if [ ! -d "$DST_ARM_TF" ]; then + git clone $SRC_ARM_TF && cd $DST_ARM_TF && git reset --hard $STABLE_ARM_TF_COMMIT else - echo " `basename $DST_ATF` already exist, not cloning" -fi + echo " `basename $DST_ARM_TF` already exist, not cloning" +fi cd $DEV_PATH if [ ! -d "$DST_KERNEL" ]; then @@ -112,10 +115,16 @@ else fi cd $DEV_PATH -if [ ! -d "$DST_TEETEST" ] && [ -n "$HAVE_ACCESS_TO_TEETEST" ]; then - git clone $SRC_TEETEST && cd $DST_TEETEST && git reset --hard $STABLE_TEETEST_COMMIT +if [ ! -d "$DST_OPTEE_TEST" ] && [ -n "$HAVE_ACCESS_TO_OPTEE_TEST" ]; then + git clone $SRC_OPTEE_TEST && cd $DST_OPTEE_TEST && git reset --hard $STABLE_OPTEE_TEST_COMMIT else - echo " `basename $DST_TEETEST` already exist (or no access), not cloning" + echo " `basename $DST_OPTEE_TEST` already exist (or no access), not cloning" +fi + +if [ ! -d "$DST_OPTEE_BENCHMARK" ]; then + git clone $SRC_OPTEE_BENCHMARK $DST_OPTEE_BENCHMARK +else + echo " `basename $DST_OPTEE_BENCHMARK` already exist, not cloning" fi cd $DEV_PATH @@ -213,9 +222,9 @@ dir /lib/modules/$KERNEL_VERSION 755 0 0 file /lib/modules/$KERNEL_VERSION/optee.ko $DST_OPTEE_LK/optee.ko 755 0 0 # OP-TEE Client -file /bin/tee-supplicant $DST_OPTEE_CLIENT/out-client-aarch64/export/bin/tee-supplicant 755 0 0 +file /bin/tee-supplicant $DST_OPTEE_CLIENT/out/export/bin/tee-supplicant 755 0 0 dir /lib/aarch64-linux-gnu 755 0 0 -file /lib/aarch64-linux-gnu/libteec.so.1.0 $DST_OPTEE_CLIENT/out-client-aarch64/export/lib/libteec.so.1.0 755 0 0 +file /lib/aarch64-linux-gnu/libteec.so.1.0 $DST_OPTEE_CLIENT/out/export/lib/libteec.so.1.0 755 0 0 slink /lib/aarch64-linux-gnu/libteec.so.1 libteec.so.1.0 755 0 0 slink /lib/aarch64-linux-gnu/libteec.so libteec.so.1 755 0 0 @@ -227,18 +236,17 @@ dir /data/tee 755 0 0 dir /lib/teetz 755 0 0 EOF -if [ -n "$HAVE_ACCESS_TO_TEETEST" ]; then +if [ -n "$HAVE_ACCESS_TO_OPTEE_TEST" ]; then cat >> $DST_GEN_ROOTFS/filelist-tee.txt << EOF -file /lib/teetz/c3f6e2c0-3548-11e1-b86c0800200c9a66.ta $DEV_PATH/out/utest/user_ta/create_fail_test/armv7/c3f6e2c0-3548-11e1-b86c0800200c9a66.ta 444 0 0 -file /lib/teetz/cb3e5ba0-adf1-11e0-998b0002a5d5c51b.ta $DEV_PATH/out/utest/user_ta/crypt/armv7/cb3e5ba0-adf1-11e0-998b0002a5d5c51b.ta 444 0 0 -file /lib/teetz/7897ba75-4624-4897-80dc91cce44c9c56.ta $DEV_PATH/out/utest/user_ta/hello_world_ta/armv7/7897ba75-4624-4897-80dc91cce44c9c56.ta 444 0 0 -file /lib/teetz/50b8ff20-e55c-11e3-87b70002a5d5c51b.ta $DEV_PATH/out/utest/user_ta/object/armv7/50b8ff20-e55c-11e3-87b70002a5d5c51b.ta 444 0 0 -file /lib/teetz/5b9e0e40-2636-11e1-ad9e0002a5d5c51b.ta $DEV_PATH/out/utest/user_ta/os_test/armv7/5b9e0e40-2636-11e1-ad9e0002a5d5c51b.ta 444 0 0 -file /lib/teetz/d17f73a0-36ef-11e1-984a0002a5d5c51b.ta $DEV_PATH/out/utest/user_ta/rpc_test/armv7/d17f73a0-36ef-11e1-984a0002a5d5c51b.ta 444 0 0 -file /lib/teetz/e6a33ed4-562b-463a-bb7eff5e15a493c8.ta $DEV_PATH/out/utest/user_ta/sims/armv7/e6a33ed4-562b-463a-bb7eff5e15a493c8.ta 444 0 0 +# Trusted Applications +file /lib/teetz/d17f73a0-36ef-11e1-984a0002a5d5c51b.ta $DEV_PATH/out/utest/user_ta/armv7/rpc_test/d17f73a0-36ef-11e1-984a0002a5d5c51b.ta 444 0 0 +file /lib/teetz/cb3e5ba0-adf1-11e0-998b0002a5d5c51b.ta $DEV_PATH/out/utest/user_ta/armv7/crypt/cb3e5ba0-adf1-11e0-998b0002a5d5c51b.ta 444 0 0 +file /lib/teetz/b689f2a7-8adf-477a-9f9932e90c0ad0a2.ta $DEV_PATH/out/utest/user_ta/armv7/storage/b689f2a7-8adf-477a-9f9932e90c0ad0a2.ta 444 0 0 +file /lib/teetz/5b9e0e40-2636-11e1-ad9e0002a5d5c51b.ta $DEV_PATH/out/utest/user_ta/armv7/os_test/5b9e0e40-2636-11e1-ad9e0002a5d5c51b.ta 444 0 0 +file /lib/teetz/c3f6e2c0-3548-11e1-b86c0800200c9a66.ta $DEV_PATH/out/utest/user_ta/armv7/create_fail_test/c3f6e2c0-3548-11e1-b86c0800200c9a66.ta 444 0 0 +file /lib/teetz/e6a33ed4-562b-463a-bb7eff5e15a493c8.ta $DEV_PATH/out/utest/user_ta/armv7/sims/e6a33ed4-562b-463a-bb7eff5e15a493c8.ta 444 0 0 # OP-TEE Tests -file /bin/tee_ut_helloworld3 $DEV_PATH/out/utest/host/tee_ut_helloworld3/bin/tee_ut_helloworld3 755 0 0 file /bin/xtest $DEV_PATH/out/utest/host/xtest/bin/xtest 755 0 0 EOF fi @@ -253,7 +261,7 @@ export PATH=$DST_AARCH32_GCC/bin:\$PATH export CROSS_COMPILE=arm-linux-gnueabihf- export PLATFORM=vexpress export PLATFORM_FLAVOR=fvp -export O=./out-os-fvp +export O=$DST_OPTEE_OS/out-os-fvp export CFG_TEE_CORE_LOG_LEVEL=4 #export DEBUG=1 @@ -272,11 +280,6 @@ $DEV_PATH/build_optee_os.sh cd $DST_EDK2 git remote add -f --tags arm-software https://github.com/ARM-software/edk2.git git checkout --detach v1.2 -. edksetup.sh - -# Build the EDK host tools -make -C BaseTools clean -make -C BaseTools cd $DEV_PATH cat > $DEV_PATH/build_uefi.sh << EOF @@ -285,6 +288,11 @@ export GCC49_AARCH64_PREFIX=$DST_AARCH64_NONE_GCC/bin/aarch64-none-elf- cd $DST_EDK2 . edksetup.sh + +# Build the EDK host tools +make -C BaseTools clean +make -C BaseTools + make -f ArmPlatformPkg/Scripts/Makefile EDK2_ARCH=AARCH64 \\ EDK2_DSC=ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc \\ EDK2_TOOLCHAIN=GCC49 EDK2_BUILD=RELEASE \\ @@ -295,20 +303,20 @@ chmod 711 $DEV_PATH/build_uefi.sh $DEV_PATH/build_uefi.sh ################################################################################ -# Generate build_atf_opteed.sh for building ATF and opteed # +# Generate build_arm_tf_opteed.sh for building ARM TF and opteed # ################################################################################ cd $DEV_PATH -cat > $DEV_PATH/build_atf_opteed.sh << EOF +cat > $DEV_PATH/build_arm_tf_opteed.sh << EOF #!/bin/bash export PATH=$DST_AARCH64_NONE_GCC/bin:\$PATH export CROSS_COMPILE=$DST_AARCH64_NONE_GCC/bin/aarch64-none-elf- export CFLAGS='-O0 -gdwarf-2' export DEBUG=1 -export BL32=$DST_OPTEE_OS/out-os-fvp/core/tee.bin +export BL32=$DST_OPTEE_OS/out/arm32-plat-vexpress/core/tee.bin export BL33=$DST_EDK2/Build/ArmVExpress-FVP-AArch64/RELEASE_GCC49/FV/FVP_AARCH64_EFI.fd -cd $DST_ATF +cd $DST_ARM_TF make -j\`getconf _NPROCESSORS_ONLN\` \\ DEBUG=$DEBUG \\ FVP_TSP_RAM_LOCATION=tdram \\ @@ -318,8 +326,8 @@ make -j\`getconf _NPROCESSORS_ONLN\` \\ \$@ EOF -chmod 711 $DEV_PATH/build_atf_opteed.sh -$DEV_PATH/build_atf_opteed.sh all fip +chmod 711 $DEV_PATH/build_arm_tf_opteed.sh +$DEV_PATH/build_arm_tf_opteed.sh all fip ################################################################################ # Generate build_optee_client.sh for building optee_client # @@ -331,13 +339,13 @@ cat > $DEV_PATH/build_optee_client.sh << EOF export PATH=$DST_AARCH64_GCC/bin:\$PATH cd $DST_OPTEE_CLIENT -make -j\`getconf _NPROCESSORS_ONLN\` O=./out-client-aarch64 CROSS_COMPILE=aarch64-linux-gnu- \$@ +make -j\`getconf _NPROCESSORS_ONLN\` O=out-client-aarch64 CROSS_COMPILE=aarch64-linux-gnu- \$@ EOF chmod 711 $DEV_PATH/build_optee_client.sh $DEV_PATH/build_optee_client.sh -if [ -n "$HAVE_ACCESS_TO_TEETEST" ]; then +if [ -n "$HAVE_ACCESS_TO_OPTEE_TEST" ]; then ################################################################################ # Generate build_optee_tests.sh # ################################################################################ @@ -345,19 +353,14 @@ cd $DEV_PATH cat > $DEV_PATH/build_optee_tests.sh << EOF #!/bin/bash -export PATH=$DST_AARCH64_GCC/bin:\$PATH -export PATH=$DST_AARCH32_GCC/bin:\$PATH +cd $DST_OPTEE_TEST +export CFG_DEV_PATH=$DEV_PATH +export CFG_ROOTFS_DIR=\$CFG_DEV_PATH/out -TA_DEV_KIT_DIR=$DST_OPTEE_OS/out-os-fvp/export-user_ta -PUBLIC_DIR=$DST_OPTEE_CLIENT/out-client-aarch64/export +export PATH=\$CFG_DEV_PATH/toolchains/aarch64/bin:\$PATH +export PATH=\$CFG_DEV_PATH/toolchains/aarch32/bin:\$PATH -cd $DST_TEETEST -make O=./out-client-aarch64 \\ - PUBLIC_DIR=\$PUBLIC_DIR \\ - TA_DEV_KIT_DIR=\$TA_DEV_KIT_DIR \\ - HOST_CROSS_COMPILE=aarch64-linux-gnu- \\ - TA_CROSS_COMPILE=arm-linux-gnueabihf- \\ - \$@ +make $@ EOF chmod 711 $DEV_PATH/build_optee_tests.sh @@ -396,6 +399,29 @@ chmod 711 $DEV_PATH/update_rootfs.sh $DEV_PATH/update_rootfs.sh ################################################################################ +# Generate optee_benchmark/build_app.sh # +################################################################################ +cd $DST_OPTEE_BENCHMARK +cat > $DST_OPTEE_BENCHMARK/build_app.sh << EOF +#!/bin/bash +DEVEL_PATH=$DEV_PATH +export PATH=\$DEVEL_PATH/toolchains/aarch64/bin:\$PATH +export PATH=\$DEVEL_PATH/toolchains/aarch32/bin:\$PATH + +export TA_DEV_KIT_DIR=\$DEVEL_PATH/optee_os/out-os-fvp/export-user_ta +export TEEC_EXPORT=\$DEVEL_PATH/optee_client/out-client-aarch64/export + +cd \$DEVEL_PATH/optee_benchmark +make O=./out-client-aarch64 \\ + HOST_CROSS_COMPILE=aarch64-linux-gnu- \\ + TA_CROSS_COMPILE=arm-linux-gnueabihf- \\ + \$@ + +EOF + +chmod 711 $DST_OPTEE_BENCHMARK/build_app.sh + +################################################################################ # Generate build_device_tree_files.sh # ################################################################################ cd $DEV_PATH @@ -420,11 +446,11 @@ ln -sf $DST_OPTEE_LK/fdts/fvp-foundation-gicv2-psci.dtb fdt.dtb cd $DEV_PATH cat > $DEV_PATH/run_foundation.sh << EOF #!/bin/bash -BL1=$DST_ATF/build/fvp/debug/bl1.bin -FIP=$DST_ATF/build/fvp/debug/fip.bin +BL1=$DST_ARM_TF/build/fvp/debug/bl1.bin +FIP=$DST_ARM_TF/build/fvp/debug/fip.bin cd $DST_FVP -$DST_FVP/models/Linux64_GCC-4.1/Foundation_v8 \\ +$DST_FVP/models/Linux64_GCC-4.1/Foundation_Platform \\ --cores=4 \\ --no-secure-memory \\ --visualization \\ @@ -443,7 +469,7 @@ cd $DEV_PATH cat > $DEV_PATH/build_secure.sh << EOF #!/bin/bash cd $DEV_PATH -./build_optee_os.sh && ./build_atf_opteed.sh all fip +./build_optee_os.sh && ./build_arm_tf_opteed.sh all fip EOF @@ -470,8 +496,8 @@ EOF chmod 711 $DEV_PATH/build_normal.sh echo "OP-TEE and FVP setup completed." -if [ ! -n "$HAVE_ACCESS_TO_TEETEST" ]; then - echo "LINARO_USERNAME and HAVE_ACCESS_TO_TEETEST wasn't updated, therefore no tests" +if [ ! -n "$HAVE_ACCESS_TO_OPTEE_TEST" ]; then + echo "LINARO_USERNAME and HAVE_ACCESS_TO_OPTEE_TEST wasn't updated, therefore no tests" echo "has been included." fi @@ -488,13 +514,13 @@ echo "This will clean all gits using \$CLEAN_CMD && \$CLEAN_CMD2," echo "if this was not your intention, then press CTRL+C immediately!" read -t 10 -cd $DST_ATF && \$CLEAN_CMD && \$CLEAN_CMD2 && echo -e "$DST_ATF clean!\n" +cd $DST_ARM_TF && \$CLEAN_CMD && \$CLEAN_CMD2 && echo -e "$DST_ARM_TF clean!\n" cd $DST_KERNEL && \$CLEAN_CMD && \$CLEAN_CMD2 && echo -e"$DST_KERNEL clean!\n" cd $DST_OPTEE_OS && \$CLEAN_CMD && \$CLEAN_CMD2 && echo -e "$DST_OPTEE_OS clean!\n" cd $DST_OPTEE_CLIENT && \$CLEAN_CMD && \$CLEAN_CMD2 && echo -e "$DST_OPTEE_CLIENT clean!\n" cd $DST_OPTEE_LK && \$CLEAN_CMD && \$CLEAN_CMD2 && echo -e "$DST_OPTEE_LK clean!\n" -if [ -d "$DST_TEETEST" ]; then - cd $DST_TEETEST && \$CLEAN_CMD && \$CLEAN_CMD2 && echo -e "$DST_TEETEST clean!\n" +if [ -d "$DST_OPTEE_TEST" ]; then + cd $DST_OPTEE_TEST && \$CLEAN_CMD && \$CLEAN_CMD2 && echo -e "$DST_OPTEE_TEST clean!\n" rm -rf $DEV_PATH/out fi cd $DST_GEN_ROOTFS && \$CLEAN_CMD && \$CLEAN_CMD2 && echo -e "$DST_GEN_ROOTFS clean!\n" |