1Corstone SSE-300 with Ethos-U55 Example Subsystem for MPS3 (AN552) and FVP
2==========================================================================
3
4Building TF-M
5-------------
6
7Follow the instructions in :doc:`Building instructions </building/tfm_build_instruction>`.
8Build instructions with platform name: arm/mps3/an552
9``-DTFM_PLATFORM=arm/mps3/an552``
10
11.. note::
12
13   This platform support does not provide software for Ethos-U55 IP, only
14   contains base address and interrupt number for it.
15
16.. note::
17
18   The built binaries can be run on both the Corstone-300 Ethos-U55 Ecosystem
19   FVP (FVP_SSE300_MPS3) and Corstone SSE-300 with Ethos-U55 Example Subsystem
20   for MPS3 (AN552). For the FVP, at least version 11.16 is required.
21
22To run the example code on AN552
23--------------------------------
24FPGA image is available to download `here <https://developer.arm.com/tools-and-software/development-boards/fpga-prototyping-boards/download-fpga-images>`__
25
26To run BL2 bootloader and TF-M example application and tests in the MPS3 board,
27it is required to have AN552 image in the MPS3 board SD card. The image should
28be located in ``<MPS3 device name>/MB/HBI<BoardNumberBoardrevision>/AN552``
29
30The MPS3 board tested is HBI0309C.
31
32#. Copy ``bl2.bin`` and ``tfm_s_ns_signed.bin`` files from
33   build dir to ``<MPS3 device name>/SOFTWARE/``
34#. Rename ``tfm_s_ns_signed.bin`` to ``tfm.bin`` (Filename should not be longer
35   than 8 charachters.)
36#. Open ``<MPS3 device name>/MB/HBI0309C/AN552/images.txt``
37#. Update the ``images.txt`` file as follows::
38
39    TITLE: Arm MPS3 FPGA prototyping board Images Configuration File
40
41    [IMAGES]
42    TOTALIMAGES: 2                     ;Number of Images (Max: 32)
43
44    IMAGE0UPDATE: AUTO                 ;Image Update:NONE/AUTO/FORCE
45    IMAGE0ADDRESS: 0x00000000          ;Please select the required executable program
46    IMAGE0FILE: \SOFTWARE\bl2.bin
47    IMAGE1UPDATE: AUTO
48    IMAGE1ADDRESS: 0x02000000
49    IMAGE1FILE: \SOFTWARE\tfm.bin
50
51#. Close ``<MPS3 device name>/MB/HBI0309C/AN552/images.txt``
52#. Unmount/eject the ``<MPS3 device name>`` unit
53#. Reset the board to execute the TF-M example application
54#. After completing the procedure you should be able to visualize on the serial
55   port (baud 115200 8n1) the following messages::
56
57    [INF] Starting bootloader
58    [INF] Swap type: none
59    [INF] Swap type: none
60    [INF] Bootloader chainload address offset: 0x0
61    [INF] Jumping to the first image slot
62    [Sec Thread] Secure image initializing!
63    Booting TFM v1.4.0
64    [Crypto] Dummy Entropy NV Seed is not suitable for production!
65    Non-Secure system starting...
66
67.. note::
68
69   Some of the messages above are only visible when ``CMAKE_BUILD_TYPE`` is set
70   to ``Debug``.
71
72To run the example code on Corstone-300 Ethos-U55 Ecosystem FVP
73---------------------------------------------------------------
74FVP is available to download `here <https://developer.arm.com/tools-and-software/open-source-software/arm-platforms-software/arm-ecosystem-fvps>`__
75
76#. Install the FVP
77#. Copy ``bl2.axf`` and ``tfm_s_ns_signed.bin`` files from
78   build dir to ``<FVP installation path>/models/Linux64_GCC-6.4/``
79#. Navigate to the same directory and execute the following command to start FVP::
80
81    $ ./FVP_Corstone_SSE-300_Ethos-U55 -a cpu0*="bl2.axf" --data "tfm_s_ns_signed.bin"@0x01000000
82
83#. After completing the procedure you should be able to visualize on the serial
84   port the following messages::
85
86    Trying 127.0.0.1...
87    Connected to localhost.
88    Escape character is '^]'.
89    [INF] Starting bootloader
90    [INF] Swap type: none
91    [INF] Swap type: none
92    [INF] Bootloader chainload address offset: 0x0
93    [INF] Jumping to the first image slot
94    [Sec Thread] Secure image initializing!
95    Booting TFM v1.4.0
96    [Crypto] Dummy Entropy NV Seed is not suitable for production!
97    Non-Secure system starting...
98
99.. note::
100
101   Some of the messages above are only visible when ``CMAKE_BUILD_TYPE`` is set
102   to ``Debug``.
103
104-------------
105
106*Copyright (c) 2020-2022, Arm Limited. All rights reserved.*
107