Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Arm Trusted Firmware
Commits
2a3178b7
Unverified
Commit
2a3178b7
authored
Mar 27, 2019
by
Soby Mathew
Committed by
GitHub
Mar 27, 2019
Browse files
Merge pull request #1905 from ambroise-arm/av/2.1-docs
Update user guide for 2.1 release
parents
2c269b47
68126051
Changes
1
Show whitespace changes
Inline
Side-by-side
docs/user-guide.rst
View file @
2a3178b7
...
@@ -1014,18 +1014,13 @@ For AArch64:
...
@@ -1014,18 +1014,13 @@ For AArch64:
::
::
make PLAT=fvp BL33=<path
/
to/bl33.bin
>
fip
make PLAT=fvp BL33=<path
-
to
>
/bl33.bin fip
For AArch32:
For AArch32:
::
::
make PLAT=fvp ARCH=aarch32 AARCH32_SP=sp_min BL33=<path/to/bl33.bin> fip
make PLAT=fvp ARCH=aarch32 AARCH32_SP=sp_min BL33=<path-to>/bl33.bin fip
Note that AArch32 support for Normal world boot loader (BL33), like U-boot or
UEFI, on FVP is not available upstream. Hence custom solutions are required to
allow Linux boot on FVP. These instructions assume such a custom boot loader
(BL33) is available.
The resulting FIP may be found in:
The resulting FIP may be found in:
...
@@ -1276,8 +1271,7 @@ section for more info on selecting the right FDT to use.
...
@@ -1276,8 +1271,7 @@ section for more info on selecting the right FDT to use.
make [DEBUG=1] [V=1] fiptool
make [DEBUG=1] [V=1] fiptool
# Unpack firmware images from Linaro FIP
# Unpack firmware images from Linaro FIP
./tools/fiptool/fiptool unpack \
./tools/fiptool/fiptool unpack <path-to-linaro-release>/fip.bin
<path/to/linaro/release>/fip.bin
The unpack operation will result in a set of binary images extracted to the
The unpack operation will result in a set of binary images extracted to the
current working directory. The SCP_BL2 image corresponds to
current working directory. The SCP_BL2 image corresponds to
...
@@ -1287,8 +1281,8 @@ section for more info on selecting the right FDT to use.
...
@@ -1287,8 +1281,8 @@ section for more info on selecting the right FDT to use.
exist in the current directory. If that is the case, either delete those
exist in the current directory. If that is the case, either delete those
files or use the ``--force`` option to overwrite.
files or use the ``--force`` option to overwrite.
Note: For AArch32, the instructions below assume that nt-fw.bin is a
custom
Note: For AArch32, the instructions below assume that nt-fw.bin is a
normal
Normal
world boot loader that supports AArch32.
world boot loader that supports AArch32.
#. Build TF-A images and create a new FIP for FVP
#. Build TF-A images and create a new FIP for FVP
...
@@ -1309,9 +1303,7 @@ section for more info on selecting the right FDT to use.
...
@@ -1309,9 +1303,7 @@ section for more info on selecting the right FDT to use.
::
::
make PLAT=juno all fip \
make PLAT=juno BL33=nt-fw.bin SCP_BL2=scp-fw.bin all fip
BL33=<path-to-juno-oe-uboot>/SOFTWARE/bl33-uboot.bin \
SCP_BL2=<path-to-juno-busybox-uboot>/SOFTWARE/scp_bl2.bin
For AArch32:
For AArch32:
...
@@ -1333,6 +1325,13 @@ section for more info on selecting the right FDT to use.
...
@@ -1333,6 +1325,13 @@ section for more info on selecting the right FDT to use.
make ARCH=aarch32 PLAT=juno AARCH32_SP=sp_min \
make ARCH=aarch32 PLAT=juno AARCH32_SP=sp_min \
RESET_TO_SP_MIN=1 JUNO_AARCH32_EL3_RUNTIME=1 bl32
RESET_TO_SP_MIN=1 JUNO_AARCH32_EL3_RUNTIME=1 bl32
- Save ``bl32.bin`` to a temporary location and clean the build products.
::
cp <path-to-build>/bl32.bin <path-to-temporary>
make realclean
- Before building BL1 and BL2, the environment variable ``CROSS_COMPILE``
- Before building BL1 and BL2, the environment variable ``CROSS_COMPILE``
must point to the AArch64 Linaro cross compiler.
must point to the AArch64 Linaro cross compiler.
...
@@ -1346,9 +1345,8 @@ section for more info on selecting the right FDT to use.
...
@@ -1346,9 +1345,8 @@ section for more info on selecting the right FDT to use.
::
::
make ARCH=aarch64 PLAT=juno JUNO_AARCH32_EL3_RUNTIME=1 \
make ARCH=aarch64 PLAT=juno JUNO_AARCH32_EL3_RUNTIME=1 \
BL33=<path-to-juno32-oe-uboot>/SOFTWARE/bl33-uboot.bin \
BL33=nt-fw.bin SCP_BL2=scp-fw.bin \
SCP_BL2=<path-to-juno32-oe-uboot>/SOFTWARE/scp_bl2.bin \
BL32=<path-to-temporary>/bl32.bin all fip
BL32=<path-to-bl32>/bl32.bin all fip
The resulting BL1 and FIP images may be found in:
The resulting BL1 and FIP images may be found in:
...
@@ -1504,7 +1502,7 @@ used:
...
@@ -1504,7 +1502,7 @@ used:
::
::
-C bp.flashloader1.fname="
/
path
/
to
/
el3-payload"
-C bp.flashloader1.fname="
<
path
-
to
>/<
el3-payload
>
"
On Foundation FVP, there is no flash loader component and the EL3 payload
On Foundation FVP, there is no flash loader component and the EL3 payload
may be programmed anywhere in flash using method 3 below.
may be programmed anywhere in flash using method 3 below.
...
@@ -1514,15 +1512,15 @@ used:
...
@@ -1514,15 +1512,15 @@ used:
::
::
load
/
path
/
to/el3-payload.elf
load
<
path
-
to
>
/el3-payload.elf
#. The EL3 payload may be pre-loaded in volatile memory using the following
#. The EL3 payload may be pre-loaded in volatile memory using the following
model parameters:
model parameters:
::
::
--data cluster0.cpu0="
/
path
/
to/el3-payload"@address [Base FVPs]
--data cluster0.cpu0="
<
path
-
to
>
/el3-payload
>
"@address
[Base FVPs]
--data="
/
path
/
to
/
el3-payload"@address [Foundation FVP]
--data="
<
path
-
to
>/<
el3-payload
>
"@address [Foundation FVP]
The address provided to the FVP must match the ``EL3_PAYLOAD_BASE`` address
The address provided to the FVP must match the ``EL3_PAYLOAD_BASE`` address
used when building TF-A.
used when building TF-A.
...
@@ -1650,12 +1648,10 @@ The latest version of the AArch64 build of TF-A has been tested on the following
...
@@ -1650,12 +1648,10 @@ The latest version of the AArch64 build of TF-A has been tested on the following
Arm
FVPs
without
shifted
affinities
,
and
that
do
not
support
threaded
CPU
cores
Arm
FVPs
without
shifted
affinities
,
and
that
do
not
support
threaded
CPU
cores
(
64
-
bit
host
machine
only
).
(
64
-
bit
host
machine
only
).
NOTE
:
Unless
otherwise
stated
,
the
model
version
is
Version
11.
4
Build
3
7
.
The
FVP
models
used
are
Version
11.
5
Build
3
3
,
unless
otherwise
stated
.
-
``
FVP_Base_Aresx4
``
-
``
FVP_Base_AEMv8A
-
AEMv8A
``
-
``
FVP_Base_AEMv8A
-
AEMv8A
``
-
``
FVP_Base_AEMv8A
-
AEMv8A
-
AEMv8A
-
AEMv8A
-
CCN502
``
-
``
FVP_Base_AEMv8A
-
AEMv8A
-
AEMv8A
-
AEMv8A
-
CCN502
``
-
``
FVP_Base_AEMv8A
-
AEMv8A
``
-
``
FVP_Base_RevC
-
2
xAEMv8A
``
-
``
FVP_Base_RevC
-
2
xAEMv8A
``
-
``
FVP_Base_Cortex
-
A32x4
``
-
``
FVP_Base_Cortex
-
A32x4
``
-
``
FVP_Base_Cortex
-
A35x4
``
-
``
FVP_Base_Cortex
-
A35x4
``
...
@@ -1670,7 +1666,8 @@ NOTE: Unless otherwise stated, the model version is Version 11.4 Build 37.
...
@@ -1670,7 +1666,8 @@ NOTE: Unless otherwise stated, the model version is Version 11.4 Build 37.
-
``
FVP_Base_Cortex
-
A73x4
``
-
``
FVP_Base_Cortex
-
A73x4
``
-
``
FVP_Base_Cortex
-
A75x4
``
-
``
FVP_Base_Cortex
-
A75x4
``
-
``
FVP_Base_Cortex
-
A76x4
``
-
``
FVP_Base_Cortex
-
A76x4
``
-
``
FVP_CSS_SGI
-
575
``
(
Version
11.3
build
40
)
-
``
FVP_Base_Neoverse
-
N1x4
``
(
Tested
with
internal
model
)
-
``
FVP_CSS_SGI
-
575
``
(
Version
11.3
build
42
)
-
``
Foundation_Platform
``
-
``
Foundation_Platform
``
The
latest
version
of
the
AArch32
build
of
TF
-
A
has
been
tested
on
the
following
The
latest
version
of
the
AArch32
build
of
TF
-
A
has
been
tested
on
the
following
...
@@ -1832,6 +1829,9 @@ with 8 CPUs using the AArch64 build of TF-A.
...
@@ -1832,6 +1829,9 @@ with 8 CPUs using the AArch64 build of TF-A.
--data cluster0.cpu0="
<
path
-
to
>/<
kernel
-
binary
>
"@0x80080000 \
--data cluster0.cpu0="
<
path
-
to
>/<
kernel
-
binary
>
"@0x80080000 \
--data cluster0.cpu0="
<
path
-
to
>/<
ramdisk
>
"@0x84000000
--data cluster0.cpu0="
<
path
-
to
>/<
ramdisk
>
"@0x84000000
Note: The ``FVP_Base_RevC-2xAEMv8A`` has shifted affinities and requires a
specific DTS for all the CPUs to be loaded.
Running on the AEMv8 Base FVP (AArch32) with reset to BL1 entrypoint
Running on the AEMv8 Base FVP (AArch32) with reset to BL1 entrypoint
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...
@@ -1928,7 +1928,7 @@ with 8 CPUs using the AArch64 build of TF-A.
...
@@ -1928,7 +1928,7 @@ with 8 CPUs using the AArch64 build of TF-A.
Notes:
Notes:
-
Since
Position Independent Executable (PIE) support is enabled for BL31
-
If
Position Independent Executable (PIE) support is enabled for BL31
in this config, it can be loaded at any valid address for execution.
in this config, it can be loaded at any valid address for execution.
- Since a FIP is not loaded when using BL31 as reset entrypoint, the
- Since a FIP is not loaded when using BL31 as reset entrypoint, the
...
@@ -1939,6 +1939,9 @@ Notes:
...
@@ -1939,6 +1939,9 @@ Notes:
and loaded via the ``--data cluster0.cpu0="
<
path
-
to
>/<
fdt
>
"@0x82000000``
and loaded via the ``--data cluster0.cpu0="
<
path
-
to
>/<
fdt
>
"@0x82000000``
parameter.
parameter.
- The ``FVP_Base_RevC-2xAEMv8A`` has shifted affinities and requires a
specific DTS for all the CPUs to be loaded.
- The ``-C cluster<X>.cpu<Y>.RVBAR=@<base-address-of-bl31>`` parameter, where
- The ``-C cluster<X>.cpu<Y>.RVBAR=@<base-address-of-bl31>`` parameter, where
X and Y are the cluster and CPU numbers respectively, is used to set the
X and Y are the cluster and CPU numbers respectively, is used to set the
reset vector for each core.
reset vector for each core.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment