diff --git a/CMakeLists.txt b/CMakeLists.txt index 5c39877be7..500be132f8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -108,7 +108,6 @@ add_subdirectory(storage EXCLUDE_FROM_ALL) add_subdirectory(drivers/device_key EXCLUDE_FROM_ALL) add_subdirectory(drivers/usb EXCLUDE_FROM_ALL) add_subdirectory(features EXCLUDE_FROM_ALL) -add_subdirectory(platform/FEATURE_EXPERIMENTAL_API EXCLUDE_FROM_ALL) add_subdirectory(cmsis/CMSIS_5/CMSIS/RTOS2 EXCLUDE_FROM_ALL) add_subdirectory(cmsis/device/rtos EXCLUDE_FROM_ALL) diff --git a/platform/CMakeLists.txt b/platform/CMakeLists.txt index 69c499a53a..c68f815223 100644 --- a/platform/CMakeLists.txt +++ b/platform/CMakeLists.txt @@ -4,6 +4,9 @@ # List of all optional platform libraries available. add_library(mbed-psa INTERFACE) +if("EXPERIMENTAL_API" IN_LIST MBED_TARGET_LABELS) + add_subdirectory(FEATURE_EXPERIMENTAL_API) +endif() add_subdirectory(cxxsupport) add_subdirectory(mbed-trace) @@ -16,3 +19,4 @@ target_include_directories(mbed-core include/platform include/platform/internal ) + diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/CMakeLists.txt b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/CMakeLists.txt index 3fb2d001d6..222bd82b4f 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/CMakeLists.txt +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/CMakeLists.txt @@ -11,8 +11,8 @@ endif() target_include_directories(mbed-psa INTERFACE - ./inc - ./inc/psa + inc + inc/psa ) target_sources(mbed-psa @@ -20,11 +20,7 @@ target_sources(mbed-psa src/psa_hrng.c ) -target_link_libraries(mbed-psa +target_link_libraries(mbed-core INTERFACE - mbed-mbedtls - mbed-storage-kvstore - mbed-storage-tdbstore - mbed-storage-kv-global-api - mbed-device_key + mbed-psa ) diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/CMakeLists.txt b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/CMakeLists.txt index 435c852715..c0db16ec90 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/CMakeLists.txt +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/CMakeLists.txt @@ -1,14 +1,22 @@ # Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -add_subdirectory(services) - target_include_directories(mbed-psa INTERFACE - ./inc - ./inc/psa - ./mbedtls - ./pal + inc + inc/psa + mbedtls + pal + services/platform + services/attestation + services/attestation/qcbor + services/attestation/qcbor/inc + services/attestation/qcbor/src + services/attestation/tfm_impl + services/attestation/tfm_impl/t_cose/inc + services/attestation/tfm_impl/t_cose/src + services/storage/common + services/storage/its ) target_sources(mbed-psa @@ -26,6 +34,46 @@ target_sources(mbed-psa pal/pal_internal_trusted_storage_intf.c pal/pal_protected_storage_intf.c + services/attestation/attest_boot_status_loader.c + services/attestation/attest_crypto.c + services/attestation/attest_crypto_keys.c + services/attestation/attest_iat_claims_loader.c + services/attestation/attestation_bootloader_data.c + services/attestation/psa_attest_inject_key.c + services/attestation/psa_attestation_stubs.c + services/attestation/psa_initial_attestation_api.c + services/attestation/psa_inject_attestation_key_impl.c + + services/attestation/qcbor/src/UsefulBuf.c + services/attestation/qcbor/src/ieee754.c + services/attestation/qcbor/src/qcbor_decode.c + services/attestation/qcbor/src/qcbor_encode.c + + services/attestation/tfm_impl/attest_token.c + services/attestation/tfm_impl/attestation_core.c + + services/attestation/tfm_impl/t_cose/src/t_cose_sign1_sign.c + services/attestation/tfm_impl/t_cose/src/t_cose_util.c + + services/platform/platform_emul.c + services/platform/platform_srv_impl.c + + services/storage/common/psa_storage_common_impl.cpp + + services/storage/its/pits_impl.cpp + services/storage/its/psa_prot_internal_storage.cpp + + services/storage/ps/protected_storage.cpp + src/client.c src/default_random_seed.cpp ) + +target_link_libraries(mbed-psa + INTERFACE + mbed-mbedtls + mbed-storage-kvstore + mbed-storage-tdbstore + mbed-storage-kv-global-api + mbed-device_key +) diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/services/CMakeLists.txt b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/services/CMakeLists.txt deleted file mode 100644 index cc0a50f3ff..0000000000 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/services/CMakeLists.txt +++ /dev/null @@ -1,16 +0,0 @@ -# Copyright (c) 2020 ARM Limited. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -add_subdirectory(attestation) -add_subdirectory(storage) - -target_include_directories(mbed-psa - INTERFACE - ./platform -) - -target_sources(mbed-psa - INTERFACE - platform/platform_emul.c - platform/platform_srv_impl.c -) diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/services/attestation/CMakeLists.txt b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/services/attestation/CMakeLists.txt deleted file mode 100644 index 6a5daf34e2..0000000000 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/services/attestation/CMakeLists.txt +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright (c) 2020 ARM Limited. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -target_include_directories(mbed-psa - INTERFACE - . - ./qcbor - ./qcbor/inc - ./qcbor/src - ./tfm_impl - ./tfm_impl/t_cose/inc - ./tfm_impl/t_cose/src -) - -target_sources(mbed-psa - INTERFACE - attest_boot_status_loader.c - attest_crypto.c - attest_crypto_keys.c - attest_iat_claims_loader.c - attestation_bootloader_data.c - psa_attest_inject_key.c - psa_attestation_stubs.c - psa_initial_attestation_api.c - psa_inject_attestation_key_impl.c - - qcbor/src/UsefulBuf.c - qcbor/src/ieee754.c - qcbor/src/qcbor_decode.c - qcbor/src/qcbor_encode.c - - tfm_impl/attest_token.c - tfm_impl/attestation_core.c - - tfm_impl/t_cose/src/t_cose_sign1_sign.c - tfm_impl/t_cose/src/t_cose_util.c -) diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/services/storage/CMakeLists.txt b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/services/storage/CMakeLists.txt deleted file mode 100644 index 291d2c4e43..0000000000 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/services/storage/CMakeLists.txt +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright (c) 2020 ARM Limited. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -target_include_directories(mbed-psa - INTERFACE - ./common - ./its -) - -target_sources(mbed-psa - INTERFACE - common/psa_storage_common_impl.cpp - - its/pits_impl.cpp - its/psa_prot_internal_storage.cpp - - ps/protected_storage.cpp -) diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_0/CMakeLists.txt b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_0/CMakeLists.txt index 1ca948ade4..48536d99a0 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_0/CMakeLists.txt +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_0/CMakeLists.txt @@ -2,18 +2,32 @@ # SPDX-License-Identifier: Apache-2.0 if("TFM_DUALCPU" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_TFM_DUALCPU) + target_sources(mbed-psa + INTERFACE + TARGET_TFM_DUALCPU/src/platform_multicore.c + TARGET_TFM_DUALCPU/src/platform_ns_mailbox.c + TARGET_TFM_DUALCPU/src/tfm_mbed_boot.c + TARGET_TFM_DUALCPU/src/tfm_multi_core_api.c + TARGET_TFM_DUALCPU/src/tfm_multi_core_psa_ns_api.c + TARGET_TFM_DUALCPU/src/tfm_ns_mailbox.c + ) endif() if("TFM_V8M" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_TFM_V8M) + target_sources(mbed-psa + INTERFACE + TARGET_TFM_V8M/src/cmsis_nvic_virtual.c + TARGET_TFM_V8M/src/tfm_mbed_boot.c + TARGET_TFM_V8M/src/tfm_ns_interface.c + TARGET_TFM_V8M/src/tfm_psa_ns_api.c + ) endif() target_include_directories(mbed-psa INTERFACE - ./include - ./include/psa - ./include/psa_manifest + include + include/psa + include/psa_manifest ) target_sources(mbed-psa diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_0/TARGET_TFM_DUALCPU/CMakeLists.txt b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_0/TARGET_TFM_DUALCPU/CMakeLists.txt deleted file mode 100644 index 81e5279024..0000000000 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_0/TARGET_TFM_DUALCPU/CMakeLists.txt +++ /dev/null @@ -1,12 +0,0 @@ -# Copyright (c) 2020 ARM Limited. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -target_sources(mbed-psa - INTERFACE - src/platform_multicore.c - src/platform_ns_mailbox.c - src/tfm_mbed_boot.c - src/tfm_multi_core_api.c - src/tfm_multi_core_psa_ns_api.c - src/tfm_ns_mailbox.c -) diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_0/TARGET_TFM_V8M/CMakeLists.txt b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_0/TARGET_TFM_V8M/CMakeLists.txt deleted file mode 100644 index 30bf8112a1..0000000000 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_0/TARGET_TFM_V8M/CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ -# Copyright (c) 2020 ARM Limited. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -target_sources(mbed-psa - INTERFACE - src/cmsis_nvic_virtual.c - src/tfm_mbed_boot.c - src/tfm_ns_interface.c - src/tfm_psa_ns_api.c -) diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/CMakeLists.txt b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/CMakeLists.txt index ee43d7eb8d..2fdfea56b7 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/CMakeLists.txt +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/CMakeLists.txt @@ -2,18 +2,32 @@ # SPDX-License-Identifier: Apache-2.0 if("TFM_DUALCPU" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_TFM_DUALCPU) + target_sources(mbed-psa + INTERFACE + TARGET_TFM_DUALCPU/src/platform_multicore.c + TARGET_TFM_DUALCPU/src/platform_ns_mailbox.c + TARGET_TFM_DUALCPU/src/tfm_mbed_boot.c + TARGET_TFM_DUALCPU/src/tfm_multi_core_api.c + TARGET_TFM_DUALCPU/src/tfm_multi_core_psa_ns_api.c + TARGET_TFM_DUALCPU/src/tfm_ns_mailbox.c + ) endif() if("TFM_V8M" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_TFM_V8M) + target_sources(mbed-psa + INTERFACE + TARGET_TFM_V8M/src/cmsis_nvic_virtual.c + TARGET_TFM_V8M/src/tfm_mbed_boot.c + TARGET_TFM_V8M/src/tfm_ns_interface.c + TARGET_TFM_V8M/src/tfm_psa_ns_api.c + ) endif() target_include_directories(mbed-psa INTERFACE - ./include - ./include/psa - ./include/psa_manifest + include + include/psa + include/psa_manifest ) target_sources(mbed-psa diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/TARGET_TFM_DUALCPU/CMakeLists.txt b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/TARGET_TFM_DUALCPU/CMakeLists.txt deleted file mode 100644 index 81e5279024..0000000000 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/TARGET_TFM_DUALCPU/CMakeLists.txt +++ /dev/null @@ -1,12 +0,0 @@ -# Copyright (c) 2020 ARM Limited. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -target_sources(mbed-psa - INTERFACE - src/platform_multicore.c - src/platform_ns_mailbox.c - src/tfm_mbed_boot.c - src/tfm_multi_core_api.c - src/tfm_multi_core_psa_ns_api.c - src/tfm_ns_mailbox.c -) diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/TARGET_TFM_V8M/CMakeLists.txt b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/TARGET_TFM_V8M/CMakeLists.txt deleted file mode 100644 index 30bf8112a1..0000000000 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/TARGET_TFM_V8M/CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ -# Copyright (c) 2020 ARM Limited. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -target_sources(mbed-psa - INTERFACE - src/cmsis_nvic_virtual.c - src/tfm_mbed_boot.c - src/tfm_ns_interface.c - src/tfm_psa_ns_api.c -) diff --git a/targets/CMakeLists.txt b/targets/CMakeLists.txt index 1334eec5a9..26c207f68d 100644 --- a/targets/CMakeLists.txt +++ b/targets/CMakeLists.txt @@ -7,6 +7,8 @@ elseif("Analog_Devices" IN_LIST MBED_TARGET_LABELS) add_subdirectory(TARGET_Analog_Devices) elseif("ARM_FM" IN_LIST MBED_TARGET_LABELS) add_subdirectory(TARGET_ARM_FM) +elseif("ARM_SSG" IN_LIST MBED_TARGET_LABELS) + add_subdirectory(TARGET_ARM_SSG) elseif("Cypress" IN_LIST MBED_TARGET_LABELS) add_subdirectory(TARGET_Cypress) elseif("Freescale" IN_LIST MBED_TARGET_LABELS) diff --git a/targets/TARGET_ARM_SSG/CMakeLists.txt b/targets/TARGET_ARM_SSG/CMakeLists.txt new file mode 100644 index 0000000000..cf48a54d25 --- /dev/null +++ b/targets/TARGET_ARM_SSG/CMakeLists.txt @@ -0,0 +1,17 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +if("CM3DS_MPS2" IN_LIST MBED_TARGET_LABELS) + add_subdirectory(TARGET_CM3DS_MPS2) +elseif("MPS2" IN_LIST MBED_TARGET_LABELS) + add_subdirectory(TARGET_MPS2) +elseif("MUSCA_B1" IN_LIST MBED_TARGET_LABELS) + add_subdirectory(TARGET_MUSCA_B1) +elseif("MUSCA_S1" IN_LIST MBED_TARGET_LABELS) + add_subdirectory(TARGET_MUSCA_S1) +endif() + +target_include_directories(mbed-core + INTERFACE + . +) diff --git a/targets/TARGET_ARM_SSG/TARGET_CM3DS_MPS2/CMakeLists.txt b/targets/TARGET_ARM_SSG/TARGET_CM3DS_MPS2/CMakeLists.txt new file mode 100644 index 0000000000..2e28a7fe3c --- /dev/null +++ b/targets/TARGET_ARM_SSG/TARGET_CM3DS_MPS2/CMakeLists.txt @@ -0,0 +1,63 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +if(${MBED_TOOLCHAIN} STREQUAL "ARM") + set(LINKER_FILE device/TOOLCHAIN_ARM_STD/MPS2.sct) + set(STARTUP_FILE device/TOOLCHAIN_ARM_STD/startup_MPS2.S) +elseif(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") + set(LINKER_FILE device/TOOLCHAIN_GCC_ARM/MPS2.ld) + set(STARTUP_FILE device/TOOLCHAIN_GCC_ARM/startup_MPS2.S) +endif() + +set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_include_directories(mbed-core + INTERFACE + . + device + device/drivers + device/drivers/TZ-TRNG/host/src/tztrng_lib/include + device/drivers/TZ-TRNG/shared/hw/include + device/drivers/timer_cmsdk +) + +target_sources(mbed-core + INTERFACE + analogin_api.c + cmsdk_ticker.c + flash_api.c + gpio_api.c + gpio_irq_api.c + i2c_api.c + lp_ticker.c + mbed_overrides.c + pinmap.c + port_api.c + rtc_api.c + serial_api.c + sleep_api.c + spi_api.c + trng_api.c + us_ticker.c + + device/platform_devices.c + device/system_CMSDK_CM3DS.c + + device/drivers/arm_gpio_drv.c + device/drivers/arm_mps2_io_drv.c + device/drivers/arm_uart_drv.c + device/drivers/dualtimer_cmsdk_drv.c + device/drivers/rtc_pl031_drv.c + device/drivers/smsc9220_eth_drv.c + device/drivers/spi_pl022_drv.c + + device/drivers/TZ-TRNG/host/src/tztrng_lib/llf_rnd.c + device/drivers/TZ-TRNG/host/src/tztrng_lib/llf_rnd_common.c + device/drivers/TZ-TRNG/host/src/tztrng_lib/llf_rnd_cont.c + device/drivers/TZ-TRNG/host/src/tztrng_lib/llf_rnd_trng90b.c + device/drivers/TZ-TRNG/host/src/tztrng_lib/tztrng_driver.c + device/drivers/TZ-TRNG/host/src/tztrng_lib/tztrng_pal.c + + device/drivers/timer_cmsdk/timer_cmsdk_drv.c + ${STARTUP_FILE} +) diff --git a/targets/TARGET_ARM_SSG/TARGET_CM3DS_MPS2/device/TOOLCHAIN_ARM_STD/MPS2.sct b/targets/TARGET_ARM_SSG/TARGET_CM3DS_MPS2/device/TOOLCHAIN_ARM_STD/MPS2.sct index 1db5048442..a8ff47f0ba 100644 --- a/targets/TARGET_ARM_SSG/TARGET_CM3DS_MPS2/device/TOOLCHAIN_ARM_STD/MPS2.sct +++ b/targets/TARGET_ARM_SSG/TARGET_CM3DS_MPS2/device/TOOLCHAIN_ARM_STD/MPS2.sct @@ -1,4 +1,4 @@ -#! armcc -E +#! armclang -E --target=arm-arm-none-eabi -x c -mcpu=cortex-m3 /* * MPS2 CMSIS Library diff --git a/targets/TARGET_ARM_SSG/TARGET_MPS2/CMakeLists.txt b/targets/TARGET_ARM_SSG/TARGET_MPS2/CMakeLists.txt new file mode 100644 index 0000000000..6d756f2081 --- /dev/null +++ b/targets/TARGET_ARM_SSG/TARGET_MPS2/CMakeLists.txt @@ -0,0 +1,112 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +if("MPS2_M0" IN_LIST MBED_TARGET_LABELS) + target_include_directories(mbed-core + INTERFACE + TARGET_MPS2_M0/device + ) + + target_sources(mbed-core + INTERFACE + TARGET_MPS2_M0/device/cmsis_nvic.c + ) + + set(SYSTEM_FILE TARGET_MPS2_M0/device/system_CMSDK_CM0.c) + + if(${MBED_TOOLCHAIN} STREQUAL "ARM") + set(LINKER_FILE TARGET_MPS2_M0/device/TOOLCHAIN_ARM_STD/MPS2.sct) + set(STARTUP_FILE TARGET_MPS2_M0/device/TOOLCHAIN_ARM_STD/startup_MPS2.S) + elseif(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") + set(LINKER_FILE TARGET_MPS2_M0/device/TOOLCHAIN_GCC_ARM/MPS2.ld) + set(STARTUP_FILE TARGET_MPS2_M0/device/TOOLCHAIN_GCC_ARM/startup_MPS2.S) + endif() +elseif("MPS2_M0P" IN_LIST MBED_TARGET_LABELS) + target_include_directories(mbed-core + INTERFACE + TARGET_MPS2_M0P/device + ) + + set(SYSTEM_FILE TARGET_MPS2_M0P/device/system_CMSDK_CM0plus.c) + + if(${MBED_TOOLCHAIN} STREQUAL "ARM") + set(LINKER_FILE TARGET_MPS2_M0P/device/TOOLCHAIN_ARM_STD/MPS2.sct) + set(STARTUP_FILE TARGET_MPS2_M0P/device/TOOLCHAIN_ARM_STD/startup_MPS2.S) + elseif(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") + set(LINKER_FILE TARGET_MPS2_M0P/device/TOOLCHAIN_GCC_ARM/MPS2.ld) + set(STARTUP_FILE TARGET_MPS2_M0P/device/TOOLCHAIN_GCC_ARM/startup_MPS2.S) + endif() +elseif("MPS2_M3" IN_LIST MBED_TARGET_LABELS) + target_include_directories(mbed-core + INTERFACE + TARGET_MPS2_M3/device + ) + + set(SYSTEM_FILE TARGET_MPS2_M3/device/system_CMSDK_CM3.c) + + if(${MBED_TOOLCHAIN} STREQUAL "ARM") + set(LINKER_FILE TARGET_MPS2_M3/device/TOOLCHAIN_ARM_STD/MPS2.sct) + set(STARTUP_FILE TARGET_MPS2_M3/device/TOOLCHAIN_ARM_STD/startup_MPS2.S) + elseif(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") + set(LINKER_FILE TARGET_MPS2_M3/device/TOOLCHAIN_GCC_ARM/MPS2.ld) + set(STARTUP_FILE TARGET_MPS2_M3/device/TOOLCHAIN_GCC_ARM/startup_MPS2.S) + endif() +elseif("MPS2_M4" IN_LIST MBED_TARGET_LABELS) + target_include_directories(mbed-core + INTERFACE + TARGET_MPS2_M4/device + ) + + set(SYSTEM_FILE TARGET_MPS2_M4/device/system_CMSDK_CM4.c) + + if(${MBED_TOOLCHAIN} STREQUAL "ARM") + set(LINKER_FILE TARGET_MPS2_M4/device/TOOLCHAIN_ARM_STD/MPS2.sct) + set(STARTUP_FILE TARGET_MPS2_M4/device/TOOLCHAIN_ARM_STD/startup_MPS2.S) + elseif(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") + set(LINKER_FILE TARGET_MPS2_M4/device/TOOLCHAIN_GCC_ARM/MPS2.ld) + set(STARTUP_FILE TARGET_MPS2_M4/device/TOOLCHAIN_GCC_ARM/startup_MPS2.S) + endif() +elseif("MPS2_M7" IN_LIST MBED_TARGET_LABELS) + target_include_directories(mbed-core + INTERFACE + TARGET_MPS2_M7/device + ) + + set(SYSTEM_FILE TARGET_MPS2_M7/device/system_CMSDK_CM7.c) + + if(${MBED_TOOLCHAIN} STREQUAL "ARM") + set(LINKER_FILE TARGET_MPS2_M7/device/TOOLCHAIN_ARM_STD/MPS2.sct) + set(STARTUP_FILE TARGET_MPS2_M7/device/TOOLCHAIN_ARM_STD/startup_CMSDK_CM7.S) + elseif(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") + set(LINKER_FILE TARGET_MPS2_M7/device/TOOLCHAIN_GCC_ARM/MPS2.ld) + set(STARTUP_FILE TARGET_MPS2_M7/device/TOOLCHAIN_GCC_ARM/startup_MPS2.S) + endif() +endif() + +set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_include_directories(mbed-core + INTERFACE + . + SDK +) + +target_sources(mbed-core + INTERFACE + analogin_api.c + gpio_api.c + gpio_irq_api.c + i2c_api.c + pinmap.c + port_api.c + serial_api.c + spi_api.c + us_ticker.c + + SDK/ETH_MPS2.c + SDK/fpga.c + SDK/mps2_ethernet_api.c + + ${SYSTEM_FILE} + ${STARTUP_FILE} +) diff --git a/targets/TARGET_ARM_SSG/TARGET_MPS2/TARGET_MPS2_M0/device/TOOLCHAIN_ARM_STD/MPS2.sct b/targets/TARGET_ARM_SSG/TARGET_MPS2/TARGET_MPS2_M0/device/TOOLCHAIN_ARM_STD/MPS2.sct index 3f8c33f848..4429e3c463 100644 --- a/targets/TARGET_ARM_SSG/TARGET_MPS2/TARGET_MPS2_M0/device/TOOLCHAIN_ARM_STD/MPS2.sct +++ b/targets/TARGET_ARM_SSG/TARGET_MPS2/TARGET_MPS2_M0/device/TOOLCHAIN_ARM_STD/MPS2.sct @@ -1,4 +1,4 @@ -#! armcc -E +#! armclang -E --target=arm-arm-none-eabi -x c -mcpu=cortex-m0 ;* MPS2 CMSIS Library ;* ;* Copyright (c) 2006-2019 Arm Limited diff --git a/targets/TARGET_ARM_SSG/TARGET_MPS2/TARGET_MPS2_M0P/device/TOOLCHAIN_ARM_STD/MPS2.sct b/targets/TARGET_ARM_SSG/TARGET_MPS2/TARGET_MPS2_M0P/device/TOOLCHAIN_ARM_STD/MPS2.sct index 3f8c33f848..53d9941ec9 100644 --- a/targets/TARGET_ARM_SSG/TARGET_MPS2/TARGET_MPS2_M0P/device/TOOLCHAIN_ARM_STD/MPS2.sct +++ b/targets/TARGET_ARM_SSG/TARGET_MPS2/TARGET_MPS2_M0P/device/TOOLCHAIN_ARM_STD/MPS2.sct @@ -1,4 +1,4 @@ -#! armcc -E +#! armclang -E --target=arm-arm-none-eabi -x c -mcpu=cortex-m0plus ;* MPS2 CMSIS Library ;* ;* Copyright (c) 2006-2019 Arm Limited diff --git a/targets/TARGET_ARM_SSG/TARGET_MPS2/TARGET_MPS2_M3/device/TOOLCHAIN_ARM_STD/MPS2.sct b/targets/TARGET_ARM_SSG/TARGET_MPS2/TARGET_MPS2_M3/device/TOOLCHAIN_ARM_STD/MPS2.sct index 3f8c33f848..74317cdb67 100644 --- a/targets/TARGET_ARM_SSG/TARGET_MPS2/TARGET_MPS2_M3/device/TOOLCHAIN_ARM_STD/MPS2.sct +++ b/targets/TARGET_ARM_SSG/TARGET_MPS2/TARGET_MPS2_M3/device/TOOLCHAIN_ARM_STD/MPS2.sct @@ -1,4 +1,4 @@ -#! armcc -E +#! armclang -E --target=arm-arm-none-eabi -x c -mcpu=cortex-m3 ;* MPS2 CMSIS Library ;* ;* Copyright (c) 2006-2019 Arm Limited diff --git a/targets/TARGET_ARM_SSG/TARGET_MPS2/TARGET_MPS2_M4/device/TOOLCHAIN_ARM_STD/MPS2.sct b/targets/TARGET_ARM_SSG/TARGET_MPS2/TARGET_MPS2_M4/device/TOOLCHAIN_ARM_STD/MPS2.sct index b90c10d391..067d379657 100644 --- a/targets/TARGET_ARM_SSG/TARGET_MPS2/TARGET_MPS2_M4/device/TOOLCHAIN_ARM_STD/MPS2.sct +++ b/targets/TARGET_ARM_SSG/TARGET_MPS2/TARGET_MPS2_M4/device/TOOLCHAIN_ARM_STD/MPS2.sct @@ -1,4 +1,4 @@ -#! armcc -E +#! armclang -E --target=arm-arm-none-eabi -x c -mcpu=cortex-m4 ;* MPS2 CMSIS Library ;* diff --git a/targets/TARGET_ARM_SSG/TARGET_MPS2/TARGET_MPS2_M7/device/TOOLCHAIN_ARM_STD/MPS2.sct b/targets/TARGET_ARM_SSG/TARGET_MPS2/TARGET_MPS2_M7/device/TOOLCHAIN_ARM_STD/MPS2.sct index b90c10d391..7d983a6284 100644 --- a/targets/TARGET_ARM_SSG/TARGET_MPS2/TARGET_MPS2_M7/device/TOOLCHAIN_ARM_STD/MPS2.sct +++ b/targets/TARGET_ARM_SSG/TARGET_MPS2/TARGET_MPS2_M7/device/TOOLCHAIN_ARM_STD/MPS2.sct @@ -1,4 +1,4 @@ -#! armcc -E +#! armclang -E --target=arm-arm-none-eabi -x c -mcpu=cortex-m7 ;* MPS2 CMSIS Library ;* diff --git a/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/CMakeLists.txt b/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/CMakeLists.txt new file mode 100644 index 0000000000..867af1951c --- /dev/null +++ b/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/CMakeLists.txt @@ -0,0 +1,54 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +if(${MBED_TOOLCHAIN} STREQUAL "ARM") + set(LINKER_FILE device/TOOLCHAIN_ARMC6/musca_ns.sct) + set(STARTUP_FILE device/TOOLCHAIN_ARMC6/startup_cmsdk_musca_ns.S) +elseif(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") + set(LINKER_FILE device/TOOLCHAIN_GCC_ARM/musca_ns.ld) + set(STARTUP_FILE device/TOOLCHAIN_GCC_ARM/startup_cmsdk_musca_ns.S) +endif() + +set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_include_directories(mbed-core + INTERFACE + . + device + device/drivers + partition +) + +target_sources(mbed-core + INTERFACE + gpio_api_ns.c + gpio_irq_api.c + i2c_api.c + lp_ticker.c + mbed_serial_platform.c + pinmap_ns.c + serial_api.c + sleep_api.c + tfm_ioctl_ns_api.c + us_ticker.c + + device/device_definition.c + device/system_core_init.c + + device/drivers/gpio_cmsdk_drv.c + device/drivers/i2c_ip6510_drv.c + device/drivers/musca_b1_scc_drv.c + device/drivers/timer_cmsdk_drv.c + device/drivers/timer_gp_drv.c + device/drivers/uart_pl011_drv.c + + partition/image_macros_preprocessed_ns.c + partition/image_macros_preprocessed_s.c + + ${STARTUP_FILE} +) + +target_link_libraries(mbed-core + INTERFACE + ${CMAKE_CURRENT_SOURCE_DIR}/s_veneers.o +) diff --git a/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/CMakeLists.txt b/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/CMakeLists.txt new file mode 100644 index 0000000000..8213ca1acc --- /dev/null +++ b/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/CMakeLists.txt @@ -0,0 +1,60 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +if(${MBED_TOOLCHAIN} STREQUAL "ARM") + set(LINKER_FILE device/TOOLCHAIN_ARMC6/musca_ns.sct) + set(STARTUP_FILE device/TOOLCHAIN_ARMC6/startup_cmsdk_musca_ns.S) +elseif(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") + set(LINKER_FILE device/TOOLCHAIN_GCC_ARM/musca_ns.ld) + set(STARTUP_FILE device/TOOLCHAIN_GCC_ARM/startup_cmsdk_musca_ns.S) +endif() + +set_property(GLOBAL PROPERTY MBED_TARGET_LINKER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${LINKER_FILE}) + +target_include_directories(mbed-core + INTERFACE + . + device + device/drivers + Libraries + partition +) + +target_sources(mbed-core + INTERFACE + flash_api_qspi.c + gpio_api_ns.c + gpio_irq_api.c + i2c_api.c + lp_ticker.c + mbed_serial_platform.c + pinmap.c + serial_api.c + sleep_api.c + tfm_ioctl_ns_api.c + us_ticker.c + + device/device_definition.c + device/system_core_init.c + + device/drivers/cache_drv.c + device/drivers/gpio_cmsdk_drv.c + device/drivers/i2c_ip6510_drv.c + device/drivers/musca_s1_scc_drv.c + device/drivers/qspi_ip6514e_drv.c + device/drivers/timer_cmsdk_drv.c + device/drivers/timer_gp_drv.c + device/drivers/uart_pl011_drv.c + + Libraries/mt25ql_flash_lib.c + + partition/image_macros_preprocessed_ns.c + partition/image_macros_preprocessed_s.c + + ${STARTUP_FILE} +) + +target_link_libraries(mbed-core + INTERFACE + ${CMAKE_CURRENT_SOURCE_DIR}/s_veneers.o +) diff --git a/tools/cmake/README.md b/tools/cmake/README.md index e027944b45..7913123ed1 100644 --- a/tools/cmake/README.md +++ b/tools/cmake/README.md @@ -22,6 +22,7 @@ The following targets are supported: - Ambiq Micro targets - Analog Devices targets - ARM FM targets +- ARM SSG targets - Cypress targets - Freescale targets - GigaDevice targets diff --git a/tools/cmake/cores/Cortex-M33-NS.cmake b/tools/cmake/cores/Cortex-M33-NS.cmake index 084cd3068e..94123bb7c8 100644 --- a/tools/cmake/cores/Cortex-M33-NS.cmake +++ b/tools/cmake/cores/Cortex-M33-NS.cmake @@ -9,16 +9,10 @@ if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") "-march=armv8-m.main" ) elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") - list(APPEND c_cxx_compile_options + list(APPEND common_options "-mcpu=cortex-m33+nodsp" "-mfpu=none" ) - list(APPEND asm_compile_options - "-mcpu=Cortex-M33.no_dsp.no_fp" - ) - list(APPEND link_options - "--cpu=Cortex-M33.no_dsp.no_fp" - ) endif() function(mbed_set_cpu_core_definitions target) diff --git a/tools/cmake/cores/Cortex-M33.cmake b/tools/cmake/cores/Cortex-M33.cmake index 7f9e36cf44..5b4a40c816 100644 --- a/tools/cmake/cores/Cortex-M33.cmake +++ b/tools/cmake/cores/Cortex-M33.cmake @@ -9,16 +9,10 @@ if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") "-march=armv8-m.main" ) elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") - list(APPEND c_cxx_compile_options + list(APPEND common_options "-mcpu=cortex-m33+nodsp" "-mfpu=none" ) - list(APPEND asm_compile_options - "-mcpu=Cortex-M33.no_dsp.no_fp" - ) - list(APPEND link_options - "--cpu=Cortex-M33.no_dsp.no_fp" - ) endif() function(mbed_set_cpu_core_definitions target)