2.4. Arm Versatile Express

Versatile Express (VE) family development platform provides an ultra fast environment for prototyping Armv7 System-on-Chip designs. VE Fixed Virtual Platforms (FVP) are simulations of Versatile Express boards. The platform in Trusted Firmware-A has been verified with Arm Cortex-A5 and Cortex-A7 VE FVP’s. This platform is tested on and only expected to work with single core models.

2.4.1. Boot Sequence

BL1 –> BL2 –> BL32(sp_min) –> BL33(u-boot) –> Linux kernel

2.4.2. How to build Code Locations Build Procedure

  • Obtain arm toolchain. The software stack has been verified with linaro 6.2 arm-linux-gnueabihf. Set the CROSS_COMPILE environment variable to point to the toolchain folder.

  • Fetch and build u-boot. Make the .config file using the command:

    make ARCH=arm vexpress_aemv8a_aarch32_config

    Make the u-boot binary for Cortex-A5 using the command:


    Make the u-boot binary for Cortex-A7 using the command:

    make ARCH=arm
  • Build TF-A:

    The make command for Cortex-A5 is:

    make PLAT=fvp_ve ARCH=aarch32 ARM_ARCH_MAJOR=7 ARM_CORTEX_A5=yes \
    AARCH32_SP=sp_min FVP_HW_CONFIG_DTS=fdts/fvp-ve-Cortex-A5x1.dts \
    ARM_XLAT_TABLES_LIB_V1=1 BL33=<path_to_u-boot.bin> all fip

    The make command for Cortex-A7 is:

    make PLAT=fvp_ve ARCH=aarch32 ARM_ARCH_MAJOR=7 ARM_CORTEX_A7=yes \
    AARCH32_SP=sp_min FVP_HW_CONFIG_DTS=fdts/fvp-ve-Cortex-A7x1.dts  \
    BL33=<path_to_u-boot.bin> all fip Run Procedure

The following model parameters should be used to boot Linux using the build of Trusted Firmware-A made using the above make commands:

./<path_to_model> <path_to_bl1.elf> \
      -C motherboard.flashloader1.fname=<path_to_fip.bin> \
      --data cluster.cpu0=<path_to_zImage>@0x80080000  \
      --data cluster.cpu0=<path_to_ramdisk>@0x84000000

Copyright (c) 2019, Arm Limited. All rights reserved.