Commit Graph

146 Commits (dbbdb3f5bd2aec2aa03c0feace46e3c0d9400b61)

Author SHA1 Message Date
Martin Kojtal 3e42991289
Merge pull request #13046 from hugueskamba/hk_use_chrono
Use std::chrono based functions
2020-06-18 22:16:00 +02: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
Martin Kojtal 62c2431344
Merge pull request #12824 from kjbracey-arm/faultasm
Optimise fault handler assembly
2020-06-18 09:43:00 +02:00
Hugues Kamba a3f4cf212d Use std::chrono based functions
The chrono based functions improve readability. Using them also removes
warnings related to usage of deprecated warnings.
2020-06-17 14:52:50 +01:00
jeromecoutant a7c9601d08 OS timer uses LPTICKER by default, then USTICKER
This PR makes the bare-metal mode work automatically
regardless of the tickless-from-us-ticker setting
- in non RTOS mode
- and in RTOS tickless mode
2020-05-19 12:34:11 +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
Kevin Bracey 3f67eed31c Correct core RTOS sleep routine timing
Chrono conversions inadvertantly changed the core timed sleep routine
used by the RTOS idle to use `OsTimer::update_and_get_tick()` instead of
`OsTimer::get_tick()`.

Correct this, and expand/clarify documentation and naming to try to
prevent recurrence.

Another minor fix observed while inspecting code - `OsClock` can't just
use `milliseconds`, it should match the period of `OsTimer`, which
theoretically can be different.
2020-05-07 11:43:01 +03:00
Martin Kojtal d1ae0d570c
Merge pull request #12425 from kjbracey-arm/chrono
C++ Chrono support
2020-04-30 11:41:43 +02:00
Jaeden Amero fcf427ac11 psa: Remove S-mode only code
Remove all PSA S-mode only code, as it is unused. Only PSA S targets
would use the code, and we've removed those targets in a previous
commit.

Ensure all tests for S-mode code we are deleting is also removed, even
if that code would run in NS-mode. Keep any tests that also test our PSA
emulation support (for single v7-M targets).

Signed-off-by: Jaeden Amero <jaeden.amero@arm.com>
2020-04-27 09:51:13 +01:00
Kevin Bracey 8e3e19837a More Chrono test fixes
* Timer test - handle removal of Timer(ticker_data_t *)
* Timer test - use Chrono, don't test deprecated methods
* Kernel tick count test - TEST_ASSERT_WITHIN -> TEST_ASSERT_INT_WITHIN
* Mutex test - fix up Chrono changes
* SysTimer test - adapt to SysTimer Chrono changes
* Thread test - use Chrono
* SysTimer - devirtualize destructor
2020-04-27 10:19:08 +03:00
Kevin Bracey f4e0ea2c75 Add Chrono support to Kernel and SysTimer 2020-04-27 10:19:08 +03:00
Kevin Bracey b6a7a0896e Streamline crash data access
Use correctly-typed external definition for the crash data region, and
eliminate unnecessary pointer indirection.

