blob: 8f6784187e1288059d2ac5013626fe0ccab7a195 [file] [log] [blame]
Paul Beesleyec7988c2019-10-24 11:57:00 +00001User Guide
2==========
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +02003
4This document describes how to build the Trusted Firmware-A Tests (TF-A Tests)
5and run them on a set of platforms. It assumes that the reader has previous
6experience building and running the `Trusted Firmware-A (TF-A)`_.
7
8Host machine requirements
9-------------------------
10
11The minimum recommended machine specification for building the software and
12running the `FVP models`_ is a dual-core processor running at 2GHz with 12GB of
13RAM. For best performance, use a machine with a quad-core processor running at
142.6GHz with 16GB of RAM.
15
16The software has been tested on Ubuntu 16.04 LTS (64-bit). Packages used for
17building the software were installed from that distribution unless otherwise
18specified.
19
20Tools
21-----
22
23Install the required packages to build TF-A Tests with the following command:
24
25::
26
Antonio Nino Diaz0c697f92018-11-30 10:51:26 +000027 sudo apt-get install device-tree-compiler build-essential make git perl libxml-libxml-perl
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +020028
Madhukar Pappireddy28f11312020-01-07 00:28:49 -060029Download and install the GNU cross-toolchain from developer.arm.com portal. The
30TF-A Tests have been tested with version 9.2-2019.12 (gcc 9.2):
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +020031
32- `AArch32 GNU cross-toolchain`_
33- `AArch64 GNU cross-toolchain`_
34
35In addition, the following optional packages and tools may be needed:
36
37- For debugging, Arm `Development Studio 5 (DS-5)`_.
38
39Getting the TF-A Tests source code
40----------------------------------
41
42Download the TF-A Tests source code using the following command:
43
44::
45
Sandrine Bailleux2d0136e2018-11-05 14:21:27 +010046 git clone https://git.trustedfirmware.org/TF-A/tf-a-tests.git
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +020047
48Building TF-A Tests
49-------------------
50
51- Before building TF-A Tests, the environment variable ``CROSS_COMPILE`` must
Madhukar Pappireddy28f11312020-01-07 00:28:49 -060052 point to the cross compiler.
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +020053
54 For AArch64:
55
56 ::
57
Madhukar Pappireddy28f11312020-01-07 00:28:49 -060058 export CROSS_COMPILE=<path-to-aarch64-gcc>/bin/aarch64-none-elf-
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +020059
60 For AArch32:
61
62 ::
63
Madhukar Pappireddy28f11312020-01-07 00:28:49 -060064 export CROSS_COMPILE=<path-to-aarch32-gcc>/bin/arm-none-eabi-
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +020065
66- Change to the root directory of the TF-A Tests source tree and build.
67
68 For AArch64:
69
70 ::
71
72 make PLAT=<platform>
73
74 For AArch32:
75
76 ::
77
78 make PLAT=<platform> ARCH=aarch32
79
80 Notes:
81
82 - If ``PLAT`` is not specified, ``fvp`` is assumed by default. See the
83 `Summary of build options`_ for more information on available build
84 options.
85
86 - By default this produces a release version of the build. To produce a
87 debug version instead, build the code with ``DEBUG=1``.
88
89 - The build process creates products in a ``build/`` directory tree,
90 building the objects and binaries for each test image in separate
91 sub-directories. The following binary files are created from the
92 corresponding ELF files:
93
94 - ``build/<platform>/<build-type>/tftf.bin``
95 - ``build/<platform>/<build-type>/ns_bl1u.bin``
96 - ``build/<platform>/<build-type>/ns_bl2u.bin``
97 - ``build/<platform>/<build-type>/el3_payload.bin``
Antonio Nino Diazabb570e2019-03-25 13:13:57 +000098 - ``build/<platform>/<build-type>/cactus_mm.bin``
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +020099 - ``build/<platform>/<build-type>/cactus.bin``
Antonio Nino Diazabb570e2019-03-25 13:13:57 +0000100 - ``build/<platform>/<build-type>/ivy.bin``
Antonio Nino Diazfee6e7e2019-03-28 13:16:04 +0000101 - ``build/<platform>/<build-type>/quark.bin``
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200102
103 where ``<platform>`` is the name of the chosen platform and ``<build-type>``
104 is either ``debug`` or ``release``. The actual number of images might differ
105 depending on the platform.
106
107 Refer to the sections below for more information about each image.
108
109- Build products for a specific build variant can be removed using:
110
111 ::
112
113 make DEBUG=<D> PLAT=<platform> clean
114
115 ... where ``<D>`` is ``0`` or ``1``, as specified when building.
116
117 The build tree can be removed completely using:
118
119 ::
120
121 make realclean
122
123- Use the following command to list all supported build commands:
124
125 ::
126
127 make help
128
129TFTF test image
130```````````````
131
132``tftf.bin`` is the main test image to exercise the TF-A features. The other
133test images provided in this repository are optional dependencies that TFTF
134needs to test some specific features.
135
136``tftf.bin`` may be built independently of the other test images using the
137following command:
138
139::
140
141 make PLAT=<platform> tftf
142
143In TF-A boot flow, ``tftf.bin`` replaces the ``BL33`` image and should be
144injected in the FIP image. This might be achieved by running the following
145command from the TF-A root directory:
146
147::
148
149 BL33=tftf.bin make PLAT=<platform> fip
150
151Please refer to the `TF-A User guide`_ for further details.
152
153NS_BL1U and NS_BL2U test images
154```````````````````````````````
155
156``ns_bl1u.bin`` and ``ns_bl2u.bin`` are test images that exercise the `Firmware
157Update`_ (FWU) feature of TF-A [#]_. Throughout this document, they will be
158referred as the `FWU test images`.
159
160In addition to updating the firmware, the FWU test images also embed some tests
161that exercise the `FWU state machine`_ implemented in the TF-A. They send valid
162and invalid SMC requests to the TF-A BL1 image in order to test its robustness.
163
164NS_BL1U test image
165''''''''''''''''''
166
167The ``NS_BL1U`` image acts as the `Application Processor (AP) Firmware Update
168Boot ROM`. This typically is the first software agent executing on the AP in the
169Normal World during a firmware update operation. Its primary purpose is to load
170subsequent firmware update images from an external interface, such as NOR Flash,
171and communicate with ``BL1`` to authenticate those images.
172
173The ``NS_BL1U`` test image provided in this repository performs the following
174tasks:
175
176- Load FWU images from external non-volatile storage (typically flash memory)
177 to Non-Secure RAM.
178
179- Request TF-A BL1 to copy these images in Secure RAM and authenticate them.
180
181- Jump to ``NS_BL2U`` which carries out the next steps in the firmware update
182 process.
183
184This image may be built independently of the other test images using the
185following command:
186
187::
188
189 make PLAT=<platform> ns_bl1u
190
191NS_BL2U test image
192''''''''''''''''''
193
194The ``NS_BL2U`` image acts as the `AP Firmware Updater`. Its primary
195responsibility is to load a new set of firmware images from an external
196interface and write them into non-volatile storage.
197
198The ``NS_BL2U`` test image provided in this repository overrides the original
199FIP image stored in flash with the backup FIP image (see below).
200
201This image may be built independently of the other test images using the
202following command:
203
204::
205
206 make PLAT=<platform> ns_bl2u
207
208Putting it all together
209'''''''''''''''''''''''
210
211The FWU test images should be used in conjunction with the TFTF image, as the
212latter initiates the FWU process by corrupting the FIP image and resetting the
213target. Once the FWU process is complete, TFTF takes over again and checks that
214the firmware was successfully updated.
215
216To sum up, 3 images must be built out of the TF-A Tests repository in order to
217test the TF-A Firmware Update feature:
218
John Tsichritzis4586e0d2018-10-18 10:00:28 +0100219- ``ns_bl1u.bin``
220- ``ns_bl2u.bin``
221- ``tftf.bin``
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200222
223Once that's done, they must be combined in the right way.
224
John Tsichritzis4586e0d2018-10-18 10:00:28 +0100225- ``ns_bl1u.bin`` is a standalone image and does not require any further
226 processing.
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200227
John Tsichritzis4586e0d2018-10-18 10:00:28 +0100228- ``ns_bl2u.bin`` must be injected into the ``FWU_FIP`` image. This might be
229 achieved by setting ``NS_BL2U=ns_bl2u.bin`` when building the ``FWU_FIP``
230 image out of the TF-A repository. Please refer to the section `Building FIP
231 images with support for Trusted Board Boot`_ in the TF-A User Guide.
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200232
John Tsichritzis4586e0d2018-10-18 10:00:28 +0100233- ``tftf.bin`` must be injected in the standard FIP image, as explained
234 in section `TFTF test image`_.
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200235
236Additionally, on Juno platform, the FWU FIP must contain a ``SCP_BL2U`` image.
237This image can simply be a copy of the standard ``SCP_BL2`` image if no specific
238firmware update operations need to be carried on the SCP side.
239
240Finally, the backup FIP image must be created. This can simply be a copy of the
241standard FIP image, which means that the Firmware Update process will restore
242the original, uncorrupted FIP image.
243
244EL3 test payload
245````````````````
246
247``el3_payload.bin`` is a test image exercising the alternative `EL3 payload boot
248flow`_ in TF-A. Refer to the `EL3 test payload README file`_ for more details
249about its behaviour and how to build and run it.
250
Antonio Nino Diazabb570e2019-03-25 13:13:57 +0000251SPM test images
252```````````````
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200253
Antonio Nino Diazabb570e2019-03-25 13:13:57 +0000254This repository contains 3 Secure Partitions that exercise the `Secure Partition
255Manager`_ (SPM) in TF-A [#]_. Cactus-MM is designed to test the SPM
256implementation based on the `ARM Management Mode Interface`_ (MM), while Cactus
257and Ivy can test the SPM implementation based on the SPCI and SPRT draft
258specifications. Note that it isn't possible to use both communication mechanisms
259at once: If Cactus-MM is used Cactus and Ivy can't be used.
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200260
Antonio Nino Diazabb570e2019-03-25 13:13:57 +0000261They run in Secure-EL0 and perform the following tasks:
262
263- Test that TF-A has correctly setup the secure partition environment: They
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200264 should be allowed to perform cache maintenance operations, access floating
265 point registers, etc.
266
267- Test that TF-A accepts to change data access permissions and instruction
Antonio Nino Diazabb570e2019-03-25 13:13:57 +0000268 permissions on behalf of the Secure Partitions for memory regions the latter
269 owns.
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200270
Antonio Nino Diazabb570e2019-03-25 13:13:57 +0000271- Test communication with SPM through either MM, or both SPCI and SPRT.
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200272
Antonio Nino Diazabb570e2019-03-25 13:13:57 +0000273They are only supported on AArch64 FVP. They can be built independently of the
274other test images using the following command:
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200275
276::
277
Antonio Nino Diazabb570e2019-03-25 13:13:57 +0000278 make PLAT=fvp cactus ivy cactus_mm
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200279
Antonio Nino Diazabb570e2019-03-25 13:13:57 +0000280In the TF-A boot flow, the partitions replace the ``BL32`` image and should be
281injected in the FIP image. To test SPM-MM with Cactus-MM, it is enough to use
282``cactus_mm.bin`` as BL32 image. To test the SPM based on SPCI and SPRT, it is
283needed to use ``sp_tool`` to build a Secure Partition package that can be used
284as BL32 image.
285
286To run the full set of tests in the Secure Partitions, they should be used in
287conjunction with the TFTF image.
288
289For SPM-MM, the following commands can be used to build the tests:
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200290
291::
Antonio Nino Diazabb570e2019-03-25 13:13:57 +0000292 # TF-A-Tests repository:
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200293
Antonio Nino Diazabb570e2019-03-25 13:13:57 +0000294 make PLAT=fvp TESTS=spm-mm tftf cactus_mm
295
296 # TF-A repository:
297
298 make BL33=path/to/tftf.bin BL32=path/to/cactus_mm.bin \
299 PLAT=fvp EL3_EXCEPTION_HANDLING=1 ENABLE_SPM=1 all fip
300
301For SPM based on SPCI and SPRT:
302
303::
304 # TF-A-Tests repository:
305
306 make PLAT=fvp TESTS=spm tftf cactus ivy
307
308 # TF-A repository:
309
310 make sptool
311
312 tools/sptool/sptool -o sp_package.bin \
313 -i path/to/cactus.bin:path/to/cactus.dtb \
314 -i path/to/ivy.bin:path/to/ivy.dtb
315
316 make BL33=path/to/tftf.bin BL32=path/to/sp_package.bin \
317 PLAT=fvp ENABLE_SPM=1 SPM_MM=0 ARM_BL31_IN_DRAM=1 all fip
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200318
319Please refer to the `TF-A User guide`_ for further details.
320
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200321Summary of build options
322````````````````````````
323
324As much as possible, TF-A Tests dynamically detect the platform hardware
325components and available features. There are a few build options to select
326specific features where the dynamic detection falls short. This section lists
327them.
328
329Unless mentioned otherwise, these options are expected to be specified at the
330build command line and are not to be modified in any component makefiles.
331
332Note that the build system doesn't track dependencies for build options.
333Therefore, if any of the build options are changed from a previous build, a
334clean build must be performed.
335
336Build options shared across test images
337'''''''''''''''''''''''''''''''''''''''
338
339Most of the build options listed in this section apply to TFTF, the FWU test
340images and Cactus, unless otherwise specified. These do not influence the EL3
341payload, whose simplistic build system is mostly independent.
342
343- ``ARCH``: Choose the target build architecture for TF-A Tests. It can take
344 either ``aarch64`` or ``aarch32`` as values. By default, it is defined to
345 ``aarch64``. Not all test images support this build option.
346
347- ``ARM_ARCH_MAJOR``: The major version of Arm Architecture to target when
348 compiling TF-A Tests. Its value must be numeric, and defaults to 8.
349
350- ``ARM_ARCH_MINOR``: The minor version of Arm Architecture to target when
351 compiling TF-A Tests. Its value must be a numeric, and defaults to 0.
352
353- ``DEBUG``: Chooses between a debug and a release build. A debug build
354 typically embeds assertions checking the validity of some assumptions and its
355 output is more verbose. The option can take either 0 (release) or 1 (debug)
356 as values. 0 is the default.
357
358- ``ENABLE_ASSERTIONS``: This option controls whether calls to ``assert()`` are
359 compiled out.
360
John Tsichritzis4586e0d2018-10-18 10:00:28 +0100361 - For debug builds, this option defaults to 1, and calls to ``assert()`` are
362 compiled in.
363 - For release builds, this option defaults to 0 and calls to ``assert()``
364 are compiled out.
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200365
John Tsichritzis4586e0d2018-10-18 10:00:28 +0100366 This option can be set independently of ``DEBUG``. It can also be used to
367 hide any auxiliary code that is only required for the assertion and does not
368 fit in the assertion itself.
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200369
370- ``LOG_LEVEL``: Chooses the log level, which controls the amount of console log
371 output compiled into the build. This should be one of the following:
372
373 ::
374
375 0 (LOG_LEVEL_NONE)
376 10 (LOG_LEVEL_ERROR)
377 20 (LOG_LEVEL_NOTICE)
378 30 (LOG_LEVEL_WARNING)
379 40 (LOG_LEVEL_INFO)
380 50 (LOG_LEVEL_VERBOSE)
381
382 All log output up to and including the selected log level is compiled into
383 the build. The default value is 40 in debug builds and 20 in release builds.
384
385- ``PLAT``: Choose a platform to build TF-A Tests for. The chosen platform name
386 must be a subdirectory of any depth under ``plat/``, and must contain a
387 platform makefile named ``platform.mk``. For example, to build TF-A Tests for
388 the Arm Juno board, select ``PLAT=juno``.
389
390- ``V``: Verbose build. If assigned anything other than 0, the build commands
391 are printed. Default is 0.
392
393TFTF build options
394''''''''''''''''''
395
Antonio Nino Diaz2f13f422019-03-13 13:57:39 +0000396- ``ENABLE_PAUTH``: Boolean option to enable ARMv8.3 Pointer Authentication
397 (``ARMv8.3-PAuth``) support in the Trusted Firmware-A Test Framework itself.
398 If enabled, it is needed to use a compiler that supports the option
Alexei Fedorove72ce612019-10-03 10:57:53 +0100399 ``-mbranch-protection`` (GCC 9 and later). It defaults to 0.
Antonio Nino Diaz2f13f422019-03-13 13:57:39 +0000400
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200401- ``NEW_TEST_SESSION``: Choose whether a new test session should be started
402 every time or whether the framework should determine whether a previous
403 session was interrupted and resume it. It can take either 1 (always
404 start new session) or 0 (resume session as appropriate). 1 is the default.
405
Sandrine Bailleux43ded0f2018-10-03 17:15:05 +0200406- ``TESTS``: Set of tests to run. Use the following command to list all
407 possible sets of tests:
408
409 ::
410
411 make help_tests
412
413 If no set of tests is specified, the standard tests will be selected (see
414 ``tftf/tests/tests-standard.xml``).
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200415
416- ``USE_NVM``: Used to select the location of test results. It can take either 0
417 (RAM) or 1 (non-volatile memory like flash) as test results storage. Default
418 value is 0, as writing to the flash significantly slows tests down.
419
420FWU test images build options
421'''''''''''''''''''''''''''''
422
423- ``FIRMWARE_UPDATE``: Whether the Firmware Update test images (i.e.
424 ``NS_BL1U`` and ``NS_BL2U``) should be built. The default value is 0. The
425 platform makefile is free to override this value if Firmware Update is
426 supported on this platform.
427
Alexei Fedorov2af32582019-10-29 14:06:54 +0000428Arm FVP platform specific build options
429'''''''''''''''''''''''''''''''''''''''
430
431- ``FVP_MAX_PE_PER_CPU``: Sets the maximum number of PEs implemented on any CPU
432 in the system. It can take either 1 or 2 values. This option defaults to 1.
433
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200434Checking source code style
435--------------------------
436
437When making changes to the source for submission to the project, the source must
438be in compliance with the Linux style guide. To assist with this, the project
439Makefile provides two targets, which both utilise the ``checkpatch.pl`` script
440that ships with the Linux source tree.
441
442To check the entire source tree, you must first download copies of
443``checkpatch.pl``, ``spelling.txt`` and ``const_structs.checkpatch`` available
444in the `Linux master tree`_ scripts directory, then set the ``CHECKPATCH``
445environment variable to point to ``checkpatch.pl`` (with the other 2 files in
446the same directory).
447
448Then use the following command:
449
450::
451
452 make CHECKPATCH=<path-to-linux>/linux/scripts/checkpatch.pl checkcodebase
453
454To limit the coding style checks to your local changes, use:
455
456::
457
458 make CHECKPATCH=<path-to-linux>/linux/scripts/checkpatch.pl checkpatch
459
460By default, this will check all patches between ``origin/master`` and your local
461branch. If you wish to use a different reference commit, this can be specified
462using the ``BASE_COMMIT`` variable.
463
464Running the TF-A Tests
465----------------------
466
467Refer to the sections `Running the software on FVP`_ and `Running the software
468on Juno`_ in `TF-A User Guide`_. The same instructions mostly apply to run the
469TF-A Tests on those 2 platforms. The difference is that the following images are
470not needed here:
471
472- Normal World bootloader. The TFTF replaces it in the boot flow;
473
474- Linux Kernel;
475
476- Device tree;
477
478- Filesystem.
479
480In other words, only the following software images are needed:
481
482- ``BL1`` firmware image;
483
484- ``FIP`` image containing the following images:
John Tsichritzis4586e0d2018-10-18 10:00:28 +0100485
486 - ``BL2``;
487 - ``SCP_BL2`` if required by the platform (e.g. Juno);
488 - ``BL31``;
489 - ``BL32`` (optional);
490 - ``tftf.bin`` (standing as the BL33 image).
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200491
Joel Huttond18c45f2019-02-08 14:33:52 +0000492Running the manual tests on FVP
493```````````````````````````````
494The manual tests rely on storing state in non-volatile memory (NVM) across
495reboot. On FVP the NVM is not persistent across reboots, so the following
496flag must be used to write the NVM to a file when the model exits.
497
498::
Joel Huttond18c45f2019-02-08 14:33:52 +0000499 -C bp.flashloader0.fnameWrite=[filename]
500
Joel Hutton941bec52019-03-22 16:40:33 +0000501To ensure the model exits on shutdown the following flag must be used:
502
503::
504 -C bp.ve_sysregs.exit_on_shutdown=1
505
Joel Huttond18c45f2019-02-08 14:33:52 +0000506After the model has been shutdown, this file must be fed back in to continue
507the test. Note this flash file includes the FIP image, so the original fip.bin
508does not need to be passed in. The following flag is used:
509
510::
511
512 -C bp.flashloader0.fname=[filename]
513
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200514Running the FWU tests
515`````````````````````
516
517As previously mentioned in section `Putting it all together`_, there are a
518couple of extra images involved when running the FWU tests. They need to be
519loaded at the right addresses, which depend on the platform.
520
521FVP
522'''
523
524In addition to the usual BL1 and FIP images, the following extra images must be
525loaded:
526
527- ``NS_BL1U`` image at address ``0x0BEB8000`` (i.e. NS_BL1U_BASE macro in TF-A)
528- ``FWU_FIP`` image at address ``0x08400000`` (i.e. NS_BL2U_BASE macro in TF-A)
529- ``Backup FIP`` image at address ``0x09000000`` (i.e. FIP_BKP_ADDRESS macro in
530 TF-A tests).
531
532An example script is provided in `scripts/run_fwu_fvp.sh`_.
533
534Juno
535''''
536
537The same set of extra images and load addresses apply for Juno as for FVP.
538
539The new images must be programmed in flash memory by adding some entries in the
540``SITE1/HBI0262x/images.txt`` configuration file on the Juno SD card (where
541``x`` depends on the revision of the Juno board). Refer to the `Juno Getting
542Started Guide`_, section 2.3 "Flash memory programming" for more
543information. Users should ensure these do not overlap with any other entries in
544the file.
545
546Addresses in this file are expressed as an offset from the base address of the
547flash (that is, ``0x08000000``).
548
549::
550
551 NOR10UPDATE: AUTO ; Image Update:NONE/AUTO/FORCE
552 NOR10ADDRESS: 0x00400000 ; Image Flash Address
553 NOR10FILE: \SOFTWARE\fwu_fip.bin ; Image File Name
554 NOR10LOAD: 00000000 ; Image Load Address
555 NOR10ENTRY: 00000000 ; Image Entry Point
556
557 NOR11UPDATE: AUTO ; Image Update:NONE/AUTO/FORCE
558 NOR11ADDRESS: 0x03EB8000 ; Image Flash Address
559 NOR11FILE: \SOFTWARE\ns_bl1u.bin ; Image File Name
560 NOR11LOAD: 00000000 ; Image Load Address
561 NOR11ENTRY: 00000000 ; Image Load Address
562
563 NOR12UPDATE: AUTO ; Image Update:NONE/AUTO/FORCE
564 NOR12ADDRESS: 0x01000000 ; Image Flash Address
565 NOR12FILE: \SOFTWARE\backup_fip.bin ; Image File Name
566 NOR12LOAD: 00000000 ; Image Load Address
567 NOR12ENTRY: 00000000 ; Image Entry Point
568
569--------------
570
571.. [#] Therefore, the Trusted Board Boot feature must be enabled in TF-A for
572 the FWU test images to work. Please refer the `TF-A User guide`_ for
573 further details.
574
575.. [#] Therefore, the Secure Partition Manager must be enabled in TF-A for
Antonio Nino Diazabb570e2019-03-25 13:13:57 +0000576 any of the test Secure Partitions to work. Please refer to the `TF-A User
577 guide`_ for further details.
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200578
579--------------
580
Madhukar Pappireddy28f11312020-01-07 00:28:49 -0600581*Copyright (c) 2018-2020, Arm Limited. All rights reserved.*
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200582
583.. _Development Studio 5 (DS-5): https://developer.arm.com/products/software-development-tools/ds-5-development-studio
584
585.. _FVP models: https://developer.arm.com/products/system-design/fixed-virtual-platforms
586
Madhukar Pappireddy28f11312020-01-07 00:28:49 -0600587.. _AArch32 GNU cross-toolchain: https://developer.arm.com/-/media/Files/downloads/gnu-a/9.2-2019.12/binrel/gcc-arm-9.2-2019.12-x86_64-arm-none-eabi.tar.xz
588.. _AArch64 GNU cross-toolchain: https://developer.arm.com/-/media/Files/downloads/gnu-a/9.2-2019.12/binrel/gcc-arm-9.2-2019.12-x86_64-aarch64-none-elf.tar.xz
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200589
590.. _Linux master tree: https://github.com/torvalds/linux/tree/master/
591
Sandrine Bailleuxb308d012019-04-10 09:30:10 +0200592.. _TF-A: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/about
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200593.. _Trusted Firmware-A (TF-A): TF-A_
Sandrine Bailleuxb308d012019-04-10 09:30:10 +0200594.. _EL3 payload boot flow: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/about/docs/user-guide.rst#el3-payloads-alternative-boot-flow
595.. _TF-A User Guide: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/about/docs/user-guide.rst
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200596.. _Firmware Update: FWU_
Sandrine Bailleuxb308d012019-04-10 09:30:10 +0200597.. _FWU: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/about/docs/firmware-update.rst
598.. _FWU state machine: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/about/docs/firmware-update.rst#fwu-state-machine
599.. _Running the software on FVP: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/about/docs/user-guide.rst#running-the-software-on-fvp
600.. _Running the software on Juno: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/about/docs/user-guide.rst#running-the-software-on-juno
601.. _Building FIP images with support for Trusted Board Boot: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/about/docs/user-guide.rst#building-fip-images-with-support-for-trusted-board-boot
602.. _Secure partition Manager: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/about/docs/secure-partition-manager-design.rst
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +0200603
604.. _EL3 test payload README file: ../el3_payload/README
605.. _scripts/run_fwu_fvp.sh: ../scripts/run_fwu_fvp.sh
606
607.. _ARM Management Mode Interface: http://infocenter.arm.com/help/topic/com.arm.doc.den0060a/DEN0060A_ARM_MM_Interface_Specification.pdf
608.. _Juno Getting Started Guide: http://infocenter.arm.com/help/topic/com.arm.doc.dui0928e/DUI0928E_juno_arm_development_platform_gsg.pdf