xref: /rk3399_ARM-atf/docs/plat/arm/fvp/fvp-aemv8-base.rst (revision 7d0093277104dbd3c6a94dbf36611767c96e544f)
1*c5407693SSandrine BailleuxRunning on the AEMv8 Base FVP
2*c5407693SSandrine Bailleux=============================
3*c5407693SSandrine Bailleux
4*c5407693SSandrine BailleuxAArch64 with reset to BL1 entrypoint
5*c5407693SSandrine Bailleux^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
6*c5407693SSandrine Bailleux
7*c5407693SSandrine BailleuxThe following ``FVP_Base_RevC-2xAEMv8A`` parameters should be used to boot Linux
8*c5407693SSandrine Bailleuxwith 8 CPUs using the AArch64 build of TF-A.
9*c5407693SSandrine Bailleux
10*c5407693SSandrine Bailleux.. code:: shell
11*c5407693SSandrine Bailleux
12*c5407693SSandrine Bailleux    <path-to>/FVP_Base_RevC-2xAEMv8A                            \
13*c5407693SSandrine Bailleux    -C pctl.startup=0.0.0.0                                     \
14*c5407693SSandrine Bailleux    -C bp.secure_memory=1                                       \
15*c5407693SSandrine Bailleux    -C bp.tzc_400.diagnostics=1                                 \
16*c5407693SSandrine Bailleux    -C cluster0.NUM_CORES=4                                     \
17*c5407693SSandrine Bailleux    -C cluster1.NUM_CORES=4                                     \
18*c5407693SSandrine Bailleux    -C cache_state_modelled=1                                   \
19*c5407693SSandrine Bailleux    -C bp.secureflashloader.fname="<path-to>/<bl1-binary>"      \
20*c5407693SSandrine Bailleux    -C bp.flashloader0.fname="<path-to>/<FIP-binary>"           \
21*c5407693SSandrine Bailleux    --data cluster0.cpu0="<path-to>/<kernel-binary>"@0x80080000 \
22*c5407693SSandrine Bailleux    --data cluster0.cpu0="<path-to>/<ramdisk>"@0x84000000
23*c5407693SSandrine Bailleux
24*c5407693SSandrine Bailleux.. note::
25*c5407693SSandrine Bailleux   The ``FVP_Base_RevC-2xAEMv8A`` has shifted affinities and requires
26*c5407693SSandrine Bailleux   a specific DTS for all the CPUs to be loaded.
27*c5407693SSandrine Bailleux
28*c5407693SSandrine BailleuxAArch32 with reset to BL1 entrypoint
29*c5407693SSandrine Bailleux^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
30*c5407693SSandrine Bailleux
31*c5407693SSandrine BailleuxThe following ``FVP_Base_AEMv8A-AEMv8A`` parameters should be used to boot Linux
32*c5407693SSandrine Bailleuxwith 8 CPUs using the AArch32 build of TF-A.
33*c5407693SSandrine Bailleux
34*c5407693SSandrine Bailleux.. code:: shell
35*c5407693SSandrine Bailleux
36*c5407693SSandrine Bailleux    <path-to>/FVP_Base_AEMv8A-AEMv8A                            \
37*c5407693SSandrine Bailleux    -C pctl.startup=0.0.0.0                                     \
38*c5407693SSandrine Bailleux    -C bp.secure_memory=1                                       \
39*c5407693SSandrine Bailleux    -C bp.tzc_400.diagnostics=1                                 \
40*c5407693SSandrine Bailleux    -C cluster0.NUM_CORES=4                                     \
41*c5407693SSandrine Bailleux    -C cluster1.NUM_CORES=4                                     \
42*c5407693SSandrine Bailleux    -C cache_state_modelled=1                                   \
43*c5407693SSandrine Bailleux    -C cluster0.cpu0.CONFIG64=0                                 \
44*c5407693SSandrine Bailleux    -C cluster0.cpu1.CONFIG64=0                                 \
45*c5407693SSandrine Bailleux    -C cluster0.cpu2.CONFIG64=0                                 \
46*c5407693SSandrine Bailleux    -C cluster0.cpu3.CONFIG64=0                                 \
47*c5407693SSandrine Bailleux    -C cluster1.cpu0.CONFIG64=0                                 \
48*c5407693SSandrine Bailleux    -C cluster1.cpu1.CONFIG64=0                                 \
49*c5407693SSandrine Bailleux    -C cluster1.cpu2.CONFIG64=0                                 \
50*c5407693SSandrine Bailleux    -C cluster1.cpu3.CONFIG64=0                                 \
51*c5407693SSandrine Bailleux    -C bp.secureflashloader.fname="<path-to>/<bl1-binary>"      \
52*c5407693SSandrine Bailleux    -C bp.flashloader0.fname="<path-to>/<FIP-binary>"           \
53*c5407693SSandrine Bailleux    --data cluster0.cpu0="<path-to>/<kernel-binary>"@0x80080000 \
54*c5407693SSandrine Bailleux    --data cluster0.cpu0="<path-to>/<ramdisk>"@0x84000000
55*c5407693SSandrine Bailleux
56*c5407693SSandrine BailleuxAArch64 with reset to BL31 entrypoint
57*c5407693SSandrine Bailleux^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
58*c5407693SSandrine Bailleux
59*c5407693SSandrine BailleuxThe following ``FVP_Base_RevC-2xAEMv8A`` parameters should be used to boot Linux
60*c5407693SSandrine Bailleuxwith 8 CPUs using the AArch64 build of TF-A.
61*c5407693SSandrine Bailleux
62*c5407693SSandrine Bailleux.. code:: shell
63*c5407693SSandrine Bailleux
64*c5407693SSandrine Bailleux    <path-to>/FVP_Base_RevC-2xAEMv8A                             \
65*c5407693SSandrine Bailleux    -C pctl.startup=0.0.0.0                                      \
66*c5407693SSandrine Bailleux    -C bp.secure_memory=1                                        \
67*c5407693SSandrine Bailleux    -C bp.tzc_400.diagnostics=1                                  \
68*c5407693SSandrine Bailleux    -C cluster0.NUM_CORES=4                                      \
69*c5407693SSandrine Bailleux    -C cluster1.NUM_CORES=4                                      \
70*c5407693SSandrine Bailleux    -C cache_state_modelled=1                                    \
71*c5407693SSandrine Bailleux    -C cluster0.cpu0.RVBAR=0x04010000                            \
72*c5407693SSandrine Bailleux    -C cluster0.cpu1.RVBAR=0x04010000                            \
73*c5407693SSandrine Bailleux    -C cluster0.cpu2.RVBAR=0x04010000                            \
74*c5407693SSandrine Bailleux    -C cluster0.cpu3.RVBAR=0x04010000                            \
75*c5407693SSandrine Bailleux    -C cluster1.cpu0.RVBAR=0x04010000                            \
76*c5407693SSandrine Bailleux    -C cluster1.cpu1.RVBAR=0x04010000                            \
77*c5407693SSandrine Bailleux    -C cluster1.cpu2.RVBAR=0x04010000                            \
78*c5407693SSandrine Bailleux    -C cluster1.cpu3.RVBAR=0x04010000                            \
79*c5407693SSandrine Bailleux    --data cluster0.cpu0="<path-to>/<bl31-binary>"@0x04010000    \
80*c5407693SSandrine Bailleux    --data cluster0.cpu0="<path-to>/<bl32-binary>"@0xff000000    \
81*c5407693SSandrine Bailleux    --data cluster0.cpu0="<path-to>/<bl33-binary>"@0x88000000    \
82*c5407693SSandrine Bailleux    --data cluster0.cpu0="<path-to>/<fdt>"@0x82000000            \
83*c5407693SSandrine Bailleux    --data cluster0.cpu0="<path-to>/<kernel-binary>"@0x80080000  \
84*c5407693SSandrine Bailleux    --data cluster0.cpu0="<path-to>/<ramdisk>"@0x84000000
85*c5407693SSandrine Bailleux
86*c5407693SSandrine BailleuxNotes:
87*c5407693SSandrine Bailleux
88*c5407693SSandrine Bailleux-  Position Independent Executable (PIE) support is enabled in this
89*c5407693SSandrine Bailleux   config allowing BL31 to be loaded at any valid address for execution.
90*c5407693SSandrine Bailleux
91*c5407693SSandrine Bailleux-  Since a FIP is not loaded when using BL31 as reset entrypoint, the
92*c5407693SSandrine Bailleux   ``--data="<path-to><bl31|bl32|bl33-binary>"@<base-address-of-binary>``
93*c5407693SSandrine Bailleux   parameter is needed to load the individual bootloader images in memory.
94*c5407693SSandrine Bailleux   BL32 image is only needed if BL31 has been built to expect a Secure-EL1
95*c5407693SSandrine Bailleux   Payload. For the same reason, the FDT needs to be compiled from the DT source
96*c5407693SSandrine Bailleux   and loaded via the ``--data cluster0.cpu0="<path-to>/<fdt>"@0x82000000``
97*c5407693SSandrine Bailleux   parameter.
98*c5407693SSandrine Bailleux
99*c5407693SSandrine Bailleux-  The ``FVP_Base_RevC-2xAEMv8A`` has shifted affinities and requires a
100*c5407693SSandrine Bailleux   specific DTS for all the CPUs to be loaded.
101*c5407693SSandrine Bailleux
102*c5407693SSandrine Bailleux-  The ``-C cluster<X>.cpu<Y>.RVBAR=@<base-address-of-bl31>`` parameter, where
103*c5407693SSandrine Bailleux   X and Y are the cluster and CPU numbers respectively, is used to set the
104*c5407693SSandrine Bailleux   reset vector for each core.
105*c5407693SSandrine Bailleux
106*c5407693SSandrine Bailleux-  Changing the default value of ``ARM_TSP_RAM_LOCATION`` will also require
107*c5407693SSandrine Bailleux   changing the value of
108*c5407693SSandrine Bailleux   ``--data="<path-to><bl32-binary>"@<base-address-of-bl32>`` to the new value of
109*c5407693SSandrine Bailleux   ``BL32_BASE``.
110*c5407693SSandrine Bailleux
111*c5407693SSandrine BailleuxAArch32 with reset to SP_MIN entrypoint
112*c5407693SSandrine Bailleux^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
113*c5407693SSandrine Bailleux
114*c5407693SSandrine BailleuxThe following ``FVP_Base_AEMv8A-AEMv8A`` parameters should be used to boot Linux
115*c5407693SSandrine Bailleuxwith 8 CPUs using the AArch32 build of TF-A.
116*c5407693SSandrine Bailleux
117*c5407693SSandrine Bailleux.. code:: shell
118*c5407693SSandrine Bailleux
119*c5407693SSandrine Bailleux    <path-to>/FVP_Base_AEMv8A-AEMv8A                             \
120*c5407693SSandrine Bailleux    -C pctl.startup=0.0.0.0                                      \
121*c5407693SSandrine Bailleux    -C bp.secure_memory=1                                        \
122*c5407693SSandrine Bailleux    -C bp.tzc_400.diagnostics=1                                  \
123*c5407693SSandrine Bailleux    -C cluster0.NUM_CORES=4                                      \
124*c5407693SSandrine Bailleux    -C cluster1.NUM_CORES=4                                      \
125*c5407693SSandrine Bailleux    -C cache_state_modelled=1                                    \
126*c5407693SSandrine Bailleux    -C cluster0.cpu0.CONFIG64=0                                  \
127*c5407693SSandrine Bailleux    -C cluster0.cpu1.CONFIG64=0                                  \
128*c5407693SSandrine Bailleux    -C cluster0.cpu2.CONFIG64=0                                  \
129*c5407693SSandrine Bailleux    -C cluster0.cpu3.CONFIG64=0                                  \
130*c5407693SSandrine Bailleux    -C cluster1.cpu0.CONFIG64=0                                  \
131*c5407693SSandrine Bailleux    -C cluster1.cpu1.CONFIG64=0                                  \
132*c5407693SSandrine Bailleux    -C cluster1.cpu2.CONFIG64=0                                  \
133*c5407693SSandrine Bailleux    -C cluster1.cpu3.CONFIG64=0                                  \
134*c5407693SSandrine Bailleux    -C cluster0.cpu0.RVBAR=0x04002000                            \
135*c5407693SSandrine Bailleux    -C cluster0.cpu1.RVBAR=0x04002000                            \
136*c5407693SSandrine Bailleux    -C cluster0.cpu2.RVBAR=0x04002000                            \
137*c5407693SSandrine Bailleux    -C cluster0.cpu3.RVBAR=0x04002000                            \
138*c5407693SSandrine Bailleux    -C cluster1.cpu0.RVBAR=0x04002000                            \
139*c5407693SSandrine Bailleux    -C cluster1.cpu1.RVBAR=0x04002000                            \
140*c5407693SSandrine Bailleux    -C cluster1.cpu2.RVBAR=0x04002000                            \
141*c5407693SSandrine Bailleux    -C cluster1.cpu3.RVBAR=0x04002000                            \
142*c5407693SSandrine Bailleux    --data cluster0.cpu0="<path-to>/<bl32-binary>"@0x04002000    \
143*c5407693SSandrine Bailleux    --data cluster0.cpu0="<path-to>/<bl33-binary>"@0x88000000    \
144*c5407693SSandrine Bailleux    --data cluster0.cpu0="<path-to>/<fdt>"@0x82000000            \
145*c5407693SSandrine Bailleux    --data cluster0.cpu0="<path-to>/<kernel-binary>"@0x80080000  \
146*c5407693SSandrine Bailleux    --data cluster0.cpu0="<path-to>/<ramdisk>"@0x84000000
147*c5407693SSandrine Bailleux
148*c5407693SSandrine Bailleux.. note::
149*c5407693SSandrine Bailleux   Position Independent Executable (PIE) support is enabled in this
150*c5407693SSandrine Bailleux   config allowing SP_MIN to be loaded at any valid address for execution.
151*c5407693SSandrine Bailleux
152*c5407693SSandrine Bailleux--------------
153*c5407693SSandrine Bailleux
154*c5407693SSandrine Bailleux*Copyright (c) 2019-2024, Arm Limited. All rights reserved.*
155