1*43f35ef5SPaul BeesleyArm Versatile Express 2*43f35ef5SPaul Beesley===================== 3*43f35ef5SPaul Beesley 4*43f35ef5SPaul BeesleyVersatile Express (VE) family development platform provides an ultra fast 5*43f35ef5SPaul Beesleyenvironment for prototyping Armv7 System-on-Chip designs. VE Fixed Virtual 6*43f35ef5SPaul BeesleyPlatforms (FVP) are simulations of Versatile Express boards. The platform in 7*43f35ef5SPaul BeesleyTrusted Firmware-A has been verified with Arm Cortex-A5 and Cortex-A7 VE FVP's. 8*43f35ef5SPaul BeesleyThis platform is tested on and only expected to work with single core models. 9*43f35ef5SPaul Beesley 10*43f35ef5SPaul BeesleyBoot Sequence 11*43f35ef5SPaul Beesley------------- 12*43f35ef5SPaul Beesley 13*43f35ef5SPaul BeesleyBL1 --> BL2 --> BL32(sp_min) --> BL33(u-boot) --> Linux kernel 14*43f35ef5SPaul Beesley 15*43f35ef5SPaul BeesleyHow to build 16*43f35ef5SPaul Beesley------------ 17*43f35ef5SPaul Beesley 18*43f35ef5SPaul BeesleyCode Locations 19*43f35ef5SPaul Beesley~~~~~~~~~~~~~~ 20*43f35ef5SPaul Beesley- `U-boot <https://git.linaro.org/landing-teams/working/arm/u-boot.git>`__ 21*43f35ef5SPaul Beesley 22*43f35ef5SPaul Beesley- `Trusted Firmware-A <https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git>`__ 23*43f35ef5SPaul Beesley 24*43f35ef5SPaul BeesleyBuild Procedure 25*43f35ef5SPaul Beesley~~~~~~~~~~~~~~~ 26*43f35ef5SPaul Beesley 27*43f35ef5SPaul Beesley- Obtain arm toolchain. The software stack has been verified with linaro 6.2 28*43f35ef5SPaul Beesley `arm-linux-gnueabihf <https://releases.linaro.org/components/toolchain/binaries/6.2-2016.11/arm-linux-gnueabihf/>`__. 29*43f35ef5SPaul Beesley Set the CROSS_COMPILE environment variable to point to the toolchain folder. 30*43f35ef5SPaul Beesley 31*43f35ef5SPaul Beesley- Fetch and build u-boot. 32*43f35ef5SPaul Beesley Make the .config file using the command: 33*43f35ef5SPaul Beesley 34*43f35ef5SPaul Beesley .. code:: shell 35*43f35ef5SPaul Beesley 36*43f35ef5SPaul Beesley make ARCH=arm vexpress_aemv8a_aarch32_config 37*43f35ef5SPaul Beesley 38*43f35ef5SPaul Beesley Make the u-boot binary for Cortex-A5 using the command: 39*43f35ef5SPaul Beesley 40*43f35ef5SPaul Beesley .. code:: shell 41*43f35ef5SPaul Beesley 42*43f35ef5SPaul Beesley make ARCH=arm SUPPORT_ARCH_TIMER=no 43*43f35ef5SPaul Beesley 44*43f35ef5SPaul Beesley Make the u-boot binary for Cortex-A7 using the command: 45*43f35ef5SPaul Beesley 46*43f35ef5SPaul Beesley .. code:: shell 47*43f35ef5SPaul Beesley 48*43f35ef5SPaul Beesley make ARCH=arm 49*43f35ef5SPaul Beesley 50*43f35ef5SPaul Beesley 51*43f35ef5SPaul Beesley- Build TF-A: 52*43f35ef5SPaul Beesley 53*43f35ef5SPaul Beesley The make command for Cortex-A5 is: 54*43f35ef5SPaul Beesley 55*43f35ef5SPaul Beesley .. code:: shell 56*43f35ef5SPaul Beesley 57*43f35ef5SPaul Beesley make PLAT=fvp_ve ARCH=aarch32 ARM_ARCH_MAJOR=7 ARM_CORTEX_A5=yes \ 58*43f35ef5SPaul Beesley AARCH32_SP=sp_min FVP_HW_CONFIG_DTS=fdts/fvp-ve-Cortex-A5x1.dts \ 59*43f35ef5SPaul Beesley ARM_XLAT_TABLES_LIB_V1=1 BL33=<path_to_u-boot.bin> all fip 60*43f35ef5SPaul Beesley 61*43f35ef5SPaul Beesley The make command for Cortex-A7 is: 62*43f35ef5SPaul Beesley 63*43f35ef5SPaul Beesley .. code:: shell 64*43f35ef5SPaul Beesley 65*43f35ef5SPaul Beesley make PLAT=fvp_ve ARCH=aarch32 ARM_ARCH_MAJOR=7 ARM_CORTEX_A7=yes \ 66*43f35ef5SPaul Beesley AARCH32_SP=sp_min FVP_HW_CONFIG_DTS=fdts/fvp-ve-Cortex-A7x1.dts \ 67*43f35ef5SPaul Beesley BL33=<path_to_u-boot.bin> all fip 68*43f35ef5SPaul Beesley 69*43f35ef5SPaul BeesleyRun Procedure 70*43f35ef5SPaul Beesley~~~~~~~~~~~~~ 71*43f35ef5SPaul Beesley 72*43f35ef5SPaul BeesleyThe following model parameters should be used to boot Linux using the build of 73*43f35ef5SPaul BeesleyTrusted Firmware-A made using the above make commands: 74*43f35ef5SPaul Beesley 75*43f35ef5SPaul Beesley .. code:: shell 76*43f35ef5SPaul Beesley 77*43f35ef5SPaul Beesley ./<path_to_model> <path_to_bl1.elf> \ 78*43f35ef5SPaul Beesley -C motherboard.flashloader1.fname=<path_to_fip.bin> \ 79*43f35ef5SPaul Beesley --data cluster.cpu0=<path_to_zImage>@0x80080000 \ 80*43f35ef5SPaul Beesley --data cluster.cpu0=<path_to_ramdisk>@0x84000000 81*43f35ef5SPaul Beesley 82*43f35ef5SPaul Beesley-------------- 83*43f35ef5SPaul Beesley 84*43f35ef5SPaul Beesley*Copyright (c) 2019, Arm Limited. All rights reserved.* 85