1. Configure non-secure target name to NU_M2354 (targets/targets.json). No NU_M2354_NS alias
2. Following template target, enable image signing and concatenating in post-build process
(1) Add post-build script (tools/targets).
(2) Enable TF-M custom build by centralize relevant stuff imported from TF-M (COMPONENT_TFM_S_FW).
3. Add M2354Code.merge_secure into whitelist of uvision6 (tools/export/uvision/__init__.py).
4. Add M2354 CMSIS pack database (tools/arm_pack_manager/index.json).
5. Configure stdio baudrate to 115200 to match TF-M port (platform/mbed_lib.json).
6. Define CMSIS_NVIC_VIRTUAL to override NVIC_SystemReset with TF-M version (cmsis_nvic_virtual.h).
7. Override tfm_ns_interface_xxx(...) to enable NS secure call:
(1) At pre-rtos stage
(2) In SVC context
8. Implement secure function call with tfm_platform_ioctl(...).
9. Combine stddriver_secure.h/c and hal_secure.h/c into platform_extra_secure.h/c.
10. Fix peripheral base to non-secure (PeripheralNames.h) (TrustZone-unaware since Mbed OS 6.0).
11. Fix NU_PORT_BASE/NU_GET_GPIO_PIN_DATA/NU_SET_GPIO_PIN_DATA to non-secure (PinNamesCommon.h) (TrustZone-unaware since Mbed OS 6.0).
12. NSC convention for StdDriver sys/clk (both TF-M and Mbed must follow)
(1) SYS_ResetModule
Usage: Replaced with SYS_ResetModule_S on Mbed OS
Action: Make it inaccessible from Mbed (neither source nor NSC). Provide SYS_ResetModule_S on Mbed via platform ioctl instead.
(2) CLK_GetXxx
Usage: Called in bpwm/i2s/qspi/sc/sdh and system_M2354 on Mbed OS
Action: Make them inaccessible from Mbed (neither source nor NSC). Re-provide them on Mbed via platform ioctl instead.
13. Remove DISABLE/ENABLE macro definitions in BSP to avoid name conflict with other modules
14. Change to TMR4/5 from TMR2/3 for implementing us_ticker/lp_ticker because TMR2 is used for TF-M NSPE test
15. Support cmake
NOTE: Export(uvision6) doesn't support TF-M target. To enable it for partial compile on Keil, force below function to return true.
is_target_supported(tools/export/uvision/__init__.py)
Passed GreenTea CI.
Added RZ_A2XX and GR_MANGO to targets.json.
Added RZ_A2XX to mbedlib.json in lwipstack and netsocket/ppp.
Added TARGET_RZ_A2XX directory to targets/TARGET_RENESAS.
Added TARGET_RENESAS_EMAC directory to features/netsocket/emac-drivers.
Moved TARGET_RZ_A1_EMAC directory into the TARGET_RENESAS_EMAC directory below and renamed to TARGET_RZ_A1XX.
Added TARGET_RZ_A2XX directory to features/netsocket/emac-drivers/TARGET_RENESAS_EMAC.
Per feedback from STM the correct ROM size is 1 MB, instead of
16 MB. The KEIL source information is (in the pack itself) wrong, since
the KEIL webpage lists it as a 16 MB part, too - but if you look into
other sources - it is indeed 1 MB.
Update the CMSIS-pack info to `index.json` in arm_pack_manager -folder.
The update happens via python project.py --update-packs and a modified
version of the cmsis-pack-manager tool, which allows the download of
(most) CMSIS-pack files. The changes for this family ONLY are then updated
to the `index.json` -file.
Mbed OS PR #12093 need this change, as they refer to a target (device_name)
from the updated CMSIS-packs.
Ref: https://github.com/ARMmbed/mbed-os/pull/12093
Manually replaced the existing STM32H7 section and replaced it with the
context of updated `index.json` that pulled in the Keil packs available
today, as of 18th October, 2019.
See related PR; https://github.com/ARMmbed/mbed-os/pull/11707