Commit Graph

3562 Commits (75544a7ce0e3d89abc27b12b23f8045d73695e45)

Author SHA1 Message Date
Wilfried Chauveau d4e9267542
disable compilation in CI 2020-06-22 14:15:52 +01:00
Roman Okhrimenko fc42c74e7b Rework find_policy() in post build script to enable default locations 2020-06-19 16:16:54 +03:00
Roman Okhrimenko f689c05db7 Modify post build scripts to support only cysecuretools signing 2020-06-19 16:16:47 +03:00
Jaeden Amero b38c5ed8e3 examples: Add PSA example to list of examples 2020-06-18 12:16:30 +01:00
Devaraj Ranganna cd88e724f7 psa: Add a script to validate PSA targets
Add a script to parse `targets.json` to identify PSA targets and ensure
mandatory parameters are configured correctly for all PSA targets.

Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
2020-06-18 12:16:29 +01:00
Devaraj Ranganna c9c593f7ca tools: Remove obsolete API
The API is_PSA_non_secure_target() uses obsolete labels to detect if a
target is PSA non-secure target and is not needed anymore.

Mbed OS depends on TF-M for PSA SPM and services. TF-M is built using
it's own build system. Therefore, we don't need to differentiate secure
and non-secure targets anymore in Mbed OS as all PSA targets in Mbed OS
are non-secure targets.

Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
2020-06-18 12:16:28 +01:00
Devaraj Ranganna 939ed6940c tools: Improve PSA target identification logic
Current logic `is_TFM_target` relies on the availability of attribute
`tfm_target_name` to identify PSA targets. The API `is_TFM_target` is
used in pytest to validate PSA target configuration which again checks
the availability of `tfm_target_name`. If a target doesn't contain the
attribute `tfm_target_name` then this check will fail instead of
catching it. Therefore, we now check for `TFM` config option in `labels`
attribute.

The API `is_TFM_target()` returns true for Mbed OS PSA targets which are
supported by TF-M also.

Add a new API `is_PSA_target()` which returns true for all Mbed OS PSA
targets.

Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
2020-06-18 12:16:26 +01:00
Devaraj Ranganna abccf97ebf psa: Import latest image signing scripts from TF-M
Import the latest image signing scripts from TF-M version
TF-Mv1.0-85-g3b7cc95a042c.

Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
2020-06-18 12:16:22 +01:00
Devaraj Ranganna 76e911c5ef psa: Replace Mbed PSA with TF-M
Add TF-M to Mbed OS, replacing the previous PSA implementation for
TF-M-capable targets. This commit adds files imported from TF-M, without
modification. The version of TF-M imported can be found in
`features/FEATURE_PSA/TARGET_TFM/VERSION.txt`.

These changes switch to TF-M as the sole PSA implementation for v8-M and
dual core targets, with TF-M running on the secure side and Mbed OS
running on the non-secure side. Single core v7-M targets will continue
to have PSA implemented via PSA emulation, implemented by Mbed OS.

Move or remove many PSA-implementing files, as PSA will be provided by
TF-M on non-single-v7-M targets. Delete any files that are not relevant
for PSA emulation mode.
 - Remove imported TF-M SPM
 - Remove Mbed SPM and tests
 - Remove Mbed-implemented PSA services and tests
 - Remove PSA_SRV_IMPL, PSA_SRV_IPC, PSA_SRV_EMUL and NSPE.
 - Replace PSA_SRV_EMUL and PSA_SRV_IMPL with MBED_PSA_SRV
 - Remove any files autogenerated by
   "tools/psa/generate_partition_code.py", which no longer exists.

Add new feature `PSA` to support PSA in Mbed OS.

