Commit Graph

34519 Commits (626b4927e39101d50bcdcb1c475510389f67903c)

Author SHA1 Message Date
Jamie Smith 626b4927e3
scancode: version >31.2.4 contains fix for reindexing (#166)
The workaround is not needed anymore (v32 is breaking this reindexing as they created new command to do that anyway).

Co-authored-by: Martin Kojtal <martin.kojtal@arm.com>
2023-06-20 09:31:55 -07:00
Jookia 6b56f1c77d
LWIP::get_ip_addr: Prefer IPv4 over IPv6 link local addresses (#161)
When IPv6 is prefered it will choose a link local address on a network
that lacks IPv6 over a working IPv4 network, breaking networking.
Change this behaviour to prefer a link local address only as a last
resort.

This also changes LWIP::get_ipv6_addr to not return link local
addresses. Use get_ipv6_link_local_addr instead for this.
2023-05-23 10:49:59 -07:00
Jamie Smith 3f7d67c64c
Synchronize upstream changes - May 2023 edition (#160)
* fix STM32L1 FLASH_SIZE for cat.3 devices with DEV_ID 0x436

* Fix mesh connect semaphore not releasing causing blockage

* Add support of NSAPI_ICMP sockets in Nanostack

* STM32F1: add MCU_STM32F103xD support

* STM32F1: add MCU_STM32F103xG support

* test: Disable failing tests due to echo server

Some tests are failing as echo.mbedcloudtesting.com is not serving TLS
requests anymore.

Signed-off-by: Saheer Babu <saheer.babu@arm.com>

* Check CAN DLC length value

* Fix default interface ID only being used partially

If user sets the default interface ID for a socket (e.g. using setsockopt
with SOCKET_INTERFACE_SELECT), the default interface should take over
other interface selection mechanisms as a interface is bound to the socket.
This applies for both IPv6 local and global scopes for unicast messages
but not for multicast messages as these are bound to a multicast interface
using SOCKET_IPV6_MULTICAST_IF socket option.

* Targets: NXP: IMXRT: Fixed GCC_ARM lds syntax.

Signed-off-by: Yilin Sun <imi415@imi.moe>

* CAN: read only up to 8 bytes

If HAL implementation writes more than 8 bytes of data, error immediately.
CANMessage defines only 8 bytes of data, lenght cannot be > 8.

This fixes https://github.com/ARMmbed/mbed-os/issues/15361

Signed-off-by: Martin Kojtal <martin.kojtal@arm.com>

* STM32F303xC: add RAM_CCM in GCC linker script

* fix(drivers/emac): Remove incorrect RMII RX ER initialization

* fix(drivers/emac): Add missing SPDX indetifier to ST driver files

* fixed compiler inline issue

* Update Mbed version block

* removed HSE speed limitation for STM32G431RB

* Added HSE range validation for STM32g431xB

* added support for 4, 8 and 16MHz

* M487: Remove unused variable 'u32EscapeFrame'

Remove unused variable 'u32EscapeFrame' in BSP m480_ccap.h to avoid warnings

* force FIFO IRQ for FDCan RX on H7

* Add hardware CRC support to STM32G4

* add support for Nucleo-H745ZI

* Update MAX32670 peripheral drivers with final ones that use by SDK

Signed-off-by: Sadik.Ozer <sadik.ozer@analog.com>

* MAX32670 apply mbed required changes on peripheral drivers

Signed-off-by: Sadik.Ozer <sadik.ozer@analog.com>

* M467: Support CAN bus

1.  Update BSP CANFD driver
2.  Notes for implementation
    (1) Each CANFD instance supports two IRQ lines. Use only line 0. Line 1 is not used.
    (2) For Rx disabling multiple filter handles,
        1)  Map all filter handles to filter handle 0
        2)  Use Rx FIFO 0 for filter handle 0
    (3) For Rx enabling multiple filter handles,
        1)  Use Rx FIFO 0 for filter handle 0
        2)  Use Rx FIFO 1 for filter handle through first invoking can_filter()
        3)  Use dedicated Rx Buffer for other filter handles
        NOTE: H/W supports mask on Rx FIFO 0/1 but not on dedicated Rx Buffer.
    (4) For Tx, use only dedicated Tx Buffer. BSP CANFD driver doesn't support Tx FIFO/Queue.
    (5) Support no CAN FD.

* Fix 'new[]' array freed with 'delete'

The array _scratch_buf is allocated using new[] in line 761 of
mbed-os/storage/kvstore/securestore/source/SecureStore.cpp.
But it was freed using delete.

* Define default parameters of functions of derived class the same as the base class

The member function bringup() of class ThreadInterface redefines
parameter stack's default value to IPV6_STACK from the inherited default value
DEFAULT_STACK (in Interface).
The default value will be resolved statically, not by dispatch, so this
can cause confusion.
Similar arguments apply to LoWPANNDInterface and WisunInterface.

