Commit Graph

709 Commits (refactor_mbed_host_tests)

Author SHA1 Message Date
Martin Kojtal 1fe0650907
Merge pull request #14721 from OpenNuvoton/nuvoton_no-hxt-lxt
Nuvoton: Enable no HXT/LXT configurability
2021-06-07 20:50:10 +02:00
Chun-Chieh Li 0b6fdf46f0 M2354: Default to HXT not present
1.  Build TF-M v1.3 with GNUARM and HXT not present.
2.  Support configurability of HXT presence (targets.json).
3.  Default HXT to not present (targets.json). This must align with built TF-M secure code above.
2021-06-04 10:32:59 +08:00
Chun-Chieh Li 79cf5a01d5 M2354: Synchronize platform extra secure files from TF-M
These files are refactored on TF-M and make no logic change on Mbed.
2021-06-04 10:32:59 +08:00
Chun-Chieh Li 71c32de1d7 M2354: Refine TF-M import readme
Add bug report of GNU Arm Embedded Toolchain 10-2020-q4-major in CMSE support
2021-06-04 10:32:59 +08:00
Chun-Chieh Li 77ed6778d8 Nuvoton: Explicitly disable HXT/LXT on configured to not present
This is to guard from BSP driver which cannot see this configuration and still uses HXT/LXT.
2021-06-02 09:02:05 +08:00
Chun-Chieh Li a0c53896e0 Nuvoton: Enable no HXT/LXT configurabiliy
LXT/HXT are external crystl oscillator and can be absent on custom board.
This enables configuring LXT/HXT presence:
1.  By default, LXT/HXT are configured to be present, except M252 which has no HXT.
2.  When LXT is configured to not present, lp_ticker/watchdog will clock by LIRC instead.
3.  Limitations:
    (1) On all targets, LIRC-clocked lp_ticker gets inaccurate and fails to pass tests.
    (2) On NUC472/M453, HIRC-clocked PLL doesn't output 1MHz-aligned frequency. us_ticker gets slight inaccurate.
    (3) On all targets, LIRC-clocked RTC is not supported due to no H/W path/RTC clock source reset to LXT on reset/RTC not trimmed for other clock rates.
4.  On M263, TRNG's clock source defaults to LXT and needs special handling without LXT.
5.  On M252, replace target.hxt-enable with target.hxt-present for consistency.
2021-06-02 09:02:05 +08:00
Chun-Chieh Li 3fc81fb883 M2354: Comply with standard pin naming rule 2021-05-26 09:35:05 +08:00
Chun-Chieh Li e2491509f5 M2354: Update to TF-M 1.3 2021-05-26 09:35:05 +08:00
Chun-Chieh Li 98f5a99219 M2354: Refine TF-M/Mbed integration readme 2021-05-26 09:35:04 +08:00
Chun-Chieh Li 9fee7d9b18 M2354: Use TF-M exported region_defs.h to replace target.mbed_rom_start and friends 2021-05-26 09:35:04 +08:00
Chun-Chieh Li 7db441401b M2354: Support TRNG as entropy source on TF-M
1.  Update TF-M Secure bin enabling TRNG as entropy source
2.  Replaced with above, remove TRNG HAL stuff on Mbed, including platform extra secure functions, cmake, etc.
2021-05-26 09:35:04 +08:00
Chun-Chieh Li 2c3fb3d727 M2354: Reduce output image size
1.  Enable mcuboot no padding option
2.  Support output image format Intel Hex
2021-05-26 09:35:03 +08:00
Chun-Chieh Li 356c8fdeb3 M2354: Add serial_tx_empty(...)
Enable serial sync with the below PR:
https://github.com/ARMmbed/mbed-os/pull/14600
2021-05-26 09:35:03 +08:00
Chun-Chieh Li fd8ac31537 M2354: Support TF-M
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)
2021-05-26 09:35:02 +08:00
Martin Kojtal ccde03aac2
Merge pull request #14567 from OpenNuvoton/nvt_m480_wdt_rst
M487: Resolve WDT reset H/W limit
2021-05-03 12:11:30 +02:00
Chun-Chieh Li e38b691541 M487: Refine the WKT resolution to WDT reset from PD
1. Rephrase the comment
2. Pass WDT reset reason test
2021-04-22 19:12:52 +08:00
cyliangtw 7db85490e6 Align lines by space instead of tab 2021-04-20 19:39:14 +08:00
cyliangtw b26fd71855 Resolve M480 WDT reset H/W limit by reset from deep power-down 2021-04-20 18:18:00 +08:00
Chun-Chieh Li d489c92a1b Nuvoton: Fix hal_watchdog_kick() with WDT stopped
According to HAL spec, hal_watchdog_kick() shall do nothing when WDT is stopped.
2021-04-16 09:56:43 +08:00
Chun-Chieh Li df4f1a3387 M487: Adjust placement of SYS_UnlockReg in WDT reset from PD patch
This adjustment has two purposes:
1.  Avoid misleading placement of SYS_UnlockReg for WDT clock setting
2.  Safer for power-down
2021-04-08 17:18:38 +08:00
George Psimenos 61cfaa15cd Update UART pin names & add MBED_CONF_TARGET_STDIO_UART overrides 2021-03-23 11:17:17 +00:00
George Psimenos 8cf2eccd47 Remove unused NUVOTON M2351 target files 2021-03-18 17:01:54 +00:00
George Psimenos 885cdef5f7 Add standard pin-names validation script & tests 2021-03-18 17:01:53 +00:00
Martin Kojtal 306172570a
Merge pull request #14379 from OpenNuvoton/nvt_high_res_pwm
Nuvoton: Enlarge NuMaker PWM duty cycle range
2021-03-11 17:12:25 +00:00
cyliangtw 5b693ff3b3 To keep proprietary BSP DutyCycle definition and rename HighDutyCycle in extend API 2021-03-10 11:53:55 +08:00
Harrison Mutai 7eb2122f63 Add bare metal support to Nuvoton targets
Modify `targets.json` to configure bare metal for the following targets:
NUMAKER_IOT_M252, NUMAKER_IOT_M263A, NUMAKER_IOT_M487, NUMAKER_PFM_M487,
NUMAKER_PFM_NUC472. Add target link interface between nuvoton library
and mbed-cmsis-cortex-m.
2021-03-05 14:50:20 +00:00
Harrison Mutai 46fb822d02 Remove uARM dependencies from Nuvoton targets 2021-03-05 14:48:17 +00:00
cyliangtw 045f443bb2 Support M251/M261/M453/NANO130/NUC472 PWM duty cycle range as 0 ~ 10000 2021-03-04 19:58:03 +08:00
cyliangtw abdcc7b831 Support M480 PWM duty cycle range as 0 ~ 10000 2021-03-04 17:10:04 +08:00
cyliangtw a3c09d0a3f Add mbed-cmsis-cortex-m into Nuvoton CMakeList 2021-03-04 11:35:14 +08:00
Martin Kojtal 120b25f138
Merge pull request #14315 from hugueskamba/hk_cmake_fix_nuvonton_m261
NUVOTON: Remove CMake listing of M261 include directory that do not exist
2021-02-22 20:10:02 +00:00
Martin Kojtal 3bb8de6ea3
Merge pull request #14308 from hugueskamba/hk_cmake_create_flash_cmsis_algo
Create FLASH CMSIS ALGO target to remove dependency on MBED_TARGET_LABELS
2021-02-22 14:36:44 +00:00
Hugues Kamba 3eb5296996 NUVOTON: Remove CMake listing of M261 include directory that do not exist
Remove listing of include directory that do not exist
2021-02-22 12:53:17 +00:00
Hugues Kamba 7d49d4bce1 Create FLASH CMSIS ALGO target to remove dependency on MBED_TARGET_LABELS
This goes towards eventually removing reliance on targets.json to specify
the requirements of Mbed targets.
2021-02-19 16:56:37 +00:00
Hugues Kamba a3a36ccb92 CMake: Fix some NUVOTON build
Correct source file listings for M251, M261.
Also remove unused input source files.
2021-02-19 16:48:32 +00:00
Hugues Kamba 2a6a840903 CMake: Refactor Nuvoton targets
Refactor all Nuvoton targets to be CMake buildsystem targets. This removes
the need for checking MBED_TARGET_LABELS repeatedly and allows us to be
more flexible in the way we include MBED_TARGET source in the build.

A side effect of this is it will allow us to support custom targets
without breaking the build for 'standard' targets, as we use CMake's
standard mechanism for adding build rules to the build system, rather
than implementing our own layer of logic to exclude files not needed for
the target being built. Using this approach, if an MBED_TARGET is not
linked to using `target_link_libraries` its source files will not be
added to the build. This means custom target source can be added to the
user's application CMakeLists.txt without polluting the build system
when trying to compile for a standard MBED_TARGET.
2021-02-12 19:09:11 +00:00
Chun-Chieh Li 68df919e3f Nuvoton: Remove DISABLE/ENABLE macro definitions in BSP
These are not used on Mbed OS. Remove them to avoid name conflict with other modules.
2020-12-09 14:27:23 +08:00
Martin Kojtal 28eeee2b4c
Merge pull request #13922 from 0xc0170/cmake-nuvoton
CMake: add nuvoton targets
2020-11-27 11:02:53 +00:00
Martin Kojtal 0efffa3411 CMake nuvoton: fix ARMClang linker script command 2020-11-25 13:18:15 +00:00
Martin Kojtal 6574054d26 CMake: remove M2351 cmakelists, not supported yet 2020-11-20 13:46:15 +00:00
Martin Kojtal 58bf0ed9f2 CMake: fix NUC472 ARM path 2020-11-20 13:42:32 +00:00
Martin Kojtal 033c48dee7 CMake: fix NUMAKER_IOT_M263A name 2020-11-20 13:41:34 +00:00
Martin Kojtal 02c35fdd48 CMake: add nuvoton targets 2020-11-18 15:18:18 +00:00
pea-pod 507181d262 Change MBED_STATIC_ASSERTs version for built-in 2020-10-27 08:30:40 -05:00
Harrison Mutai 4fad1112e5 Add SPDX license identifier to Arm files
Add license identifier to files which Arm owns the copyright to,
and contain either BSD-3 or Apache-2.0 licenses. This is to address
license errors raised by scancode analysis.
2020-10-15 10:47:27 +01:00
cyliangtw 3916026dd7 Commit M451/NANO100 i2c_api again to resolve abnormal gitattribute 2020-09-30 10:27:16 +08:00
cyliangtw ffee35a5c8 Fix NuMaker I2C timeout,
some H/W timer count is 24 bits only, hardcode 0xffffffff causing
  wrong judgement of timeout as while H/W timer counting overflow.
2020-09-29 21:01:18 +08:00
Martin Kojtal 468372e759
Merge pull request #13492 from talorion/fix-PwmOut-resets-after-suspend
Fix pwm out resets after suspend
2020-09-10 12:40:18 +01:00
Jaeden Amero 612b148fd4 stack: armc: Workaround config passing bug
Workaround a bug where the boot stack size configuration option is not
passed on to armlink, the Arm Compiler's linker. Prefer
MBED_CONF_TARGET_BOOT_STACK_SIZE if present, as this is what the
configuration system should provide. Fall back to MBED_BOOT_STACK_SIZE
if MBED_CONF_TARGET_BOOT_STACK_SIZE is not defined, as in the case of
buggy tools. If both MBED_CONF_TARGET_BOOT_STACK_SIZE and
MBED_BOOT_STACK_SIZE are not defined, then we fall back to a hard-coded
value provided by the linkerscript. See
https://github.com/ARMmbed/mbed-os/issues/13474 for more information.
2020-09-10 10:08:38 +01:00
Jaeden Amero 39e69d328d Use boot stack size from config system
To allow overriding of the boot stack size from the Mbed configuration
system, consistently use MBED_CONF_TARGET_BOOT_STACK_SIZE rather than
MBED_BOOT_STACK_SIZE.

Fixes #10319
2020-09-10 10:08:38 +01:00