Move the Mbed OS implementation of PSA services for v7-M targets (which
employ PSA emulation, and don't yet use TF-M) to
features/FEATURE_PSA/TARGET_MBED_PSA_SRV. Update the `requires`
attribute in TESTS/configs/baremetal.json to avoid breaking baremetal
testing builds.

Update .astyleignore to match new directory structure

Update Mbed TLS importer to place files into FEATURE_PSA

Create the following generic PSA targets:

* `PSA_Target` (Root level PSA generic target)
* `PSA_V7_M` (Single v7-M PSA generic target)
* `PSA_DUAL_CORE` (Dual-core PSA generic target)
* `PSA_V8_M` (v8-M PSA generic target)

Flatten MUSCA_NS and private MUSCA targets into public MUSCA targets.

Move mcuboot.bin to flat location (removing prebuilt folder)

Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
Signed-off-by: Jaeden Amero <jaeden.amero@arm.com>
2020-06-18 12:16:20 +01:00
Devaraj Ranganna e2af612a99 tools: Musca B1 signing strategy
Currently, the final binary (TF-M + Mbed OS) is signed after
concatenating TF-M and Mbed OS binaries. But TF-M signs the images
separately and then concatenates them. Update the Musca B1 signing
strategy to match TF-M.

Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
2020-06-18 12:16:16 +01:00
Vikas Katariya 8252f3ee6e psa: Add TF-M utility scripts to python path
When python3 is enforced to build the ARM_MUSCA_A1 or ARM_MUSCA_B1
targets, it is unable to find binary utility tool scripts which are
imported from TF-M.

The reason to use the python3 environment is as follows: Mbed OS + TFM
contained a faulty boot record TLV, which failed the attestation test
(TF-M regression). The data in the boot record TLV will be included in
the generated attestation token as 1 item in the SW_COMPONENTS claim.

This data (in the boot record TLV) is pre-encoded in CBOR format at
build time and appended to the image during the image signing process
(done by the imgtool Python3 script).

Signed-off-by: Vikas Katariya <vikas.katariya@arm.com>
2020-06-18 12:16:13 +01:00
Martin Kojtal 9fc12213f4
Merge pull request #13135 from MultiTechSystems/mts-mdot-bootloader
Restore MTS_MDOT_F411RE bootloader binary
2020-06-18 11:29:10 +02:00
Martin Kojtal 86dad5cda9
Merge pull request #12471 from AGlass0fMilk/adc-voltage-api
Extend AnalogIn API: read_voltage
2020-06-17 19:57:28 +02:00
Taylor Heck f145594b28 Restore MTS_MDOT_F411RE bootloader binary 2020-06-17 09:27:30 -05:00
Martin Kojtal 31748ed1a9
Merge pull request #13036 from jeromecoutant/PR_GENPERIPH_V12
STM32_gen_PeripheralPins.py script v1.12
2020-06-17 12:14:20 +02:00
Martin Kojtal 93be66e91e
Merge pull request #13081 from ARMmbed/rw-post-build-hooks
Reinstate post build hooks for legacy targets
2020-06-10 12:02:05 +02:00
Rob Walton f8f59fc1ef Add a coverage_patterns kwarg to ARM_MICRO 2020-06-09 09:41:08 +01:00
Rob Walton 6ee9b161e3 Reintroduce mts_dot combine_bins. 2020-06-08 13:12:23 +01:00
Rob Walton 422931208c Reintroduce LPC4088 and Teensy3.1 post build hooks 2020-06-08 13:11:49 +01:00
Rob Walton 756fc381a9 Reintroduce NRF51 post-build hook.
The online compiler relies on this post build hook for NRF51 targets.
2020-06-08 13:08:40 +01:00
jeromecoutant dbe8e93660 STM32_gen_PeripheralPins.py script v1.12
- license header update
- TIM_MST default value
- PinNames.h is now complete
2020-06-08 11:09:52 +02:00
pea-pod 1de7008f8b Python reference equality changed to value equality 2020-06-07 15:47:43 -05:00
Wilfried Chauveau dbf206c304
add mbed-os-example-aws to the test build list 2020-06-05 15:36:20 +01:00
Anna Bridge ced3b1cf8e
Merge pull request #13003 from dgreen-arm/add-feature-experimental
Mark PSA as an experimental API
2020-06-01 16:38:30 +01:00
Darryl Green 7aadee9ab7 Add experimental feature folder
Signed-off-by: Darryl Green <darryl.green@arm.com>
2020-05-29 13:19:11 +01:00
Darryl Green cf17d7a178 Change unrecognised features to a warning, rather than error
Give a warning rather than error if an unrecognised feature is used.
This will help compatibility when new features are added.

Signed-off-by: Darryl Green <darryl.green@arm.com>
2020-05-29 13:19:11 +01:00
Jaeden Amero 4e47c38701 tools: Fix grammar in feature error message
Use "not a supported feature" instead of "not a supported features".
2020-05-27 16:37:59 +01:00
Martin Kojtal c7759fe505
Merge pull request #13008 from Patater/armc5-usage-warning-compat
tools: Warn when ARMC5 is no longer supported
2020-05-27 10:57:36 +02:00
Jaeden Amero 5e65cf7f4d tools: Support default_lib and c_lib
For backwards compatibility reasons, since the latest Mbed OS tools must
be able to build any previous online-compiler-supported version of Mbed
OS, allow targets to use `default_lib` or `c_lib`. This should enable
the tools to work with Mbed OS 5 style targets.json.
2020-05-26 10:47:13 +01:00
Alexander Zilberkant 136897f829 always build both .hex and .bin files
- This change will cause build-system to produce both .bin and .hex files.
- Files are small and their creation is fast, thus there are  no negative impact
   on build time and storage requirements.
- .bin files are required for updating the device
- .hex files are very handy for post build (external to build system) custom
   scripts (e.g. image signing)
- Configuration still allows selecting either .bin or .hex files, this settings is still
   relevant as it specifies what file is flashed to a device for tests or by
   `--flash` argument.
2020-05-23 23:56:58 +03:00
Jaeden Amero a5a544408d tools: Warn when ARMC5 is no longer supported
Update the warning when ARMC5 is used to specify the conditions under
which ARMC5 is no longer supported.
2020-05-22 15:39:01 +01:00
Jaeden Amero 64f19281d3 Revert "Add the exception in Mbed OS build tool for Arm Compiler 5 toolchain."
For backwards compatibility reasons, as the Mbed tools must be able to
build any online-compiler-supported version of Mbed, revert back to
emitting a warning when ARMC5 is used. This will enable ARMC5 to
continue working in the online compiler for Mbed OS 5 and other previous
versions. ARMC5 remains unsupported in Mbed 6.

This reverts commit 03d57b7ba2.
2020-05-22 15:39:01 +01:00
Jaeden Amero 8be07a4906 tools: Fix typo in comment 2020-05-22 14:51:58 +01:00
Martin Kojtal 1088fa0627 build tools: remove version 6 2020-05-19 14:28:26 +01:00
Martin Kojtal bcfa1f97e0 tools build: add 6 to the version check 2020-05-19 13:03:53 +01:00
Martin Kojtal 12cadc2e91 tools build: remove git diff typo 2020-05-19 12:43:24 +01:00
Martin Kojtal 5a9ad74818 targets: add version 6 to the toolchain 2020-05-19 11:14:18 +01:00
Martin Kojtal b43fc0cf1a build: target toolchain return
Revert back to the toolchain function. Although it should be refactored (return just list of toolchains from a target).
2020-05-19 10:23:20 +01:00
Martin Kojtal 07084a5212 tools build: add profile
To select supported_application_profiles attribute from targets
2020-05-18 19:31:22 +01:00
Martin Kojtal 59db9f692f tools build: return empty list for mbed2
We cant afford to raise an exception now. As anyone using this out there do not catch it. Rather
an empty list, as it can work after this fix - won't do anything.
2020-05-18 08:57:07 +01:00
Martin Kojtal 810b0262c1 tools build: fix toolchain tuple, should be list 2020-05-18 08:57:07 +01:00
Martin Kojtal 6e59bdd64d build: fix error syntax 2020-05-18 08:57:07 +01:00
Martin Kojtal caf58a7a44 tools/build_api: fix wording
Co-authored-by: Hugues Kamba <41612201+hugueskamba@users.noreply.github.com>
2020-05-18 08:57:07 +01:00
Martin Kojtal c489c213a7 build api: fix release version
This is non trivial fix as the function is being used outside of this repository.
Tools rely on it to return list of targets for 2 or 5. As we removed release_version from many targets,
this broke the logic. To keep the logic as it was, without updating all tools out there now,
lets just return full set of targets - all are supported.

In case for Mbed 2, returning all targets does not make sense, but rather raise an exception here. Not supported. This avoids suprised. If you look at build api functions there are many checks for 2 or 5 so more
clean up needed to actually get release_version out of the tools.
2020-05-18 08:57:06 +01:00
Martin Kojtal b1071487a3
Merge pull request #12951 from MarceloSalazar/S2LP_cleanup
Clean-up S2LP driver configuration
2020-05-15 08:08:47 +02:00
Martin Kojtal 37ee008b90
Merge pull request #12961 from MarceloSalazar/remove_nrf51
Remove nRF51 targets
2020-05-15 08:08:26 +02:00
Marcelo Salazar 149656447d Remove target dep. on S2LP driver 2020-05-14 17:17:27 +01:00
jeromecoutant cda2538bd2 STM32L0 code cleaning 2020-05-14 13:55:32 +02:00
jeromecoutant dd46dfccb2 STM32F4 code cleaning 2020-05-14 13:55:22 +02:00
jeromecoutant f116fe0daa STM32F3 code cleaning 2020-05-14 13:55:21 +02:00
jeromecoutant 126a9c9693 STM32F1 code cleaning 2020-05-14 13:55:21 +02:00
jeromecoutant a63fd00a9a STM32F0 code cleaning 2020-05-14 13:55:21 +02:00
Marcelo Salazar ccd95f1e14 Remove nRF51 targets
The following public nRF51 targets are being removed:

- NRF51822
- NRF51_DK
- NRF51_MICROBIT
2020-05-13 10:36:50 +01:00
Martin Kojtal e7e3cc0301 tools: update importer sha 2020-05-12 12:11:24 +01:00
Martin Kojtal 864a943070 importer: add CMSIS 5 repo link 2020-05-11 14:14:07 +01:00
Martin Kojtal 78b7a05426 importer: add a note about cherry pick continue for conflicts 2020-05-11 11:38:16 +01:00
Martin Kojtal 8859cb0dca importer: update readme 2020-05-11 11:37:21 +01:00
Martin Kojtal 9977458393 cmsis importer: add sha for rtx changes after file moved
cherry pick otherwise fails because the sources were moved under rtos/source. I manually resolved these patches. For the future, lets use these newer sha that should work.
2020-05-11 10:43:45 +01:00
Martin Kojtal 74a640f028 importer: remove rtos changed files
As they were applied on the different code base (moved files), we remove them and
reapply locally manually and add new sha.
2020-05-11 09:47:33 +01:00
Martin Kojtal 7b066eb1ba importer: fix rtos paths 2020-05-11 09:47:33 +01:00
Martin Kojtal 6d17a23421 importer: fix byte like objects 2020-05-11 09:47:33 +01:00
Marcelo Salazar 4083469d09 Remove Ublox targets 2020-05-06 16:39:29 +01:00
Marcelo Salazar 570df49abd Rename ADV_WISE_1510 target 2020-05-06 16:03:07 +01:00
Martin Kojtal 9501ccd6c7
Merge pull request #12849 from jamesbeyond/exp_update
TEST: Update example test
2020-05-05 14:26:41 +02:00
Martin Kojtal dbf05ceaed
Merge pull request #12735 from Patater/musca-tfm
Make MUSCA B1 and MUSCA A1 TF-M ready
2020-05-04 11:06:48 +02:00
George Beckstein 2db9917117 Add Vin and Vref to ignore list in spell checker CI 2020-04-30 12:40:17 -04:00
Martin Kojtal 08a09200a6
Merge pull request #12864 from MarceloSalazar/platform_cleanup3
Remove unsupported targets
2020-04-30 14:56:36 +02:00
Jaeden Amero 6f6a92c1eb musca_b1: Add TF-M compatibility
Make the MUSCA_B1 target TF-M compatible by doing the following:
    - Add flash, region definitions, and preprocessed image macros from
      TF-M (at version 6e7be077eabe "Core: Add lifecycle API")
    - Update the MUSCA_B1 linker script to create a flash image
      compatible with TF-M.
    - Update the tfm/bin_utils/assemble.py signing script to work with
      preprocessed image macros rather than flat C pre-processor defines

Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
Signed-off-by: Jaeden Amero <jaeden.amero@arm.com>
2020-04-30 11:36:09 +01:00
Devaraj Ranganna 0ad1a988ec musca_a1: Add TF-M compatibility
Make the MUSCA_A1 target TF-M compatible by doing the following:
    - Add flash, region definitions, and preprocessed image macros from
      TF-M (at version 6e7be077eabe "Core: Add lifecycle API")
    - Update the MUSCA_A1 linker script to create a flash image
      compatible with TF-M.
    - Update the tfm/bin_utils/assemble.py signing script to work with
      preprocessed image macros rather than flat C pre-processor defines

Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
Signed-off-by: Jaeden Amero <jaeden.amero@arm.com>
2020-04-30 11:35:05 +01:00
Martin Kojtal d1ae0d570c
Merge pull request #12425 from kjbracey-arm/chrono
C++ Chrono support
2020-04-30 11:41:43 +02:00
Marcelo Salazar 84bad91489 Remove NRF51_DONGLE target 2020-04-30 09:56:37 +01:00
Marcelo Salazar 6899f6903c Remove TY51822R3 target 2020-04-30 09:56:37 +01:00
Marcelo Salazar 7c8b16f3c9 Remove HRM1017 target 2020-04-30 09:56:36 +01:00
Marcelo Salazar 0864aa86be Remove NCS36510 target 2020-04-30 09:56:36 +01:00
Marcelo Salazar 7925a468a9 Remove KL05Z target 2020-04-30 09:56:36 +01:00
Marcelo Salazar a3dc513d35 Remove MTS_MDOT_F405RG target 2020-04-30 09:56:36 +01:00
Marcelo Salazar f556199094 Remove LPC11U37H_401 target 2020-04-30 09:56:36 +01:00
Marcelo Salazar cbe6cc79cb Remove NRF51822_Y5_MBUG 2020-04-30 09:56:36 +01:00
Marcelo Salazar e2136cc395 Remove MAXWSNENV target 2020-04-30 09:56:36 +01:00
Marcelo Salazar a770e65a05 Remove WALLBOT_BLE target 2020-04-30 09:56:36 +01:00
MarceloSalazar f21759bc35 Remove TEENSY3_1 target 2020-04-30 09:56:35 +01:00
MarceloSalazar 1553868748 Remove TB_SENSE_1 target 2020-04-30 09:56:35 +01:00
MarceloSalazar e24a9f5d95 Remove KW24D target 2020-04-30 09:56:34 +01:00
MarceloSalazar 3fa7f03508 Remove RAPIDIOT targets 2020-04-30 09:56:33 +01:00
MarceloSalazar 5d63b0f5a0 Remove K20D50M target 2020-04-30 09:56:33 +01:00
MarceloSalazar d2741c1075 Remove LPC8x targets 2020-04-30 09:56:33 +01:00
MarceloSalazar 3ed5491ae5 Remove LPC1549 target 2020-04-30 09:56:33 +01:00
MarceloSalazar d96a19ea1d Remove LPC4330 target 2020-04-30 09:56:32 +01:00
MarceloSalazar 51c2484c06 Remove LPC1769 target 2020-04-30 09:56:32 +01:00
MarceloSalazar 20997ca6cb Remove RBLAB targets 2020-04-30 09:56:32 +01:00
MarceloSalazar 5dcfe57c41 Remove LPC4088 based targets 2020-04-30 09:56:32 +01:00
MarceloSalazar 12bb9d34bb Remove DELTA_DFCM_NNN40 target 2020-04-30 09:56:32 +01:00
Devaraj Ranganna b79b33219b psa: Remove exporters for TF-M targets
Targets that use TF-M for their PSA implementation are not compatible
with exporters at this time. Explicitly block use of exporters with TF-M
using targets, for better error messages.

Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
2020-04-27 09:51:14 +01:00
Devaraj Ranganna fd74d678a7 psa: Remove PSA secure binary building tools
The PSA-implementing secure binary is not built using Mbed OS build
tools anymore. Instead, the TrustedFirmware-M (TF-M) build system is
used to produce the secure binary. As such, we remove PSA related hooks
from the build system, remove PSA related scripts from tools/test
folder, and also remove the psa-autogen job from travis which was
running the now unecessary and removed generate_partition_code.py.

Remove the ability to generate new PSA binaries in the old manner, where
Mbed OS implements PSA. We don't yet remove any PSA binaries or break
the currently checked-in Mbed-implemented PSA support. PSA targets
integrated in the old manner will continue working at this point.

Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
Signed-off-by: Jaeden Amero <jaeden.amero@arm.com>
2020-04-27 09:51:14 +01:00
Jaeden Amero 6b3a9cb4fa psa: Remove v8-M S targets
Remove PSA v8-M S target binaries will be built outside of Mbed OS and
added in as binaries which NS targets consume. Mbed OS no longer
implements PSA for v8-M targets, so there is no reason for it to build
PSA S targets.

Signed-off-by: Jaeden Amero <jaeden.amero@arm.com>
2020-04-27 09:51:09 +01:00
Jaeden Amero af1ea31546 psa: Add copyright and #! to tfm tool
Add a copyright header and a shebang to the Mbed OS TrustedFirmware-M
tooling.

Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
Signed-off-by: Jaeden Amero <jaeden.amero@arm.com>
2020-04-27 09:43:01 +01:00
Kevin Bracey f4e0ea2c75 Add Chrono support to Kernel and SysTimer 2020-04-27 10:19:08 +03:00
Qinghao Shi ce88f0ea28 TEST: add log compare test for nfc examples 2020-04-23 20:33:02 +01:00
Martin Kojtal ecf4008046
Merge pull request #12825 from kjbracey-arm/linkinline
Turn on ARM linker --inline
2020-04-23 08:24:37 +02:00
Qinghao Shi a43394d0d6 TEST: change target that runs filesystem example 2020-04-22 17:41:32 +01:00