* Avoid calling virtual functions from constructors and destructors

Virtual functions are resolved statically (not dynamically) in
constructors and destructors for the same class. The call should be made
explicitly static by qualifying it using the scope resolution operator.

* Fix potentially overrunning write of sprintf

Format string "%d" requires 12 bytes (including the null terminator).
Also, use snprintf instead of sprintf to prevent buffer overflow.

* Fix system_clock.c location

Signed-off-by: Jasper Jonker <jasper.jonker@wingtra.com>

* Fix variable name

Signed-off-by: Jasper <jasper.jonker@wingtra.com>

* Change storage-class of secret_buf to static

Storing the address of a local variable (`secret_buf`)
in non-local memory (`prf_ptr->secret`) can cause a
dangling pointer bug if the address is used after the function returns.

* fix compiling errors of FATFileSystem when exFAT was enabled

* Add OSPI support for STM32H7

* Nuvoton: Enable extending sampling time for ADC/EADC

For all Nuvoton targets, enable extending sampling time in ADC/EADC clocks on per-pin basis.

---------

Signed-off-by: Saheer Babu <saheer.babu@arm.com>
Signed-off-by: Yilin Sun <imi415@imi.moe>
Signed-off-by: Martin Kojtal <martin.kojtal@arm.com>
Signed-off-by: Sadik.Ozer <sadik.ozer@analog.com>
Signed-off-by: Jasper Jonker <jasper.jonker@wingtra.com>
Signed-off-by: Jasper <jasper.jonker@wingtra.com>
Co-authored-by: caodd <caodd1993@qq.com>
Co-authored-by: YannCharbon <yann.charbon@ik.me>
Co-authored-by: Jerome Coutant <jerome.coutant@st.com>
Co-authored-by: Saheer Babu <saheer.babu@arm.com>
Co-authored-by: Martyx00 <martin.petran@protonmail.com>
Co-authored-by: Yilin Sun <imi415@imi.moe>
Co-authored-by: Martin Kojtal <martin.kojtal@arm.com>
Co-authored-by: akiroz <akiroz.vectis@gmail.com>
Co-authored-by: Charles <hallard04@free.fr>
Co-authored-by: Leonard Chiang <leochiang2002@gmail.com>
Co-authored-by: Chun-Chieh Li <ccli8@nuvoton.com>
Co-authored-by: jmcloud <jmcloud@tesla.com>
Co-authored-by: Augusto Zanellato <augusto.zanellato@gmail.com>
Co-authored-by: Sadik.Ozer <sadik.ozer@analog.com>
Co-authored-by: Mingjie Shen <shen497@purdue.edu>
Co-authored-by: Jasper Jonker <jasper.jonker@wingtra.com>
Co-authored-by: wdx04 <wdx04@outlook.com>
2023-05-17 01:18:28 -07:00
Jamie Smith 6e2e7b9414
Remove all source files exclusive to Arm Compiler and IAR (#159)
* Remove all source files exclusive to Arm Compiler and IAR

* Also remove 'TOOLCHAIN_ARM'

* Remove targets.json entries for ARM and IAR
2023-05-15 08:23:01 -07:00
Jamie Smith b9c04813b3
More fixes for sleep and clocking stuff on MIMXRT105x (#158)
* More fixes for sleep and clocking stuff on MIMXRT105x

* Fix a couple of inadvertent changes
2023-05-11 22:49:55 -07:00
Jamie Smith 04a76b3882
Refactor MIMXRT105x target labels and linker script, locate general data in DTCM memory instead of OCRAM for improved performance (#157) 2023-05-11 13:04:31 -07:00
Jamie Smith 9c65ad95cc
Bugfix: LPC1768 IAP could not copy flash to flash (#156)
* Bugfix: LPC1768 IAP could not copy flash to flash

* Add flash to flash test for flash API

* Fix style

* Style again

* Augh again
2023-04-26 19:20:19 -07:00
Jamie Smith d9d9f7003d
STM32 I2C v2 HAL: Fix repeated starts in transaction mode (#153)
* Try and fix repeated start for transactional I2C API

* Use OTHER_FRAME everywhere
2023-04-11 19:59:19 -07:00
Janco 9a4bdb864b
Add STM32F103xD and xG entries in CMakeLists.txt (#155)
* Add STM32F103xD, STM32F103xG series and fix STM32F103xE startup file

* Add system_clock.c file for STM32F103xD series

* Add STM32F103xD and STM32F103xG to targets.json

* Update CMakeLists.txt to add STM32F103xD and STM32F103xG series

add_subdirectory(TARGET_STM32F103xD EXCLUDE_FROM_ALL)
add_subdirectory(TARGET_STM32F103xG EXCLUDE_FROM_ALL)

* Add remaps for STM32F1 timers as in original mbed-os

Added extra remaps for timers 9 to 14 for STM32F1 needed in STM32F103xG series

#define AFIO_REMAP_TIM9_ENABLE    17
#define AFIO_REMAP_TIM10_ENABLE   18
#define AFIO_REMAP_TIM11_ENABLE   19
#define AFIO_REMAP_TIM13_ENABLE   20
#define AFIO_REMAP_TIM14_ENABLE   21

---------

Co-authored-by: Perez <maperez@hp.com>
2023-04-11 19:58:57 -07:00
Jamie Smith e93b80a006
I2C pinmap and HAL fixes for MIMXRT (#150)
* Start fixing up I2C on MIMXRT

* Fix typod peripheral names
2023-03-21 21:43:15 -07:00
Jookia ea044e0695
STM32F7 QSPI flash timeouts and 4-byte addressing (#152)
* STM32F7: Unconditionally enable QSPI workarounds

On the STM32769NI at least this patch is required for stable QSPI use.
Enable it uncondtionally in case other boards need it too.

Further discussions:

https://github.com/ARMmbed/mbed-os/issues/10049
https://github.com/ARMmbed/mbed-os/issues/15108

https://github.com/STMicroelectronics/STM32CubeF7/issues/52
https://github.com/STMicroelectronics/STM32CubeF7/issues/82

* QSPIF: Attempt 4-byte addressing on Macronix chips

mbed-os PR 11531 introduced 4-byte addressing in the QSPIF block device:

https://github.com/ARMmbed/mbed-os/pull/11531

During testing it was found that this code broke on the NRF52840_DK and
DISCO_F769NI.

The NRF52840_DK controller seems unable to handle 4-byte addressing at
all and has been disabled entirely in another code section.

The DISCO_F769NI breakage was attributed to the flash chip but after more
research I believe this is related to the QSPI controller, not the 4-byte
addressing itself.

Now that the QSPI controller has a workaround, enable 4-byte addressing
again and hope it works fine this time.
2023-03-21 09:19:22 -07:00
Janco ed4c4f432b
Add STM32F103xD, STM32F103xG series and fix STM32F103xE startup file (#151)
* Add STM32F103xD, STM32F103xG series and fix STM32F103xE startup file

* Add system_clock.c file for STM32F103xD series

* Add STM32F103xD and STM32F103xG to targets.json

---------

Co-authored-by: Perez <maperez@hp.com>
2023-03-11 09:25:51 -08:00
Jamie Smith af6d50aefe
Teensy 4.1 port with Ethernet support (#144)
* Start porting to Teensy 4.1, also fix some compiler warnings in FSL HAL

* Add hardware init for Teensy, refactor phy drivers, rework IMX EMAC autonegotiate code

* Revert some testing changes

* Fix incorrect phy address used outside of low_level_init_successful()

* Ethernet operational!

* Turn off DEBUG_IMX_EMAC

* Style fixes

* Style again

* Bugfix: mbed_lib.json files in project source dir were not getting picked up

* Bugfix: CLion debug configurations not generated properly due to variables going out of scope

* Support Teensy OTP MAC address
2023-03-08 20:18:33 -08:00
Jamie Smith bf5be9f630
Fix TLS example by enabling SHA-1 certificates out of the box (#149) 2023-03-07 17:37:05 -08:00
Ladislas de Toldi 16247af752
🔧 (profiles): Remove debug symbols from release profile, compress debug sections (#147) 2023-03-02 21:19:15 -08:00
Jamie Smith 1c00ec562f
Fix BlueNRG undefined reference to ble_cordio_get_hci_driver() (#145) 2023-03-01 09:12:00 -08:00
Ladislas de Toldi 4124a9a67d
(vscode + cmake) Add option MBED_GENERATE_VSCODE_CONFIG (#142) 2023-02-27 22:47:51 -08:00
Jamie Smith 823e795968
Fix serial_format() on MIMXRT1170 as well (#141) 2023-02-24 23:31:23 -08:00
Jamie Smith d9534516bf
Fix debug-less upload methods (#140)
* Fix debug-less upload methods

* Oops, fix build outside of Clion
2023-02-24 00:26:08 -08:00
JohnK1987 fb47f593e5
Add Wio-H725AE (#133)
* Add clock settings for H725xE

* Correction of memory mapping for H725xE

* Added new target WIO_H725AE

* Added WIO_H725 into targets.json

* Added upload methods file for WIO_H725

* Licence filled from original source file

* Space alignment

* Added macro MBED_SPLIT_HEAP for MCU_STM32H725xE

* Typo correction

* Correction of upload methods for WIO_H725AE
2023-02-21 09:13:38 -08:00
Ladislas de Toldi 3176fc7ca5
mbed-ce@master + fixes + gcc 11 support (#135)
* Fix rtos::Mutex stub, add trylock() method

* LowPowerTicker - Add ::attach(...) method + call callback

* mbed_power_management - rename sleep --> mbed_sleep to avoid conflicts

Fixes conflicts w/ unistd.h and boost::ut

* GCC 11/C++ 20 - Remove deprecated type_traits

* GCC 11/C++ 20 - Remove redundant templating of methods

* Warning - pragma ignore invalid-noreturn for unit tests

* Fix astyle errors

* Fix missing mbed_sleep() calls
2023-02-21 09:04:34 -08:00
Jamie Smith eda766ec8f
Refactor upload methods to streamline the debugging experience (#129)
* Change all debug configurations to not reset and exit on error.  Initial tasks.json implementation.

* st-util working on command line and VS Code!

* Convert STM32CUBE, fix spaces in GDB server task command

* pyocd working!

* Convert OpenOCD

* Convert JLINK

* Convert REDLINK upload method

* Fix CMake typo

* Try and fix some variable scope issues

* Initial CLion implementation.  Need to test with hardware.

* Add a separate task that kicks off a build before each debug session
2023-02-20 00:16:15 -08:00
Jamie Smith 141aaec603
MIMXRT: Make ncache region non-cached again (#132)
* MIMXRT: Make ncache region non-cached again

* Oops, remove print
2023-02-18 11:48:48 -08:00
Jamie Smith 7d9ab3ffdf
Fix MIMXRT serial_format() not working (#134) 2023-02-18 11:45:55 -08:00
Jamie Smith ccb664ea6f
Update MIMXRT clocking to hopefully fix deep sleep, fix boot issues on Teensy4 (#130)
* Fix incorrect image length in header preventing boot

* Fix ncache region being located in SEMC even on boards without it

* Don't reserve RAM for ncache anymore

* Fix crash when activating BufferedSerial on Teensy D0 and D1.  Also fix incorrect daisy register mapping.

* Fix missing space in linker script

* Start on fixing incorrect MIMXRT clock frequency

* LPM working!

* Clean up LPM and clocking

* Add teensy model identifier

* Fix license headers
2023-02-14 22:21:28 -08:00
JojoS 2d7f242850
device ram size is 40 kb, not 48 kB (#128)
* device ram size is 40 kb, not 48 kB
in total RAM+RAM1 it has 48 kB, but the regions are not continous.
This error is also arm-pack index.json

* add section for CCM
2023-01-30 20:56:13 -08:00
JohnK1987 2359487d9b
bug fix for Blackpill-F411CE (#127) 2023-01-21 12:38:36 -08:00
JohnK1987 54f06425f2
Add Blackpill-F411CE (#123)
* add target Blackpill-F411CE

* correction of Blackpill-F411CE

* add Blackpill to targets.json

* correction of STM32F411xE system_clock.c

* Update BLACKPILL_F411CE.cmake

Typo

* Update PinNames.h

LED correction

* Update PinNames.h

* Update BLACKPILL_F411CE.cmake

Correcting the wrong name in the Note2 about pyOCD.

* Update BLACKPILL_F411CE.cmake

Updated notes - an external debugger is required
2023-01-18 22:25:22 -08:00
Jamie Smith b91fc218ac
MIMXRT1060_EVK and Teensy 4.0 support (#113)
* Initial attempt at Teensy 4.0 support

* Hide internal target

* Fix some targets.json issues, add boot code for the MIMXRT1060_EVK.  It boots but tests aren't able to run properly yet.

* Disable LPTICKER on MIMXRT1060, fix pin names for newer dev kits

* Enable MIMXRT106x ethernet
2023-01-09 08:48:25 -08:00
Jamie Smith 280d40c5c7
Update for Doxygen 1.9.5 (#119)
* Update for Doxygen 1.9.5

* Also update doxygen version in docs.yaml

* Also fix Doxygen version in basic_checks.yaml
2023-01-03 21:26:26 -08:00
Jay Sridharan afba4e1eb5
Merge upstream changes into mbed-ce (#117)
* Fix for calculating CAN timing settings.

NominalPrescaler value needs to be as high as possible to ensure a good approximation of the target CAN speed.
Previous usage of macro IS_FDCAN_DATA_TSEG1 refers to (unsupported by Mbed ) FDCAN CAN controller settings and leads to too low prescaler values.
Usage Macro IS_FDCAN_NOMINAL_TSEG1 yields optimum results.
See also correct macro usage in line #158.

* Add complete support of DHCP relay interface ID option

RFC3315 specifies the following: "The relay agent MAY send the Interface-id
option to identify the interface on which the client message was received.
If a relay agent  receives a Relay-reply message with an Interface-id
option, the relay agent relays the message to the client through the
interface identified by the option."

The current implementation of the DHCP relay reply handling, the interface
ID field from the server response is ignored. Managing the interface ID
is very important especially as DHCP requests/replies use link-local
addresses. The consequence of this is that the interface must always be
specified because the routing layer cannot guess the correct interface.
Moreover, Mbed provides a mechanism to enable/disable the interface ID
option on a DHCP relay instance, so it is important to fully support it.

The reason why this issue has not been discoverd until now is that the DHCP
relay is mainly used on systems that use only one interface (such as Wi-SUN
routers). By default, when no interface ID is specified for the socket, the
latter will choose 6loWPAN interface by default. This means that if two
interfaces are used on the same device, the 6loWPAN interface is always
selected.

The commit adds code to retrieve the interface-id value contained within
the DHCP relay reply message and write it to a control message header
that is added to the socket message. This tells the socket which
interface to choose. If the interface-id option is not enabled on the
relay, this procedure is simply ignored.

* Support Nuvoton target NUMAKER_IOT_M467

1.  Based on alpha version BSP (85564a2716548e7b6d6a79a490c6d94a24cf9bcf)
2.  Continuing above, tweak BSP:
    (1) Add EPWM_ConfigOutputChannel2() to enable below 1Hz and below 1% duty cycle for PWM output (m460_epwm.h/c).
    (2) Add dummy RTC_WaitAccessEnable() for consistency with previous ports (m460_rtc.h).
3.  Target NuMaker-M467HJ V0.1 board temporarily
4.  Support Arduino UNO form factor for NUMAKER_IOT_M467 target
5.  Enable export to Keil/IAR project
    -   tools/arm_pack_manager/index.json
    -   tools/export/iar/iar_definitions.json

* M467: Fix Greentea reset_reason test failure

HRESETRF is combined reset flag. Filter it out to avoid interference with reset reason check.

* M467: Support HyperRAM

1.  For GCC, support multi-block .data/.bss initialization
2.  HyperRAM is mapped to two regions: 0x0A000000 and 0x80000000
    According to default system address map, 0x0A000000 is located at 'Code' region and 0x80000000 at 'RAM' region.
    With MPU enabled on Mbed OS, 'Code' region is write-never and 'RAM' region execute-never.
    0x80000000 is chosen because 'RAM' regioin is naturally for HyperRAM.
3.  Configurable multi-function pins for HBI
4.  To locate code/data at external HyperRAM:
    -   Specify __attribute__((section(".text.nu.exthyperram"))) for RO/.text/readonly section type
        Invoke mbed_mpu_manager_lock_ram_execution()/mbed_mpu_manager_unlock_ram_execution() to run HyperRAM code
    -   Specify __attribute__((section(".data.nu.exthyperram"))) for RW/.data/readwrite section type
    -   Specify __attribute__((section(".bss.nu.exthyperram"))) for ZI/.bss/zeroinit section type
5.  Add readme

* Config for M460 EMAC

* Add M460 EMAC driver

* Adjust M460 EMAC RX/TX buffer

* M467: Fix EMAC compile error with IAR

* M467: Support Crypto SHA/ECC H/W

1.  Prepare crypto common code
2.  Support list
    -   SHA
    -   ECC
    NOTE: AES/RSA are to support in other works
    NOTE: Compared to M487, M467's SHA supports context save & restore (DMA Cascade mode) and so no software fallback is needed.
    NOTE: M467's ECC, following M487, goes partial-module replacement and it can just improve primitives e.g. point addition/doubling by 2X,
          and cannot improve high level point multiplication because MbedTLS doesn’t open it.
          To improve performance best, full-module replacement is needed.
    NOTE: Continuing above, add support for Montgomery curve

* M467 H/W AES self-test pass

* M467 Support crypto GCM H/W

* M467: GCM support one simple mode instead of using composite GHASH & CTR MODE

* Update M467 AES-GCM to pass AWS-IoT test

* Update M467 AES-GCM for H/W gcm in-buffer creteria

* M467: Improve Crypto H/W wait helper routine

Add crypto_xxx_wait2 helper routine to replace crypto_xxx_wait for Crypto H/W control

* M467: Seed PRNG with TRNG for SCAP

According to TRM, it is suggested PRNG be seeded by TRNG on every Crypto H/W reset.

* M467: Support Crypto RSA H/W

1.  Crypto RSA H/W supports 1024/2048/3072/4096 key bits. Fall back to software implementation for other key bits.
2.  For decrypt, if MBEDTLS_RSA_NO_CRT isn't defined, go CRT, or normal.
3.  For decrypt, when blinding (f_rng != NULL), enable SCAP mode.
4.  Recover from Crypto RSA H/W failure:
    (1) Enable timed-out wait to escape from RSA H/W trap
    (2) On RSA H/W timeout, stop this RSA H/W operation
    (3) Fall back to S/W implementation on failure

NOTE: RSA 4096 key bits can fail with default mbedtls configuration MBEDTLS_MPI_MAX_SIZE.
      Enlarge MBEDTLS_MPI_MAX_SIZE to 1024 or larger if this feature is required.
NOTE: Fixed in BSP RSA driver, for non-CRT+SCAP mode, temporary buffer for MADDR6 requires to be key length plus 128 bits.
NOTE: Fixed in BSP RSA driver, DMA buffer must be 4-word aligned, or RSA H/W will trap.

* M467 Support crypto AES-CCM H/W with one-shot & cascade mode

* M467: Support Crypto ECC H/W in full-module replacement

1.  Replace ecp.c full-module, and other ec modules dependent on ecp.c (ecdh.c/ecdsa.c/ecjpake.c) will improve followingly.
2.  Recover from Crypto ECC H/W failure:
    (1) Enable timed-out wait to escape from ECC H/W trap
    (2) On ECC H/W timeout, stop this ECC H/W operation
    (3) Fall back to S/W implementation on failure
3.  Support Short Weierstrass curve
4.  Support Montgomery curve
    Montgomery curve has the form: B y^2 = x^3 + A x^2 + x
    (1) In S/W impl, A is used as (A + 2) / 4. Figure out its original value for engine.
        2eb06e7620/connectivity/mbedtls/include/mbedtls/ecp.h (L219-L220)
    (2) In S/W impl, B is unused. Actually, B is 1 for Curve25519/Curve448 and needs to configure to engine.
        2eb06e7620/connectivity/mbedtls/include/mbedtls/ecp.h (L221-L222)
    (3) In S/W impl, y-coord is absent, but engine needs it. Deduce it from x-coord following:
        https://tools.ietf.org/id/draft-jivsov-ecc-compact-05.html
        https://www.rieselprime.de/ziki/Modular_square_root
    NOTE: Fix Curve448 has wrong order value
          https://github.com/Mbed-TLS/mbedtls/pull/5811

* M467: Disable SCAP in RSA H/W

This is to follow designer's resolution.

* M467: support fullspeed usb device

* M467: Fix mbedtls_ecp_point_cmp() call with null argument

Guard from null argument passed to mbedtls_ecp_point_cmp() in ECC H/W port

* M467: Make mbedtls H/W port removable

Some M460 chips don't support AES/SHA/ECC/RSA H/W.
Make them removable from mbedtls H/W port through '"target.macros_remove": ["MBEDTLS_CONFIG_HW_SUPPORT"]'.

* Added TMPM4NR Platform

New Platform for Toshiba Added

* Removed UTF8 Chars

* M467: I2C: Fix potential role switch failure

Fix in i2c_do_trsn(), interrupt doesn't change back to enabled due to premature return.

* M467: Exclude UNO SPI pins from FPGA CI Test Shield test

UNO D8/D9/D10/D11/D12/D13 can wire to on-board SPI flash.
Exclude these pins from FPGA CI Test Shield test.

* M467: Adjust UART pinmap to pass FPGA CI Test Shield test

* M467: Support NuMaker-IoT-M467 board

Pinout comparison between NuMaker-M467HJ and NuMaker-IoT-M467 boards:
1.  UNO are unchanged
2.  LEDs are unchanged
3.  Buttons are unchanged, except button names
4.  NuMaker-M467HJ has HBI but NuMaker-IoT-M467 does
5.  NuMaker-M467HJ doesn't have ESP8266 but NuMaker-IoT-M467 does
6.  SDHC are unchanged

* Nuvoton: I2C: Fix potential role switch failure

Fix in i2c_do_trsn(), interrupt doesn't change back to enabled due to premature return.

Fix targets:
-   NUMAKER_PFM_NANO130
-   NUMAKER_PFM_NUC472
-   NUMAKER_PFM_M453
-   NUMAKER_PFM_M487/NUMAKER_IOT_M487
-   NUMAKER_IOT_M252
-   NUMAKER_IOT_M263A
-   NU_M2354

* Update can_api.c

Modified comment as discussed.

* M467: Remove invalid UTF-8 byte sequence

* Replace MAX32660, MAX32670 I2C driver with final one in MSDK
- apply clang-format
- Fix i2c repeated start issue

Signed-off-by: Sadik.Ozer <sadik.ozer@analog.com>

* Add proper support for NUCLEO-H723ZG.

- add board specific EMAC setup to connectivity/drivers/emac/TARGET_STM/TARGET_STM32H7
  - stm32h7_eth_init.c was derived from the NUCLEO-H743ZI2 code whilst comparing to the output of STM32CubeIDE
- complete board specific code in targets/TARGET_STM/TARGET_STM32H7/TARGET_STM32H723xG
  - PeripheralPins.c and PinNames.h were created by targets/TARGET_STM/tools/STM32_gen_PeripheralPins.py
  - ST ZIO connector pins in PinNames.h have been adapted from NUCLEO-H743ZI2
  - CONSOLE_TX and CONSOLE_RX have been interchanged in PinNames.h to match the actual board layout
  - startup_stm32h723xx.S was derived from startup_stm32h743xx.S
  - stm32h723xg.ld was completely rewritten to match the actual MCU including:
    - split heap support
    - SRAM2 and SRAM4 support
    - crash dump support
    - proper use of DTCM as stack
  - system_clock.c has been changed to support the maximal main clock speed of 550 MHz
- fix handling of HS in FS mode for the target board in targets/TARGET_STM/USBPhy_STM32.cpp
- add board definition to targets/targets.json and correct linker setup for the chip

Signed-off-by: Daniel Starke <daniel-email@gmx.net>

* Fix I2C for MCU_STM32H723xG

Add I2C configuration to MCU_STM32H723xG in target.json as suggested by @jeromecoutant.

Signed-off-by: Daniel Starke <daniel-email@gmx.net>

* Correct MAX32620 boards macro for USB library.

* Limit NUCLEO_H723ZG toolchain to GCC_ARM

Limit NUCLEO_H723ZG toolchain to GCC_ARM only.
This is the only toolchain this target has been tested with yet.

Signed-off-by: Daniel Starke <daniel-email@gmx.net>

* M2354 support FS-USBD and update TF-M for USB PHY select

* Rethink STM32 I2C v2 HAL

* Add documentation for I2C_EVENT macros

* Add some additional I2C error codes

* Added TMPM4GR Platform

New Platform for Toshiba Added

* Resolve delimeter issues for target.json

* Fix compile error on static pinmap targets

* github: Fix click version

Signed-off-by: Martin Kojtal <martin.kojtal@arm.com>

Signed-off-by: Sadik.Ozer <sadik.ozer@analog.com>
Signed-off-by: Daniel Starke <daniel-email@gmx.net>
Signed-off-by: Martin Kojtal <martin.kojtal@arm.com>
Co-authored-by: chdelfs <109847651+chdelfs@users.noreply.github.com>
Co-authored-by: YannCharbon <yann.charbon@ik.me>
Co-authored-by: Chun-Chieh Li <ccli8@nuvoton.com>
Co-authored-by: cyliangtw <cyliang@nuvoton.com>
Co-authored-by: Deepak V. Shreshti <DeepakVS@TOSHIBA-TSIP.COM>
Co-authored-by: Martin Kojtal <martin.kojtal@arm.com>
Co-authored-by: Sadik.Ozer <sadik.ozer@analog.com>
Co-authored-by: Daniel Starke <daniel-email@gmx.net>
Co-authored-by: Ahmet Alincak <Ahmet.Alincak@maximintegrated.com>
Co-authored-by: Jamie Smith <smit109@usc.edu>
Co-authored-by: Jamie Smith <jsmith@crackofdawn.onmicrosoft.com>
2022-12-31 20:20:01 -08:00
Jamie Smith 97c267219a
Fix all Doxygen errors and make any future errors fatal (#118)
* Start working on fixing doxygen warnings

* Upgrade doxyfile to Doxygen 1.9.1

* Clean up some unmatched groups and add some exclusions

* Fix docs for rtos::ThisThread not showing up

* Fix up KV store docs

* Fix incorrect @files, some more incorrect groups

* Fix lots of broken links

* Start fixing mbedtls groups

* Fix more mbedtls docs

* Fix remaining mbedtls files with missing or incorrect grouping

* Fix a huge amount of PSA docs errors

* Fix a few more mbedtls docs errors

* Fix __cplusplus not defined for docs, clean up call in callback typedef, fix some docs errors

* Fix some broken doc links in HAL headers

* Fix more PSA doc errors

* Fix some doxygen errors in networking code

* Fix lots of network related doc errors

* Try and fix some CI failures

* Use Doxygen Action instead of doxygen in Mbed container to get the right version

* Try removing docs check

* Add first part of doxygen action

* Add next part of doxygen action

* Fix yaml syntax error

* Add in license check fix

* Try using verbose scancode

* Fix some more docs issues, workaround scancode-toolkit#3179

* Clean up the LoRaRadio get_state() function on each implementation.  Also fix some other compile and doc errors.

* Fix all remaining doxygen errors

* Fix escaping, for realsies this time

* Remove Doxygen unsupported config options, fix some more get_status() declarations

* Fix some UNITTESTS build errors

* Fix one more compile error

* Another unittest error
2022-12-30 18:41:41 -05:00
Jamie Smith 91d1cb89fc
Fix build of BlueNRG components by making them their own targets (#111)
* Fix build of BlueNRG components by making them their own targets

* Link ble cordio to fix link order dependency

* Fix typo breaking STM32L562 build

* Revert "Link ble cordio to fix link order dependency"

This reverts commit 1a9192f01f8ecf152c00c777bcfe880a34434d25.
2022-12-04 09:37:51 -08:00
Jamie Smith 73f1f12158
Fix compilation of I2C code on static pinmap targets (#110) 2022-12-04 00:17:49 -08:00
Jamie Smith 5f30094ed5
Enable disabling target files for custom targets (#107)
* Enable disabling target files for custom targets

* Fix unittests

* Fix unittests again
2022-12-02 20:32:37 -08:00
JojoS 9d9ba58f68
add custom linker script (#103)
* add custom linker script
a custom linker script can be applied by adding the .ld filepath
as 2nd argument to mbed_set_post_build

* more detailed comment

* add if is_standalone for text cases

* replace COMMENT in add_custom_command by echo
COMMENT is not reliable printed
2022-11-28 09:01:49 -08:00
Jamie Smith 310aac306f
Fix license check CI failure (#104) 2022-11-28 08:59:14 -08:00
Jamie Smith 5b28f5bc96
Rethink STM32 I2C v2 HAL (#78)
* Initial attempt at rethinking the STM32 I2C v2 HAL.  Makes single-byte work properly and adds a new 'state' variable to track what the hardware is doing.

* Fix some initial test failures

* Fix incorrect logic

* Fix more incorrect logic

* Tabs to spaces

* Fix repeated starts with single-byte API

* Fix race condition causing stop() after nacked address to sometimes break things

* Fix missed i2c structs that should have been removed

* Fix doing a repeated start from single-byte to transaction API causing I2C peripheral to lock up

* Fix xferOperation being set wrong for repeated starts, causing the peripheral to hang

* Fix race condition with repeated start after single-byte operation

* Fix compilation for targets that use I2C IP v1

* Fix initialization of XferOperation for API v1, optimize stop()

* Remove unneeded line

* Add docs for I2C events
2022-11-20 17:46:30 -08:00
Jay Sridharan 961632a860
Clean up group/module definitions in doxygen (#97)
* Clean up group definitions in doxygen

* remove THIRD_PARTY_DOCS

* some stragglers

* fix astyle formatting
2022-11-12 23:27:50 -08:00
JojoS e4469c3b24
add depth, json and html to memap (#95) 2022-11-12 23:18:55 -08:00
Jamie Smith 72832c7bba
Add upload method support for MIMXRT1050 EVK (#84) 2022-11-06 16:13:10 -08:00
JojoS 0840a295eb
add separate cxx options for gcc (#80)
* add separate cxx options for gcc

* remove warning write-strings
2022-11-05 13:15:02 -07:00
JojoS a9fd4a3f21
add HW reset to STM32CUBE as is more reliable (#85) 2022-11-02 00:23:10 -07:00
JojoS 55899d2d94
Add disco f769 ni uploadcfg (#82)
* add-uploadcfg-disco_F76ni

* add-DISCO_F769NI-uploadcfg
fix comment

* tested all upload methods except stlink (old tool)
2022-10-31 20:05:54 -07:00
JojoS 7cd19915a2
Add nucleo f746 zg (#76)
* add upload for F746ZG

* fix comment
2022-10-19 19:24:27 -07:00
Jamie Smith 6a8ac81892
Fix ASM that interfered with the GCC linker script and made the linker try to zero the entire RAM space (#75) 2022-10-16 22:16:25 -07:00
Jamie Smith 022d4f472e
Fix hal-sleep-manager test on nRF52 and clean it up in general (#74) 2022-10-16 12:31:59 -07:00
Jamie Smith 32a9080c7d
Enable Arduino Nano 33 BLE (#55)
* Add upload target for Arduino Nano 33 BLE, fix linker script preprocessing, add option for USB serial by default

* astyle error

* Use HINTS instead of PATHS so that the Arduino dir is searched first

* Enable OpenOCD and PyOCD for Nano 33 BLE in SWD mode

* Fix missing dependency for USB tests on Windows

* Add RAM defines for nrf52840

* Fix mbed-storage-kv-config depending on SD card library even if said library was not enabled

* Update dsrdtr value

* No longer need to modify linker script now that we aren't using whole-archive!

* Add OPENOCD_ADAPTER_SERIAL

* Add handling for cmsis dap

* Fix typo

* Fix weak symbol issue causing Bluetooth to not work.  In this case, the weak implementation can simply be removed, because there's no legitimate case where it is used.
2022-10-16 10:32:38 -07:00
Jamie Smith ce093f1785
Don't use whole-archive linking (#71)
* First attempt at converting to OBJECT libraries.  Not working due to more object library limitations

* Only compile the main libraries as OBJECT, because that's all that CMake can be made to do right now.

* Fix availability of target-specific flags

* Missed some usages

* Fix some STM32 ethernet stuff that was not linking correctly

* More fixes for STM32 ethernet and weak symbols

* Fix prebuilt object file linking for MUSCA_S1

* Fix STM32 eth init license headers
2022-10-09 12:16:15 -07:00
Jamie Smith b90b13bd10
Fix a few mistakes in the I2C docs. (#66) 2022-10-08 21:47:45 -07:00