Commit Graph

117 Commits (5c7de756611e3692d364f166e42ab5490cd65362)

Author SHA1 Message Date
Tamas Kaman 551c3c553c Add ARM_MUSCA_B1 as a new target platform
Musca-B1 is a Cortex-M33 based target with security extension enabled.

- ARM_MUSCA_B1 is the non-secure target running mbed-os.
- ARM_MUSCA_B1_S is the secure target running TF-M.
- TF-M sources were imported and patched in previous commits.
- TF-M secure bootloader (McuBoot) for MUSCA_B1 is submitted by a
  pre-built binary.
- A post-build hook concatenates The secure and non-secure binaries,
  signs it and then concatenates the bootloader with the signed binary.

Change-Id: I4b36290941b5f0bb7aa7c12dda2f38b5c1e39ae2
Signed-off-by: Tamas Kaman <tamas.kaman@arm.com>
Signed-off-by: Gabor Abonyi <gabor.abonyi@arm.com>
2020-02-21 14:34:39 +01:00
Gabor Abonyi a5a6912b0e Fix Musca-A1 gcc linker
Was broken since 3e3af70afc

Signed-off-by: Gabor Abonyi <gabor.abonyi@arm.com>
2020-02-07 16:33:32 +01:00
Devaraj Ranganna bc7331b96e Import latest python scripts and MCUBoot image
To help with the integration of Musca B1 into Mbed OS, python
signing scripts and MCUBoot image and RSA private key for Musca A
has been updated from latest TF-M
(https://git.trustedfirmware.org/trusted-firmware-m.git/commit/?id=6c5be4a98e4d7055ee49076ca4e515fb4b172e66).

Signed-off-by: Devaraj Ranganna <devaraj.ranganna@arm.com>
2020-01-21 10:25:56 +00:00
Martin Kojtal c9c5b78ca3 "Update secure binaries for ARM_MUSCA_A1_S (ARMC6)" 2020-01-14 14:27:54 +00:00
Bence Kaposzta d5e89a25c6 Fix ethernet memory handling issues on CM3DS
Signed-off-by: Bence Kaposzta <bence.kaposzta@arm.com>
2019-11-11 14:39:08 +01:00
Kevin Bracey fb6aa3ef4f Clean up ARM toolchain heap+stack setup in targets
ARM Compiler 6.13 testing revealed linker errors pointing out
conflicting use of `__user_setup_stackheap` and
`__user_initial_stackheap` in some targets. Remove the unwanted
`__user_initial_stackheap` from the targets - the setup is
centralised in the common platform code.

Looking into this, a number of other issues were highlighted

* Almost all targets had `__initial_sp` hardcoded in assembler,
  rather than getting it from the scatter file. This was behind
  issue #11313. Fix this generally.
* A few targets' `__initial_sp` values did not match the scatter
  file layout, in some cases meaning they were overlapping heap
  space. They now all use the area reserved in the scatter file.
  If any problems are seen, then there is an error in the
  scatter file.
* A number of targets were reserving unneeded space for heap and
  stack in their startup assembler, on top of the space reserved in
  the scatter file, so wasting a few K. A couple were using that
  space for the stack, rather than the space in the scatter file.

To clarify expected behaviour:

* Each scatter file contains empty regions `ARM_LIB_HEAP` and
  `ARM_LIB_STACK` to reserve space. `ARM_LIB_STACK` is sized
  by the macro `MBED_BOOT_STACK_SIZE`, which is set by the tools.
  `ARM_LIB_HEAP` is generally the space left over after static
  RAM and stack.
* The address of the end of `ARM_LIB_STACK` is written into the
  vector table and on reset the CPU sets MSP to that address.
* The common platform code in Mbed OS provides `__user_setup_stackheap`
  for the ARM library. The ARM library calls this during startup, and
  it calls `__mbed_user_setup_stackheap`.
* The default weak definition of `__mbed_user_setup_stackheap` does not
  modify SP, so we remain on the boot stack, and the heap is set to
  the region described by `ARM_LIB_HEAP`. If `ARM_LIB_HEAP` doesn't
  exist, then the heap is the space from the end of the used data in
  `RW_IRAM1` to the start of `ARM_LIB_STACK`.
* Targets can override `__mbed_user_setup_stackheap` if they want.
  Currently only Renesas (ARMv7-A class) devices do.
* If microlib is in use, then it doesn't call `__user_setup_stackheap`.
  Instead it just finds and uses `ARM_LIB_STACK` and `ARM_LIB_HEAP`
  itself.
2019-10-23 14:53:49 +03:00
Jaeden Amero a848cd6987 psa: Update LPC55S69 and MUSCA_A1 TF-M binaries
Rebuild the TF-M binaries for the LPC55S69 and MUSCA_A1 using the latest
service updates. This allows the boards to use the PSA Crypto API 1.0b3.
2019-09-02 17:11:00 +01:00
Filip Jagodzinski 68d222b3d1 MPS2: Fix serial_init when FC is not used
After adding DEVICE_SERIAL_FC guards to serial_api.h
serial_set_flow_control is not available. In case of this
implementation, this function is a no-op and may be safely removed.
2019-07-09 16:12:32 +02:00
Maciej Bocianski fcde82ba4f HAL I2C: adds missing DEVICE_I2C guards 2019-06-19 23:08:55 +02:00
Oren Cohen 63487533aa Update secure binaries 2019-05-22 17:31:49 +03:00
Martin Kojtal fee07dcdf2 ARM_SSG: mbed_rtx remove empty line 2019-05-22 17:17:27 +03:00
Martin Kojtal a115c9333f gpio: indent fix 2019-05-22 17:17:27 +03:00
Gabor Kertesz 40627a5220 Fix last issues
Imports working McuBoot for reset.
Updates microsec ticker driver.
Default baudrate is set to 115200 to see TF-M boot messages.
Stack top is set to scatter file dependent and not hard-coded.
2019-05-22 17:17:26 +03:00
Michael Schwarcz bde2557629 Update secure binaries for ARM_MUSCA_A1_S 2019-05-22 17:17:26 +03:00
Michael Schwarcz 0fc629ce45 MUSCA_A1_NS: Add IAR support 2019-05-22 17:17:25 +03:00
Michael Schwarcz ef9c2721a0 Fix PinMap_UART_XX 2019-05-22 17:17:25 +03:00
Michael Schwarcz 1a182df19f Add serial_tx_pinmap() and serial_rx_pinmap() to serial_api.c 2019-05-22 17:17:25 +03:00
Michael Schwarcz c83ef8a444 Add license files 2019-05-22 17:17:24 +03:00
Michael Schwarcz 84bde31ea0 Increase Secure RAM by 4K
- 68KB Secure
- 60KB Non-secure
2019-05-22 17:17:24 +03:00
Michael Schwarcz 71683cbaa7 Fix secure linker script 2019-05-22 17:17:24 +03:00
Michael Schwarcz cebf30a701 Increase secure heap size to 0x4000 2019-05-22 17:17:24 +03:00
Michael Schwarcz 0701fb1c58 Move us_ticker.c to NS side 2019-05-22 17:17:23 +03:00
Michael Schwarcz 96268d91ef Updates after rebase
- postbuild: Use find_secure_image and update prebuilt binaries
- Add CMSIS driver headers
- Align with 2-region memory model
2019-05-22 17:17:23 +03:00
Michael Schwarcz a5fd9176bb Update target license headers
- Add SPDX identifiers and update dates
2019-05-22 17:17:22 +03:00
Michael Schwarcz ff1c769c7e Add ARM_MUSCA_A1 as a new target platform
Musca-A1 is a Cortex-M33 based target with security extension enabled.

- ARM_MUSCA_A1 is the non-secure target running mbed-os.
- ARM_MUSCA_A1_S is the secure target running TF-M.
- TF-M sources were imported and patched in previous commits.
- TF-M secure bootloader (McuBoot) for MUSCA_A1 is submitted by a pre-built binary.
- A post-build hook concatenates The secure and non-secure binaries,
  signs it and then concatenates the bootloader with the signed binary.
2019-05-22 17:17:20 +03:00
Kevin Bracey fd68691ce3 ARM SSG/FM: Cope correctly with NC GPIO 2019-05-02 12:16:34 +03:00
Shawn Shan 3d9b7df8e0 Fix the build failed issue of MPS2 targets with ARMC6.
Change-Id: I0205d381de331a827435d667c16297aaf5bb609e
Signed-off-by: Shawn Shan <shawn.shan@arm.com>
2019-04-15 16:56:44 +08:00
Shawn Shan 6374790b26 Add IAR support for the target AN382 of MPS2.
Add file MPS2.icf and startup_MPS2.S to suppout IAR of the target
AN382(ARM_MPS2_M0). Add "IAR" to supported_toolchain list.

Change-Id: I2b2ad7645166c4f973a8baa9c394521514183767
Signed-off-by: Shawn Shan <shawn.shan@arm.com>
2019-04-15 16:56:44 +08:00
Shawn Shan b3ee6cb706 Add IAR support for the target AN383 of MPS2.
Add file MPS2.icf and startup_MPS2.S to suppout IAR of the target
AN383(ARM_MPS2_M0P). Add "IAR" to supported_toolchain list.

Change-Id: Ib2278d34e265e53ad070aecd318ed4e6a355e3c0
Signed-off-by: Shawn Shan <shawn.shan@arm.com>
2019-04-15 16:56:44 +08:00
Shawn Shan b268aa6d6a Add GCC_ARM support for the target AN382 of MPS2.
Add files MPS2.ld and startup_MPS2.S to support GCC_ARM of the target
AN382(ARM_MPS2_M0). Add "GCC_ARM" to supported_toolchains list.

Change-Id: I7046b698834c82e94015e51eef9a0f5e1315ddaa
Signed-off-by: Shawn Shan <shawn.shan@arm.com>
2019-04-15 16:56:44 +08:00
Shawn Shan db57e58194 Add GCC_ARM support for the target AN383 of MPS2.
Add files MPS2.ld and startup_MPS2.S to support GCC_ARM of the target
AN383(ARM_MPS2_M0P). Add "GCC_ARM" to supported_toolchains list.

Change-Id: I48020b4f0f1b6e0aef3c53f5a3586bc9e9fca9c9
Signed-off-by: Shawn Shan <shawn.shan@arm.com>
2019-04-15 16:56:44 +08:00
Shawn Shan 0dbaeeffc2 Add IAR support for the target AN385 of MPS2.
Add file MPS2.icf and startup_MPS2.S to suppout IAR of the target
AN385(ARM_MPS2_M3). Add "IAR" to supported_toolchain list.

Change-Id: I038b05b8b21bd146a1568de897ed030ccd52ab79
Signed-off-by: Shawn Shan <shawn.shan@arm.com>
2019-04-15 16:56:44 +08:00
Shawn Shan 151d6e0bb4 Add IAR support for the target AN386 of MPS2.
Add file MPS2.icf and startup_MPS2.S to suppout IAR of the target
AN386(ARM_MPS2_M4). Add "IAR" to supported_toolchain list.

Change-Id: I4f43617c870197b9d39a4d4c9c12456adcc6f96f
Signed-off-by: Shawn Shan <shawn.shan@arm.com>
2019-04-15 16:56:44 +08:00
Shawn Shan 063d5dc295 Add IAR support for the target AN500 of MPS2.
Add file MPS2.icf and startup_MPS2.S to suppout IAR of the target
AN500(ARM_MPS2_M7). Add "IAR" to supported_toolchain list.

Change-Id: I0b8f018fc937727382b27ea0669940ae6675c834
Signed-off-by: Shawn Shan <shawn.shan@arm.com>
2019-04-15 16:56:44 +08:00
Shawn Shan 0d0f14b17f Add GCC_ARM support for the target AN385 of MPS2.
Add files MPS2.ld and startup_MPS2.S to support GCC_ARM of the target
AN385(ARM_MPS2_M3). Add "GCC_ARM" to supported_toolchains list.

Change-Id: I3110d4ab37a3294488a80a8dc1c929bfd87ce989
Signed-off-by: Shawn Shan <shawn.shan@arm.com>
2019-04-15 16:56:44 +08:00
Shawn Shan 6a9c0e930f Add GCC_ARM support for the target AN386 of MPS2.
Add files MPS2.ld and startup_MPS2.S to support GCC_ARM of the target
AN386(ARM_MPS2_M4). Add "GCC_ARM" to supported_toolchains list.

Change-Id: Ib8cea952e1ce0a5ef11ab623cca6f3786eab56f5
Signed-off-by: Shawn Shan <shawn.shan@arm.com>
2019-04-15 16:56:44 +08:00
Shawn Shan 8e674534ef Add GCC_ARM support for the target AN500 of MPS2.
Add files MPS2.ld and startup_MPS2.S to support GCC_ARM of the target
AN500(ARM_MPS2_M7). Add "GCC_ARM" to supported_toolchains list.

Change-Id: Ife109e9e1f2ec8e075e566f9d5c2ec7e3c5067f2
Signed-off-by: Shawn Shan <shawn.shan@arm.com>
2019-04-15 16:56:43 +08:00
Shawn Shan 33cbe26b53 MPS2 Re-Enablement in mbed
These file changes provide small fixes for various targets
on MPS2 platform in order to work properly and pass all
Greentea test cases. The __initial_sp has been explicitly set
in the targets' startup files, and also INITIAL_SP has been
given a different value. The values have been extracted from
the specific targets' Application Note documentation.
Affected targets are: ARM_MPS2_M0, ARM_MPS2_M0P, ARM_MPS2_M3,
ARM_MPS2_M4 and ARM_MPS2_M7.

Change-Id: I3d5d0e1ae386cdcc3ba5eb63be929267a257b139
Signed-off-by: Bence Kaposzta <bence.kaposzta@arm.com>
2019-04-15 16:56:43 +08:00
Donatien Garnier 176e5779ce Remove Arm Beetle target
Deprecation in preparation for Mbed OS 5.12 and move to IAR8 and ARMC6
2019-02-25 12:09:03 +00:00
Russ Butler 8669417e7b Add HAL API for spi pinmap
Add the functions to get spi pinmaps to all targets.
2019-02-08 09:10:37 -06:00
Russ Butler 34c176654d Add HAL API for serial pinmap
Add the functions serial_tx_pinmap, serial_rx_pinmap, serial_cts_pinmap
and serial_rts_pinmap to all targets.
2019-02-08 09:10:28 -06:00
Russ Butler 22a89773fa Add HAL API for i2c pinmap
Add the functions i2c_master_sda_pinmap, i2c_master_scl_pinmap,
i2c_slave_sda_pinmap and i2c_slave_scl_pinmap to all targets.
2019-02-08 09:10:12 -06:00
Russ Butler 4818f88d73 Add HAL API for analog in pinmap
Add the function analogin_pinmap to all targets.
2019-02-08 09:09:51 -06:00
Bence Kaposzta 709c121a0c Fixes typos in SMSC9220 Ethernet driver
Change-Id: I44a12ec1c57a926dadee81df1b84bd531d5cfccb
Signed-off-by: Bence Kaposzta <bence.kaposzta@arm.com>
2019-01-15 15:36:35 +01:00
Przemyslaw Stekiel 0111f5d5fe [ARM_SSG] Support boot stack size configuration option 2019-01-08 15:32:02 +01:00
Bence Káposzta 5dd6d19253 Merge branch 'master' into cm3ds_lp_requirements
Change-Id: I3c687694ee924938ec08ea40d0ddbcaf20dd0a73
2018-11-20 19:54:33 +01:00
Bence Kaposzta ee7cefc868 Add RTC and Sleep to CM3DS
This commit represents the second stage of the low power implementations
that are required from Mbed 5.10 onwards. Besides the default hal
implementations (rtc_api.c and sleep.c), the PL031 RTC's native driver
needed to be added. Due to HW limitations in SSE-050 and the CM3DS,
Deep Sleep couldn't be implemented, therefore it is functionally
identical to Sleep (WFI).

Change-Id: Ibed2bdb452f48c98024dc7ef07fb51a4425e0a80
Signed-off-by: Bence Kaposzta <bence.kaposzta@arm.com>
2018-11-14 11:10:26 +01:00
Bence Kaposzta 1b792317e4 Implement LP and us tickers to CM3DS
This commit represents the first stage of the low power implementations
that are required from Mbed 5.10 onwards. The LP ticker has been
implemented using a CMSDK Dual Timer's both timers (HW prescaler needed
to operate in the specified frequency domain), whereas the us ticker
uses one CMSDK Timer. Besides the default hal implementations (lp_ticker.c
and us_ticker.c), the CMSDK Dual Timer's native driver needed to be added.

Change-Id: I0b16b93dfac7753bebf430a2ce77761cb9c43ee5
Signed-off-by: Bence Kaposzta <bence.kaposzta@arm.com>
2018-11-14 11:10:09 +01:00
Martin Kojtal 0217f69511 Merge branch 'cm3ds_emac' of git://github.com/kapi90/mbed-os into dev_rollup 2018-11-08 09:21:38 +00:00
David Saada 542744d03c Support erase value in Flash HAL drivers, FlashIAP and block devices 2018-11-07 14:23:07 +02:00