Having IAR with the supported_c_libs parameter missing a setting for a
IAR causes build failures during CI. Since IAR is no longer supported by
Mbed remove IAR as a supported toolchain to remove this inconsistency.
The signing keys were previously imported from trusted-firmware-m
and located in mbed-os/tools/targets/musca_* (path for Mbed CLI 1).
This PR copie them into each target's directory as per the
convention of the new tools. Keys in the old path remain untouched
for backward compatibility, but they will be eventually removed
once we stop supporting Mbed CLI 1.
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.
This is the only target in targets.json that uses the `target.` prefix
when defining a configuration override. This looks like an error, and
causes issues with mbed-tools, so this commit removes the prefix.
Modify scatter files to add heap load region, and remove hard coded
values. Add supported c libs and bare metal profile to `targets.json`
configurations. Affects the following targets: EFM32GG_STK3700,
TB_SENSE_12, and EFM32GG11_STK3701.
In targets.json, ARM_MUSCA_B1 and ARM_MUSCA_S1 have alias target
names suffixed with `_NS`. They are identical to targets without
`_NS` and exist purely for compatibility with the old naming
convention we had. The CI builds them as separate targets and uses
extra resources.
As we are upgrading Musca targets to TF-M v1.2, it's time to clean
up the aliases.
The vector table needs to be copied from ROM to RAM, in order for us
to set IRQ handlers at run time. The address in RAM is defined by
`NVIC_RAM_VECTOR_ADDRESS` in `cmsis_nvic.h`, but its inclusion
was missing from Musca S1's `cmsis.h` and consequently the vector
table was not copied.
On most targets this results in a memory access error when we set
vectors. But Musca S1's ROM is in its MRAM (which can be accessed
like any RAMs), and this causes the ROM image to be modified
with no error/warning. On the next boot, MCUboot fails the image
integrity check.
This commit adds the missing include, in the same spirit as
01dd997d55.
* Partition files are synced with TF-M v1.2
* To have uniformity with TF-M v1.2, rename the following:
** image_macros_preprocessed_ns.c to `signing_layout_ns.c`
** image_macros_preprocessed_s.c to `signing_layout_s.c`
* `MCUBOOT_IMAGE_NUMBER` is set to 2 by default for TF-M v1.2,
therefore it is necessary that Mbed OS compiles the right macros
for when linking and using the partition files.
* Partition files are synced with TF-M v1.2
* To have uniformity with TF-M v1.2, rename the following:
** image_macros_preprocessed_ns.c to `signing_layout_ns.c`
** image_macros_preprocessed_s.c to `signing_layout_s.c`
* `MCUBOOT_IMAGE_NUMBER` is set to 2 by default for TF-M v1.2,
therefore it is necessary that Mbed OS compiles the right macros
for when linking and using the partition files
** Workaround **
The `region_defs.h` has an explicit definition of `BL2`, even
though it is already defined in target.json for `ARM_MUSCA_B1`.
This is because of Mbed CLI 1, as it can't seem to use the right
macro when linking the files for Mbed OS application when using
the ARMCLANG toolchain.
Rather than maintaining a specific `TARGET_TFM_V1_x`, its better to use
more generic name `TARGET_TFM_LATEST` to avoid confusion on the latest
TFM version supported by Mbed OS
* Rename the folder from `TARGET_TFM_V1_1` to `TARGET_TFM_LATEST`
* Update the CmakeLists.txt
* Change the name of the MUSCA targets to maintain uniformity
with TF-M v1.2
* Update target.json for PSA_V8_M to use `TFM_LATEST`
In `targets.json`, the base target ARM_MPS2_Target does not have `iar`
in `supported_c_libs`. But its inherited targets have `IAR` in
`supported_toolchains`, causing configuration check to fail.
Modify scatter files to specify heap load region and add small libraries
to list of supported libraries in target.json.# Please enter the commit message for your changes. Lines starting
This needs to be removed as there should not be a
name requirement for application CMake variable name.
Furthermore, in certain uses cases it prevents
successful builds for some Mbed targets. For instance
when building Greentea test applications for Mbed
targets that require post build operations as they do
not define APP_TARGET.
This commit introduces a default application start address (`0x1000`) and size limitation (`0xDF000`) to accomodate the Nordic USB bootloader.
The bootloader consists of a master boot record in flash from address `0x0` to `0x1000` and the actual bootloader application starting at `0xE0000` to the end of flash (`0x100000`). The bootloader enables firmware updates over USB using nRF Connect for Desktop.
More documentation regarding the open bootloader can be found here: https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.0.2/ble_sdk_app_open_bootloader.html
This commit introduces an option, `ep-atlas.enable-usb-stdio-console`, that will retarget the Mbed stdio console handle to a USBSerial instance if enabled.
Please note that if your application uses USB, it will conflict with this option. You should disable this option and implement a composite USB device in your application if you require stdio over USB.
This option is disabled by default so it will not cause issues with existing user code.
This commit introduces an implementation of the `subtarget_sdk_init` startup hook (called during `mbed_sdk_init`) that configures the internal regulators of the nRF52840.
The configuration sets up the internal regulator to output 3.3V. If this is not done, the default system voltage may be too low for the on-board indicator LEDs to conduct (ie: system voltage is lower than LED forward voltage).
The `mbed_sdk_init` startup hook is implemented at the NRF52-series level and so is unavailable for override. This commit adds an additional startup hook for NRF52 subtargets to perform any other startup initialization required.
Raise an exception in case of a failure to find an image to use
for the binary signature. This prevents the method from assuming
the image is always successfully retrieved and crash when
attempting to print a message
Update the BMCR0, BMCR1 registers to adjust the SEMC
re-order rules. This can improve the SDRAM stability
under multiple AXI masters system.
Signed-off-by: Gavin Liu <gang.liu@nxp.com>
Update the LUT to fix the winbond qspi flash erase issue.
Update the page program interface to fix the qspi flash program issue.
Signed-off-by: Tim Wang <tim.wang@nxp.com>
Change the lpspi default transfer delays to fix the data corruption
issue.
Add the loop and judgement to retry transfer when spi bus is busy.
Add the judgement statement to fix the hang issue.
Signed-off-by: TimWang <tim.wang@nxp.com>
The linux filesystem is case sensitive, this was causing our nightly build to
fail when attempting to find the script with its lower case name. The
name of the file has been kept the same as this seems to be STMs
convention.
* Correct board CMake target name to match board name
* Make MAX32625 depend on MAXIM CMake target to inherit its include dirs
* Correct path to linker files
Modify RZ_A1XX and RZ_A2XX target configurations to include
bare metal as a supported profile,and add list of supported standard libraries.
Changes affect the following targets: RZ_A1H, GR_LYCHEE, GR_MANGO.
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.
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.
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.
Refactor all GigaDevice 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.
Ensure WICED is included for Mbed targets that require it.
This also 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.
Refactor all Silicon Laboratories 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.
Refactor all Samsung 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.
The Appollo3 targets require dummy sections in stack and heap regions.
The stack dummy section does not contain any symbols. It is only used
for the linker to calculate the size of the stack sections and assign
values to stack symbols later.
The heap dummy region is used to identify the beginning of available dynamic memory.