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