Results in a small ROM saving even with crash capture disabled, as there
was a pointer for the fault context store in either case. The pointer
isn't needed, as the context store location is fixed according to the
configuration flag.
2020-04-24 10:59:13 +03:00
Kevin Bracey 03ce9190f9 Optimise fault handler assembly
Fault handler assembly was very simplistic. Optimise for a 112 byte saving.
2020-04-23 11:28:35 +03:00
Kevin Bracey c1641e79c5 Reformat except.S
Tidy up formatting, and make all 3 toolchain versions more consistent,
for ease of diffing and transferring changes between them.
2020-04-23 11:28:35 +03:00
Martin Kojtal d4da29840f
Merge pull request #12758 from hugueskamba/hk_fix_microlib_minimal_console
Fix: Return the correct std I/O device handle for Microlib in retarget code
2020-04-15 09:24:17 +02:00
Rajkumar Kanagaraj 83be3f24a5 Remove mbed wait deprecated APIs 2020-04-08 10:35:07 +01:00
Hugues Kamba eca09b7c17 Fix: Return the correct std I/O device handle for Microlib in retarget code
Return the correct filehandle based on the mode requested. The mode is used
as the pathname is always the default one (":tt") for Microlib. The
previous implementation relied on three successive calls to open the std
I/O device handles, this was not the case.
2020-04-07 13:10:20 +01:00
Martin Kojtal b090065dec
Merge pull request #12708 from rajkan01/ARM_compiler_version
Remove compatibility for Arm Compiler versions prior to 6.01.0050
2020-03-31 10:36:56 +02:00
Martin Kojtal 5a07aab474
Merge pull request #12569 from evva-sfw/feature/mbed-error-weak
Replace with weak mbed_error_hook implementation (deprecate the hook function)
2020-03-30 10:02:29 +02:00
Rajkumar Kanagaraj 47e68b20cb - Remove the pre-processor directive __ARMCC_VERSION >= 6010050
- Add the code prior to 6.01.0050 versions.
2020-03-27 14:37:01 +00:00
phst 413b6d62f4 Fix Astyle error 2020-03-25 15:37:13 +01:00
phst ac20dfc745 Fix Astyle error 2020-03-25 14:20:21 +01:00
Martin Kojtal ddd3b013e8
Merge pull request #12632 from evedon/ed-minimal-snprintf
Fix snprintf in minimal-printf library
2020-03-25 11:34:23 +01:00
Evelyne Donnaes a3c3656557 Removed mbed_minimal_formatted_string_character
mbed_minimal_formatted_string_character is no longer
required since fputc does the new line conversion.
This results in a small Flash saving.
2020-03-23 13:51:47 +00:00
Evelyne Donnaes 94acb5da50 Fix snprintf in minimal-printf library.
mbed_minimal_putchar assumed that buffer being NULL meant that it
should print to a file. This caused a system crash when calling
snprintf with both buffer and stream set to NULL.
It is valid to call snprintf with a NULL buffer; nothing should
be outputted, but the string length should be measured.
2020-03-23 13:46:12 +00:00
Rajkumar Kanagaraj eb40dbcc20 Remove ARMC5 reference from Mbed OS platform 2020-03-19 10:48:14 -07:00
Anna Bridge 33f3049286
Merge pull request #12233 from bulislaw/minimal_printf_default
Enable minimal-printf by default for all builds
2020-03-10 12:13:11 +00:00
Philipp Steiner 3dcd279fa1 correct comment 2020-03-05 09:13:55 +01:00
Philipp Steiner e3917e495a set mbed_set_error_hook() to deprecated 2020-03-05 08:49:17 +01:00
Philipp Steiner 17e8b9c756 Remove mbed_set_error_hook and replace with weak mbed_error_hook implementation 2020-03-04 12:21:22 +01:00
Martin Kojtal b611de8b6b
Merge pull request #12550 from rajkan01/mbedint_remove_deprecated
Remove mbed interface deprecated API
2020-03-04 08:22:27 +00:00
Martin Kojtal 6e6603f97d
Merge pull request #12534 from rajkan01/callchain_remove_deprecated
Remove the deprecated CallChain class and its APIs
2020-03-03 14:57:59 +00:00
Martin Kojtal d94965f38d
Merge pull request #12508 from evedon/ed-mprintf-stack-overflow
Fix minimal-printf stack overflow
2020-03-03 14:39:11 +00:00
Evelyne Donnaes 5016fa1a10
Merge branch 'master' into minimal_printf_default 2020-03-02 17:31:37 +00:00
Evelyne Donnaes 0f2b0d1be5 Fixed greentea tests 2020-03-02 17:27:17 +00:00
Rajkumar Kanagaraj 5d0aab847e Remove mbed interface deprecated API 2020-03-02 09:00:01 -08:00
Rajkumar Kanagaraj 6e969ec5ab Remove the deprecated CallChain class and its APIs. 2020-02-28 07:41:44 -08:00
Rajkumar Kanagaraj b3ba0905ac Remove the deprecated CriticalSectionLock APIs 2020-02-28 07:19:19 -08:00
Evelyne Donnaes a02f4b4856 Fix minimal-printf stack overflow 2020-02-25 10:44:11 +00:00
Anna Bridge 8c17270306
Merge pull request #12480 from 0xc0170/fix_spdx
Fix SPDX identifiers and licenses (excluding features and targets)
2020-02-21 16:34:30 +00:00
Martin Kojtal 21ad8af815 platform: fix SPDX identifiers 2020-02-21 07:00:58 +00:00
Bartek Szatkowski 954f22bb52 minimal-printf: Disable float by default 2020-02-19 15:29:39 +00:00
Bartek Szatkowski f9be9dc5be minimal-printf: Explicitly print %ll[diuxX] when 64b disabled 2020-02-19 15:29:38 +00:00
Bartek Szatkowski 554a04ba5f minimal-printf: README updates 2020-02-19 15:29:38 +00:00
Bartek Szatkowski 30c947efbb Enable minimal-printf by default for all builds
Also reenable floating point by default.
2020-02-19 15:29:38 +00:00
David Lin d725b13906
Fixed typo: 'lenght' in minimal-printf
Note that the word 'lenght' is wrong,
so that 'lenght' should been replaced with 'length'.
2020-02-16 18:11:18 +08:00
Evelyne Donnaes ae57b4303e Fix thread_sleep_for zero 2020-02-06 15:19:18 +00:00
Maciej Bocianski 63d14f3af4 add dummy SUPER_REALLOC/CALLOC calls to alloc wrappers
This code prevents the ARMC6 compiler/linker from removing
SUB_REALLOC/CALLOC symbols from image when LTO is enabled

Fixes below error:
L6137E: Symbol $Sub$$calloc was not preserved by the LTO codegen but is needed by the image.
2020-02-04 12:29:53 +01:00
Maciej Bocianski 783953e5dc ARMC6 keep __user_setup_stackheap symbol when LTO enabled
Fix for the error L6915E: Library reports error: Heap was used, but no heap region was defined
2020-02-04 12:29:53 +01:00
Kevin Bracey d063902ee8
Merge pull request #12336 from SeppoTakalo/disable_writebuf
Disable write buffering on debug builds.
2020-01-31 16:24:04 +02:00