mbed-os/tools/psa
Oren Cohen ae4341e8db Refactor PSA code generators
* Unify PSA generators
* Replace scanning for mbed_spm templates with json
* Make generate_source_files and parse_manifests common
* Make assert_int an internal function
* Use parse_manifests in pytests
* Update docs
2019-04-10 14:15:28 +03:00
..
mbed_spm Refactor PSA code generators 2019-04-10 14:15:28 +03:00
tfm Add {# End of file #} for TF-M templates 2019-03-28 10:40:57 +02:00
README.md Refactor PSA code generators 2019-04-10 14:15:28 +03:00
__init__.py Add bootloader support for the LPC55S69 board 2019-03-16 00:13:40 +02:00
generate_partition_code.py Refactor PSA code generators 2019-04-10 14:15:28 +03:00
mbed_spm_tfm_common.py Refactor PSA code generators 2019-04-10 14:15:28 +03:00
partition_description_schema.json Consolidating tools/tfm and tools/spm into tools/psa 2019-02-19 15:19:06 +02:00
release.py Check that required toolchains are in PATH 2019-04-07 18:49:35 +03:00

README.md

PSA tools

This document describes the following scripts:

  • __init__.py
  • generate_partition_code.py
  • mbed_spm_tfm_common.py
  • release.py

__init__.py

This file holds common functions dedicated to help SiP with their post-build logic.

  • find_secure_image - Scans a Resource object to find the correct binary of the secure image to merge with the non-secure build.

Code generation scripts

Mbed OS holds two implementations of PSA:

  • MBED_SPM - Implementation for dual-core v7 targets.
  • TF-M - Implementation for v8 targets.

Each implementation requires a set of auto-generated files describing the secure partitions:

  • generate_partition_code.py - Generate files for both implementations.
  • mbed_spm_tfm_common.py - Holds common functions for both.

Secure image generation

release.py is the script assigned with compiling the secure images:

usage: release.py [-h] [-m MCU] [-d] [-q] [-l] [--commit] [--skip-tests]
                  [-x ...]

optional arguments:
  -h, --help           show this help message and exit
  -m MCU, --mcu MCU    build for the given MCU
  -d, --debug          set build profile to debug
  -q, --quiet          No Build log will be printed
  -l, --list           Print supported PSA secure targets
  --commit             create a git commit for each platform
  --skip-tests         skip the test build phase
  -x ..., --extra ...  additional build parameters
  • When MCU is not specified, the script compiles all the images for all the targets.
  • When -d/--debug is not specified, the script compiles the images using the release profile.
  • When --commit is not specified, the script will not commit the images to git.
  • A user can specify additional commands that will be passed on to the build commands (Ex. -D for compilation defines).

This script should be run in following scenarios:

  • Release.
  • Update to files originating in the secure side.
  • Drivers update.
  • PSA updates.