boards: stm32l562e_dk: Enable TF-M IPC application
This commit enables the TF-M IPC sample application on stm32l562e_dk board. It provides device tree flash partition as an overlay in order to configure and flash the bl2, secure/non secure firmwares. Signed-off-by: Yestin Sun <sunyi0804@gmail.com>
This commit is contained in:
parent
fd4e51754f
commit
46cab056bc
4 changed files with 70 additions and 9 deletions
|
@ -14,6 +14,7 @@ config TFM_BOARD
|
||||||
default "nxp/lpcxpresso55s69" if BOARD_LPCXPRESSO55S69_CPU0
|
default "nxp/lpcxpresso55s69" if BOARD_LPCXPRESSO55S69_CPU0
|
||||||
default "mps2/an521" if BOARD_MPS2_AN521
|
default "mps2/an521" if BOARD_MPS2_AN521
|
||||||
default "stm/nucleo_l552ze_q" if BOARD_NUCLEO_L552ZE_Q
|
default "stm/nucleo_l552ze_q" if BOARD_NUCLEO_L552ZE_Q
|
||||||
|
default "stm/stm32l562e_dk" if BOARD_STM32L562E_DK
|
||||||
default "musca_b1" if BOARD_MUSCA_B1
|
default "musca_b1" if BOARD_MUSCA_B1
|
||||||
default "musca_s1" if BOARD_MUSCA_S1
|
default "musca_s1" if BOARD_MUSCA_S1
|
||||||
help
|
help
|
||||||
|
|
|
@ -103,33 +103,38 @@ Or, post build:
|
||||||
|
|
||||||
$ ninja run
|
$ ninja run
|
||||||
|
|
||||||
On ST Nucleo L552ZE Q:
|
On ST Nucleo L552ZE Q or STM32L562E-DK Discovery:
|
||||||
======================
|
=================================================
|
||||||
|
|
||||||
This sample was tested on Ubuntu 18.04 with Zephyr SDK 0.11.3.
|
This sample was tested on Ubuntu 18.04 with Zephyr SDK 0.11.3.
|
||||||
|
|
||||||
Build Zephyr with a non-secure configuration:
|
Build Zephyr with a non-secure configuration:
|
||||||
|
|
||||||
|
Example, for building non-secure configuration for Nucleo L552ZE Q
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ west build -b nucleo_l552ze_q_ns samples/tfm_integration/tfm_ipc/
|
$ west build -b nucleo_l552ze_q_ns samples/tfm_integration/tfm_ipc/
|
||||||
|
|
||||||
Two scripts are avalaible in the ``build/tfm`` folder:
|
Example, for building non-secure configuration for STM32L562E-DK Discovery
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
$ west build -b stm32l562e_dk_ns samples/tfm_integration/tfm_ipc/
|
||||||
|
|
||||||
|
The script to initialize the device is avalaible in the ``build/tfm`` folder:
|
||||||
|
|
||||||
- ``regression.sh``: Sets platform option bytes config and erase platform.
|
- ``regression.sh``: Sets platform option bytes config and erase platform.
|
||||||
- ``TFM_UPDATE.sh``: Writes bl2, secure, and non secure image in target.
|
|
||||||
|
|
||||||
Run them in the following order to flash the board:
|
Run them in the following order to flash the board:
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
$ ./build/tfm/regression.sh
|
$ ./build/tfm/regression.sh
|
||||||
$ ./build/tfm/TFM_UPDATE.sh
|
$ west flash --hex-file build/tfm_merged.hex
|
||||||
|
|
||||||
Reset the board.
|
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
Note that ``arm-none-eabi-gcc`` should be available in the PATH variable and that ``STM32_Programmer_CLI`` is required to run ``regression.sh`` and ``TFM_UPDATE.sh`` (see https://www.st.com/en/development-tools/stm32cubeprog.html). If you are still having trouble running these scripts, check the Programming and Debugging section of the :ref:`nucleo_l552ze_q_board` documentation.
|
Note that ``arm-none-eabi-gcc`` should be available in the PATH variable and that ``STM32_Programmer_CLI`` is required to run ``regression.sh`` (see https://www.st.com/en/development-tools/stm32cubeprog.html). If you are still having trouble running these scripts, check the Programming and Debugging section of the :ref:`nucleo_l552ze_q_board` or :ref:`stm32l562e_dk_board` documentation.
|
||||||
|
|
||||||
On LPCxpresso55S69:
|
On LPCxpresso55S69:
|
||||||
===================
|
===================
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2021 Yestin Sun
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* This partition table should be used along with TFM configuration:
|
||||||
|
* - TFM_PSA_API=ON (IPC)
|
||||||
|
* - ISOLATION_LEVEL 2
|
||||||
|
* - TEST_S=ON (REGRESSION)
|
||||||
|
* - TEST_NS=OFF (By default)
|
||||||
|
*
|
||||||
|
* In this configuration, TFM binary includes tests. As a consequence,
|
||||||
|
* its size is bloated and it is not possible to set secondary partitions
|
||||||
|
* for secured or non secured images.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/ {
|
||||||
|
chosen {
|
||||||
|
zephyr,code-partition = &slot1_partition;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&flash0 {
|
||||||
|
|
||||||
|
partitions {
|
||||||
|
compatible = "fixed-partitions";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
boot_partition: partition@0 {
|
||||||
|
label = "mcuboot";
|
||||||
|
reg = <0x00000000 0x00013000>;
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
/* Secure image primary slot */
|
||||||
|
slot0_partition: partition@00013000 {
|
||||||
|
label = "image-0";
|
||||||
|
reg = <0x00013000 0x00038000>;
|
||||||
|
};
|
||||||
|
/* Non-secure image primary slot */
|
||||||
|
slot1_partition: partition@0004B000 {
|
||||||
|
label = "image-1";
|
||||||
|
reg = <0x0004B000 0x0002A000>;
|
||||||
|
};
|
||||||
|
/*
|
||||||
|
* The flash starting at 0x7F000 and ending at
|
||||||
|
* 0x80000 is reserved for the application.
|
||||||
|
*/
|
||||||
|
storage_partition: partition@7F000 {
|
||||||
|
label = "storage";
|
||||||
|
reg = <0x0007F000 0x00001000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
|
@ -7,7 +7,7 @@ tests:
|
||||||
tags: introduction tfm
|
tags: introduction tfm
|
||||||
platform_allow: mps2_an521_nonsecure lpcxpresso55s69_ns
|
platform_allow: mps2_an521_nonsecure lpcxpresso55s69_ns
|
||||||
nrf5340dk_nrf5340_cpuappns nrf9160dk_nrf9160ns nucleo_l552ze_q_ns
|
nrf5340dk_nrf5340_cpuappns nrf9160dk_nrf9160ns nucleo_l552ze_q_ns
|
||||||
v2m_musca_s1_nonsecure
|
stm32l562e_dk_ns v2m_musca_s1_nonsecure
|
||||||
harness: console
|
harness: console
|
||||||
harness_config:
|
harness_config:
|
||||||
type: multi_line
|
type: multi_line
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue