Commit Graph

469 Commits (master)

Author SHA1 Message Date
Hugues Kamba 68b6e6ff96 Fix post build mechanism with unique CMake custom targets
The CMake custom target must be unique to avoid more than one
Mbed target adding the same. Only the CMake custom command added for the
Mbed target being built is run as the custom CMake target now includes
the Mbed target name.
2021-02-15 17:39:27 +00:00
Hugues Kamba ea6955bd1c CMake: Refactor Cypress targets
Refactor all Cypress 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-15 17:20:23 +00:00
Hugues Kamba deeaa7970f CMake: Add post build operation support
A CMake custom target, mbed-post-build, is added as a dependency of the
application CMake target if a Mbed target adds a CMake custom target
named mbed-post-build-bin. mbed-post-build-bin is added as a dependency
of mbed-post-build. mbed-post-build-bin depends on the application binary.
This is done so a CMake custom command that executes post-build can be added.

The Python scripts that implement the operations have been modified to add
CLI entry points so they can be called from CMake. Dependency on the old
tool has been removed on those scripts by passing them exactly what they
require instead of passing old tool Python objects. A consequence of that
was to slightly amend how the old tool calls some of those Python modules.

Support has only been added for Mbed targets that currently have a requirement
for post build operations. This includes: LPC1114, LPC1768, ARCH_PRO, LPC54114,
LPC546XX, FF_LPC546XX, CY8CKIT064B0S2_4343W, CYTFM_064B0S2_4343W, CYSBSYSKIT_01

The following targets are not supported as TFM support is not yet included:
ARM_MUSCA_B1, ARM_MUSCA_B1_NS, ARM_MUSCA_S1, ARM_MUSCA_S1_NS.
2021-02-11 17:04:41 +00:00
Hugues Kamba 59bb225f40 CMake: Fix Cypress MCU_PSOC6_M4 build
Ensure the RTOS source file are included
if the full profile is used. The macro CY_RTOS_AWARE
is added whenever the full profile is used
2021-02-03 14:15:07 +00:00
Hugues Kamba 21840a4e92 Cypress: Fix CYTFM_064B0S2_4343W CMake build
List missing CAT1A files.
2021-01-20 14:13:50 +00:00
Martin Kojtal 8effecdf29
Merge pull request #14063 from dustin-crossman/pr/wifi_reserved_region
Support arbitrary storage alongside WiFi firmware in external storage on Cypress targets
2021-01-20 08:34:23 +00:00
Dustin Crossman ef6284cad5 Added process to reinitialize qspi if qspi_init is called twice without free. 2021-01-14 12:59:01 -08:00
Dustin Crossman 95a5d60b65 Implement qspi_frequency for Cypress Mbed HAL. 2021-01-14 12:58:50 -08:00
Martin Kojtal 4e34abbbf1
Merge pull request #14062 from dustin-crossman/pr/dec_asset_update
Cypress Asset Update
2021-01-11 13:40:26 +00:00
Dustin Crossman 82c98618cd Ran astyle for mbed code format. 2021-01-05 13:51:52 -08:00
Dustin Crossman 782b23d626 Addressing review feedback. 2021-01-05 13:50:30 -08:00
Dustin Crossman b0b07477fd Add missing includes. 2021-01-05 12:54:56 -08:00
Dustin Crossman f3caf6a805 Add back nvram image for CYTFM board.
Add label so nvram image is found for 064B0S2 board.
2021-01-05 10:43:57 -08:00
Dustin Crossman 7a0e0d05d6 Fix mode of changed files. 2020-12-17 09:07:43 -08:00
Martin Kojtal 89bd565582
Merge pull request #13976 from LDong-Arm/cypress_sleep_debug_rework
PSoC 6: rework sleep overrides by Cypress's debug macro
2020-12-17 14:22:44 +00:00
Matthew Macovsky fc702737ce Create canonical CyReservedRegionBlockDevice for working with/around Cypress WiFi firmware in external memory
This change allows external memory to be used for other purposes while
the WiFi firmware is stored in it by interacting with it via the
reserved region block device.
2020-12-16 15:31:00 -08:00
Matthew Macovsky 95a85a52e8 Create block device for working around a reserved region
Given an underlying block device and the size of the reserved region, a
CyReservedRegionBlockDevice will act as the underlying block device but
operating only outside of the reserved region. It also allows reading
from the reserved region. The reserved region is assumed to start at
address 0 in the underlying block device.
2020-12-16 15:30:55 -08:00
Matthew Macovsky 71d6f8446c Change Cypress linker script region name from .cy_xip to cy_xip
In some toolchains, in order to use linker symbols referring to the
start and end of a region, the region name must not contain a '.'
character. These changes allow those symbols to be used for the cy_xip
region by renaming it. They also create explicit start and end symbols
for GCC.
2020-12-16 15:30:50 -08:00
Dustin Crossman 202a979a61 Update Cypress udb-sdio-whd to 1.1.1 2020-12-16 15:14:10 -08:00
Dustin Crossman d3e940d64f Fixup ticker api due to cyhal_timer_t changes. 2020-12-16 15:14:10 -08:00
Dustin Crossman 482a7f1234 Update Cypress abstraction-resource asset to 1.0.0.17634 2020-12-16 15:14:10 -08:00
Dustin Crossman 19e1b7e199 Update Cypress abstraction-rtos asset to 1.3.0.17634 2020-12-16 15:14:10 -08:00
Dustin Crossman 1f36bacb49 Update Cypress core-lib asset to 1.1.4.17634 2020-12-16 15:14:10 -08:00
Dustin Crossman 1b19534662 Update Cypress psoc6hal asset to 1.4.0.17634 2020-12-16 15:14:10 -08:00
Dustin Crossman 4ef34ccdb7 Update Cypress psoc6pdl asset to 2.0.0.6211 2020-12-16 15:14:10 -08:00
Dustin Crossman 5a3af0039f Update Cypress serial flash asset to 1.0.2.17634 2020-12-16 15:14:06 -08:00
Dustin Crossman ee7c7bda37 Update Cypress WHD asset to 1.1.0.19214 2020-12-16 15:14:06 -08:00
Dustin Crossman 9cd6dcabdc Update Cypress udb-sdio-whd to 1.1.0.19214 2020-12-16 15:14:05 -08:00
Martin Kojtal 65281b9db7
Merge pull request #13934 from hugueskamba/hk_cmake_add_cypress_targets
CMake: Add support for Cypress targets
2020-12-07 09:08:06 +00:00
Hugues Kamba efafbd5dc4 Add support for CYTFM_064B0S2_4343W 2020-12-01 15:16:36 +00:00
Hugues Kamba fafc5c33e7 Add support for CYW9P62S1_43438EVB_01 2020-12-01 15:16:35 +00:00
Hugues Kamba db6df682b5 Add support for CYW9P62S1_43012EVB_01 2020-12-01 15:16:35 +00:00
Hugues Kamba aa415e621d Add support for CYSBSYSKIT_01 2020-12-01 15:16:35 +00:00
Hugues Kamba 43b86ff083 Add support for CY8CPROTO_062_4343W 2020-12-01 15:16:35 +00:00
Hugues Kamba 06f2f34a0d Add support for CY8CPROTO_062S3_4343W 2020-12-01 15:16:35 +00:00
Hugues Kamba fb9b920f03 CMake: Add support for CY8CKIT_062_WIFI_BT 2020-12-01 15:16:35 +00:00
Hugues Kamba 36bcb0c04b CMake: Add support for CY8CKIT_062_BLE 2020-12-01 15:16:35 +00:00
Hugues Kamba d7b5307608 CMake: Add support for CY8CKIT_062S2_43012 2020-12-01 15:16:35 +00:00
Hugues Kamba be88fe2a21 CMake: Enable baremetal support for MCU_PSOC6 targets 2020-12-01 15:16:35 +00:00
Hugues Kamba b66439f39b CMake: Add support for CY8CKIT064B0S2_4343W 2020-12-01 15:16:35 +00:00
Lingkai Dong b1da3429df PSoC 6: enable/disable sleep modes based on CY_CFG_PWR_SYS_IDLE_MODE 2020-11-27 17:10:24 +00:00
Lingkai Dong 7f0c98d977 PSoC 6: remove debug sleep lock and hook from mbed_sdk_init 2020-11-27 17:10:24 +00:00
Hugues Kamba 9d32a473b6 Cypress: Remove CY8CKIT_064S2_4343W files
Mbed OS 6 does not support this target.
2020-11-19 11:00:43 +00:00
Lingkai Dong 810884b448 Add mbed_lib.json for PSOC6 SCL to exclude it from build metal build
SCL is for the Cypress Ethernet driver which is not currently
compatible with bare metal.
2020-11-06 10:08:24 +00:00
Lingkai Dong 7641f1cb3c CYTFM_064B0S2_4343W: use cytfm_flash only if TFM and PSA are present
This fixes bare metal builds
2020-11-06 10:08:12 +00:00
Martin Kojtal 61aa6817f0
Merge pull request #13724 from harmut01/license_refactor
Add license notice to Arm copyrighted source files
2020-10-16 09:09:53 +01: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
Charley Chu 57f36264c5 psoc64: Update flash layout of CYTFM_064B0S2_4343W
Only report the flash region that can be accessed by none-secure CPU

Signed-off-by: Charley Chu <haoc@cypress.com>
2020-09-28 17:10:42 -07: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
Roman Okhrimenko 877078003c Rename CY8CKIT_064B0S2_4343W to CY8CKIT064B0S2_4343W, which fits in 20 characters limit 2020-09-07 08:25:31 +03:00
talorion dc7aa873f0 pwmout - PSOC6 - add read methods for period and pulsewidth 2020-09-02 13:39:09 +02:00
Martin Kojtal 555c7dbe1a
Merge pull request #13416 from dustin-crossman/pr/cysbsyskit_update_6.2.0
Update CYSBSYSKIT_01
2020-08-26 07:14:46 +01:00
Roman Okhrimenko a8a2a0ee03 Update cypress psoc6cm0p library to 1.2.1.676, compatible with psoc6pdl 1.6.1.4886 2020-08-20 13:02:28 +03:00
Charley Chu ace81a8be7 psoc64: Update TF-M release image
Upgrade PDL to v1.6.1 to resolve #13440

Signed-off-by: Charley Chu <haoc@cypress.com>
2020-08-17 18:05:48 -07:00
Martin Kojtal 3ff5a3b560
Merge pull request #13418 from CharleyChu/topic/master_cytfm
Update PSoC64 TFM release package.
2020-08-14 11:24:58 +01:00
Martin Kojtal 9df8d33f49
Merge pull request #13386 from avptin/psoc6pdl-1.6.1
PSoC6: update to psoc6pdl-1.6.1
2020-08-13 17:32:39 +01:00
Charley Chu 4749e176d7 psoc64: Update TF-M release image
- Fix key derivation issue
- Update PSoC64 BSP
- Replace IPC semaphore spin-lock with IPC lock

Signed-off-by: Charley Chu <haoc@cypress.com>
2020-08-12 16:46:52 -07:00
Volodymyr Medvid 563e216cc8 PSOC6: update BSP startup code to match psoc6pdl-1.6.1 2020-08-12 04:33:29 +01:00
Dustin Crossman 6ba8885ad3 Update COMPONENT_SCL. 2020-08-10 17:02:35 -07:00
Dustin Crossman 0944d0e9b0 Update CYSBSYSKIT_01 bsp. 2020-08-10 16:59:04 -07:00
Raymond Ngun 1be0b1f297 CYTFM_064B0S2_4343W: Inital creation of PSA target
Target is similar to CY8CKIT_064B0S2_4343W but with PSA
and TFM enabled.

Signed-off-by: Raymond Ngun <raymond.ngun@cypress.com>
2020-08-07 08:02:01 -07:00
Oleksiy Peutin e95c64f798 PSoC6: update to psoc6pdl-1.6.1 2020-07-31 16:12:15 +01:00
Lingkai Dong 2b24a7a31e Update paths to cellular framework 2020-07-22 11:06:23 +01:00
Martin Kojtal ab84dcde03
Merge pull request #13198 from kyle-cypress/pr/whd-1.91.2
Cypress: Update WHD to version 1.91.2
2020-07-01 12:01:51 +02:00
Martin Kojtal 22e9925ca9
Merge pull request #13172 from yarbcy/pr/dev-mbed-init-fix
Cypress: Fix internal JIRA. Add check if cybsp_init() is successful
2020-07-01 10:25:11 +02:00
Kyle Kearney 4c95356f58 PSoC: Update WHD to v1.91.2 2020-06-26 10:03:08 -07:00
YARB(Cypress) 383b8f98de Fix internal JIRA. Add check if cybsp_init() is successful 2020-06-22 12:45:09 +03:00
Roman Okhrimenko 00cbc2d54e Update GeneratedSource of 064B0S2 with repo-starging 15347 revision 2020-06-19 16:16:55 +03:00
Roman Okhrimenko dcc3559a82 Update GeneratedSources for 064B0S2 - disable ALT systick due to changes in psoc6pdl-1.6.0.4266 2020-06-19 16:16:55 +03:00
Roman Okhrimenko 1bd215ba1a Update GeneratedSource files for 064B0S2 using psoc6pdl-1.6.0.4266-rc3 2020-06-19 16:16:55 +03:00
Roman Okhrimenko 611c95614d Update psoc6cm0p to 1.2.0.237-rc2 2020-06-19 16:16:55 +03:00
Roman Okhrimenko 7a862d2059 Update psoc6pdl to 1.6.0.4266-rc3 2020-06-19 16:16:55 +03:00
Roman Okhrimenko bcc8c2cdae Rename 064B0S2 linker scripts names per common pattern 2020-06-19 16:16:54 +03:00
Roman Okhrimenko 2a313c3ed7 Update prebuild Secure CM0p hex file from multi image case with 064B0S2 to 1.2.0.210 2020-06-19 16:16:54 +03:00
Roman Okhrimenko 4043deee7e Update linker scripts with templates from psoc6pdl 1.6.0.4172 for IAR and ARM for 064B0S2, add cm4_dual versions 2020-06-19 16:16:54 +03:00
Roman Okhrimenko 66f6e2a199 Update asset psoc6cm0p build 1.2.0.210 RC1 2020-06-19 16:16:54 +03:00
Roman Okhrimenko f99a1c49b9 Update GeneratedSource and system files for B0S2 using psoc6pdl 1.6.0.4172 RC2 2020-06-19 16:16:54 +03:00
Roman Okhrimenko aa3c81e749 Update psoc6pdl to .1.6.0.4172 RC2 2020-06-19 16:16:54 +03:00
Roman Okhrimenko 797bf090b9 Delete policies and linker files for multi image for B0S2 2020-06-19 16:16:53 +03:00
Roman Okhrimenko edcda5192a Delete ES10 related sb-tools folder from TARGET_PSOC6, post build now use cysecuretools 2020-06-19 16:16:47 +03:00
Roman Okhrimenko c97f140590 Delete ES10 target source CY8CKIT_064S2_4343W 2020-06-19 16:16:00 +03:00
Roman Okhrimenko 07bf595dce Delete ES10 target source CYESKIT_064B0S2_4343W 2020-06-19 16:15:45 +03:00
Roman Okhrimenko 64a3d26493 Delete ES10 target source CY8CPROTO_064_SB 2020-06-19 16:15:34 +03:00
Roman Okhrimenko 571e097d9f Add secure cm0 psoc6cm0p hex prebuild 1.2.0.174 file to 064B0S2 BSP 2020-06-19 16:13:59 +03:00
Roman Okhrimenko bdac29e93e Add 064B0S2 target BSP files using psoc6pdl 1.6.0.3875 2020-06-19 16:13:59 +03:00
Roman Okhrimenko 683e3631da Update psoc6cm0p to 1.2.0.174 2020-06-19 16:13:59 +03:00
Roman Okhrimenko 4700a726f8 Update psoc6pdl to 1.6.0.3875 2020-06-19 16:13:59 +03: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
Jaeden Amero d314a6cc57 cypress: psoc64: Add TF-M compatibility (again)
Partially revert f38e21fa6c ("Update PSoC 6 BSPs to verion 1.2") to
restore TF-M compatibility.

Make the CY8CKIT_064S2_4343W target TF-M compatible by addding flash and
region definitions from TF-M (at c4f37c18c4a0) and by updating the
CY8CKIT_064S2_4343W linker script to create a flash image compatible
with TF-M.

Fixes: f38e21fa6c ("Update PSoC 6 BSPs to verion 1.2")

Signed-off-by: Jaeden Amero <jaeden.amero@arm.com>
2020-06-18 12:16:10 +01:00
Kyle Kearney 6a2d93ee94 Add optional post-bsp-init hook
This allows the application to inject its own resource reservations
immmediately after the BSP (and therefore HAL) is initialized,
ensuring that they can claim require resources before mbed tries
to use them for more flexible purposes. For example, the application
might want to claim a particular timer to make sure that it doesn't
get picked for us_ticker (which can use any arbitrary timer instance).
2020-06-16 11:07:34 -07:00
Kyle Kearney ab5eb07e3c Stop the us_ticker timer before deepsleep
A running timer will block DeepSleep, which would normally be
good because we don't want the timer to accidentally lose counts.
We don't care about that for us_ticker (If we're requesting deepsleep
the upper layers already determined that they are okay with that),
so explicitly stop the us_ticker timer before we go to sleep and
start it back up afterwards.
2020-06-16 11:07:34 -07:00
Volodymyr Medvid dc937ab53b Fix BOOT_HEADER_SIZE allocation in ARM scatter files (#13058)
PSoC 64 secure BSP post-build hook (cysecuretools image signing)
expects the HEX file with start address 0x10000400 (first KB of
internal FLASH is reserved for MCUboot headers area).
In order to get the correct HEX file produced by ARM fromELF tool,
the ELF file should allocate LR_IROM1 starting from address
0x10000400, not 0x10000000. Otherwise the generated HEX file
allocates rows at addresses 0x10000000 ~ 010000400 and the
final application image is not signed correctly.

Fixes https://github.com/ARMmbed/mbed-os/issues/13058.
2020-06-10 10:25:41 +03:00
Martin Kojtal 95a704ed92
Merge pull request #13045 from kyle-cypress/pr/pin-header-cyeskit
CYESKIT_064B0S2_4343W: Remove parentheses from arduino pins
2020-06-05 13:10:41 +02:00
Martin Kojtal e0c7f25c5d
Merge pull request #12985 from dustin-crossman/pr/update_cysbsyskit_01
Update CYSBSYSKIT_01
2020-06-04 14:35:31 +02:00
Kyle Kearney 7ad94db586 CYESKIT_064B0S2_4343W: Remove parentheses from arduino pins
Avoid build failures when arduino pin names collide with C++ template
argument names.
Addresses issue #13027
2020-05-29 17:17:05 -07:00
Dustin Crossman 96052c3347 Update CYSBSYSKIT_01 board init 2020-05-15 15:52:44 -07:00
Dustin Crossman a4c64481ea Update COMPONENT_SCL to version 1.0.0 2020-05-15 15:52:09 -07:00
Kyle Kearney 0fa5e32c95 Update psoc6pdl to v1.5.2 2020-05-15 11:50:18 +01:00