xref: /rk3399_ARM-atf/docs/plat/arm/fvp-ve/index.rst (revision f325f9ce429c09e28acbbb57f3dd8a09e4d1ccf4)
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