blob: 6abf9e5f7580a94b002c4f8451682f9349314b5a [file] [log] [blame]
Paul Beesleyf3653a62019-05-22 11:22:44 +01001Arm Versatile Express
2=====================
Usama Arifb8cd97f2019-02-05 15:44:17 +00003
John Tsichritzis4730c112019-07-05 14:14:40 +01004Versatile Express (VE) family development platform provides an ultra fast
5environment for prototyping Armv7 System-on-Chip designs. VE Fixed Virtual
6Platforms (FVP) are simulations of Versatile Express boards. The platform in
7Trusted Firmware-A has been verified with Arm Cortex-A5 and Cortex-A7 VE FVP's.
8This platform is tested on and only expected to work with single core models.
Usama Arifb8cd97f2019-02-05 15:44:17 +00009
10Boot Sequence
Paul Beesleyf3653a62019-05-22 11:22:44 +010011-------------
Usama Arifb8cd97f2019-02-05 15:44:17 +000012
13BL1 --> BL2 --> BL32(sp_min) --> BL33(u-boot) --> Linux kernel
14
15How to build
Paul Beesleyf3653a62019-05-22 11:22:44 +010016------------
Usama Arifb8cd97f2019-02-05 15:44:17 +000017
18Code Locations
Paul Beesleyf3653a62019-05-22 11:22:44 +010019~~~~~~~~~~~~~~
Usama Arifb8cd97f2019-02-05 15:44:17 +000020- `U-boot <https://git.linaro.org/landing-teams/working/arm/u-boot.git>`__
21
John Tsichritzis4730c112019-07-05 14:14:40 +010022- `Trusted Firmware-A <https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git>`__
Usama Arifb8cd97f2019-02-05 15:44:17 +000023
24Build Procedure
Paul Beesleyf3653a62019-05-22 11:22:44 +010025~~~~~~~~~~~~~~~
Usama Arifb8cd97f2019-02-05 15:44:17 +000026
27- Obtain arm toolchain. The software stack has been verified with linaro 6.2
28 `arm-linux-gnueabihf <https://releases.linaro.org/components/toolchain/binaries/6.2-2016.11/arm-linux-gnueabihf/>`__.
29 Set the CROSS_COMPILE environment variable to point to the toolchain folder.
30
31- Fetch and build u-boot.
32 Make the .config file using the command:
33
34 .. code:: shell
35
36 make ARCH=arm vexpress_aemv8a_aarch32_config
37
38 Make the u-boot binary for Cortex-A5 using the command:
39
40 .. code:: shell
41
42 make ARCH=arm SUPPORT_ARCH_TIMER=no
43
44 Make the u-boot binary for Cortex-A7 using the command:
45
46 .. code:: shell
47
48 make ARCH=arm
49
50
51- Build TF-A:
52
53 The make command for Cortex-A5 is:
54
55 .. code:: shell
56
57 make PLAT=fvp_ve ARCH=aarch32 ARM_ARCH_MAJOR=7 ARM_CORTEX_A5=yes \
58 AARCH32_SP=sp_min FVP_HW_CONFIG_DTS=fdts/fvp-ve-Cortex-A5x1.dts \
59 ARM_XLAT_TABLES_LIB_V1=1 BL33=<path_to_u-boot.bin> all fip
60
61 The make command for Cortex-A7 is:
62
63 .. code:: shell
64
65 make PLAT=fvp_ve ARCH=aarch32 ARM_ARCH_MAJOR=7 ARM_CORTEX_A7=yes \
66 AARCH32_SP=sp_min FVP_HW_CONFIG_DTS=fdts/fvp-ve-Cortex-A7x1.dts \
67 BL33=<path_to_u-boot.bin> all fip
68
69Run Procedure
Paul Beesleyf3653a62019-05-22 11:22:44 +010070~~~~~~~~~~~~~
Usama Arifb8cd97f2019-02-05 15:44:17 +000071
72The following model parameters should be used to boot Linux using the build of
John Tsichritzis4730c112019-07-05 14:14:40 +010073Trusted Firmware-A made using the above make commands:
Usama Arifb8cd97f2019-02-05 15:44:17 +000074
75 .. code:: shell
76
77 ./<path_to_model> <path_to_bl1.elf> \
78 -C motherboard.flashloader1.fname=<path_to_fip.bin> \
79 --data cluster.cpu0=<path_to_zImage>@0x80080000 \
80 --data cluster.cpu0=<path_to_ramdisk>@0x84000000