Commit Graph

34616 Commits (d83be9ec09024d5812c20e03a2eda4e6d7f972b7)

Author SHA1 Message Date
cyliangtw 89ddd3f8e8 M2354 support FS-USBD and update TF-M for USB PHY select 2022-11-23 19:31:55 +08:00
Martin Kojtal 7ab5260e4e
Merge pull request #15343 from daniel-starke/complete-nucleo-h723zg
Add proper support for NUCLEO-H723ZG.
2022-11-16 12:03:27 +01:00
Daniel Starke ffcfa2fffe
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>
2022-11-10 22:44:06 +01:00
Martin Kojtal 90837c5674
Merge pull request #15337 from OpenNuvoton/nuvoton_m467_iot
Nuvoton: Support new target NUMAKER_IOT_M467
2022-11-02 13:24:01 +00:00
Martin Kojtal 102d2f86cc
Merge pull request #15317 from chdelfs/master
Fix for calculating CAN timing settings for STM32
2022-11-02 09:49:52 +00:00
Martin Kojtal 4f156de4bf
Merge pull request #15344 from MaximIntegrated/master
Correct MAX32620 boards macro for USB library.
2022-10-31 13:53:16 +00:00
Martin Kojtal f0643b1411
Merge pull request #15341 from MaximIntegrated/update-i2c-driver
Replace MAX32660, MAX32670 I2C driver with final one in MSDK
2022-10-31 13:29:05 +00:00
Ahmet Alincak 1432f8141b Correct MAX32620 boards macro for USB library. 2022-10-31 10:13:40 +03:00
Daniel Starke 540d78eb9c
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>
2022-10-28 20:24:13 +02:00
Daniel Starke 53d043d3a2
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>
2022-10-27 21:22:45 +02:00
Sadik.Ozer fb1d9c2878 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>
2022-10-27 13:47:44 +03:00
Chun-Chieh Li 733512d4ec M467: Remove invalid UTF-8 byte sequence 2022-10-19 13:33:21 +08:00
chdelfs 9cd4854cb8
Update can_api.c
Modified comment as discussed.
2022-10-12 17:16:59 +02:00
Martin Kojtal 881a901808
Merge pull request #15329 from YannCharbon/master
Add complete support of DHCP relay interface ID option
2022-09-27 16:20:31 +02:00
Martin Kojtal e4e1c10b38
Merge pull request #15330 from deepak-shreshti/master
Add TMPM4NR Platform
2022-09-27 16:19:24 +02:00
Martin Kojtal 7bb01c1eb3
Merge pull request #15333 from OpenNuvoton/nuvoton_fix_i2c_role_switch
Nuvoton: I2C: Fix potential role switch failure
2022-09-26 13:09:27 +01:00
Chun-Chieh Li dbc0f5b2b3 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
2022-09-23 09:45:56 +08:00
Chun-Chieh Li 5ba8afbd99 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
2022-09-22 19:03:41 +08:00
Chun-Chieh Li eaaec1c730 M467: Adjust UART pinmap to pass FPGA CI Test Shield test 2022-09-22 19:03:41 +08:00
Chun-Chieh Li a0a50865e9 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.
2022-09-22 19:03:40 +08:00
Chun-Chieh Li 42cfb84119 M467: I2C: Fix potential role switch failure
Fix in i2c_do_trsn(), interrupt doesn't change back to enabled due to premature return.
2022-09-22 19:00:38 +08:00
Deepak V. Shreshti c5ca907042 Removed UTF8 Chars 2022-09-09 17:46:40 +05:30
Deepak V. Shreshti 2a72a7079b Added TMPM4NR Platform
New Platform for Toshiba Added
2022-09-08 18:57:09 +05:30
Chun-Chieh Li e8dd9f43fa 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"]'.
2022-09-01 10:02:19 +08:00
Chun-Chieh Li 1dd95465f6 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
2022-09-01 10:02:19 +08:00
cyliangtw 2f8b60d501 M467: support fullspeed usb device 2022-09-01 10:02:19 +08:00
Chun-Chieh Li 196d10662e M467: Disable SCAP in RSA H/W
This is to follow designer's resolution.
2022-09-01 10:02:18 +08:00
Chun-Chieh Li 087daeacee 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
2022-09-01 10:02:18 +08:00
cyliangtw a430d70c0d M467 Support crypto AES-CCM H/W with one-shot & cascade mode 2022-09-01 10:02:18 +08:00
Chun-Chieh Li 88a529180f 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.
2022-09-01 10:02:18 +08:00
Chun-Chieh Li 21970e30f1 M467: Seed PRNG with TRNG for SCAP
According to TRM, it is suggested PRNG be seeded by TRNG on every Crypto H/W reset.
2022-09-01 10:02:17 +08:00
Chun-Chieh Li d92d75e9ac M467: Improve Crypto H/W wait helper routine
Add crypto_xxx_wait2 helper routine to replace crypto_xxx_wait for Crypto H/W control
2022-09-01 10:02:17 +08:00
cyliangtw 3fe95b2fb8 Update M467 AES-GCM for H/W gcm in-buffer creteria 2022-09-01 10:02:17 +08:00
cyliangtw 655ec9098c Update M467 AES-GCM to pass AWS-IoT test 2022-09-01 10:02:17 +08:00
cyliangtw 9f01968d64 M467: GCM support one simple mode instead of using composite GHASH & CTR MODE 2022-09-01 10:02:17 +08:00
cyliangtw 9dc7cd2f23 M467 Support crypto GCM H/W 2022-09-01 10:02:17 +08:00
cyliangtw 627a0b4d88 M467 H/W AES self-test pass 2022-09-01 10:02:16 +08:00
Chun-Chieh Li 24b0feb17f 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
2022-09-01 10:02:16 +08:00
Chun-Chieh Li ec2c15533e M467: Fix EMAC compile error with IAR 2022-09-01 10:02:16 +08:00
cyliangtw 679c747ba0 Adjust M460 EMAC RX/TX buffer 2022-09-01 10:02:16 +08:00
cyliangtw 877541d79d Add M460 EMAC driver 2022-09-01 10:02:15 +08:00
cyliangtw 501aa00fa0 Config for M460 EMAC 2022-09-01 10:02:15 +08:00
Chun-Chieh Li 0494866f5f 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
2022-09-01 10:02:15 +08:00
Chun-Chieh Li 8da2e31336 M467: Fix Greentea reset_reason test failure
HRESETRF is combined reset flag. Filter it out to avoid interference with reset reason check.
2022-09-01 10:02:15 +08:00
Chun-Chieh Li df77485f02 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
2022-09-01 10:02:14 +08:00
YannCharbon 0d2badf42c 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.
2022-08-30 17:49:41 +02:00
Martin Kojtal 807fd79651
Merge pull request #15320 from dgoo2308/lora_as923_sub_region
LoRaWAN AS923 Add SUB_REGION AS1..AS4
2022-08-25 17:32:38 +02:00
Martin Kojtal d4f97aab10
Merge pull request #15325 from deepak-shreshti/master
Updated System file and Scatter file
2022-08-25 14:13:30 +02:00
Martin Kojtal 48ae8447db
Merge pull request #15323 from majcher/patch-1
Fix missing mbed:: prefix issue
2022-08-25 14:13:16 +02:00
Martin Kojtal c9a3db540f
Merge pull request #15322 from jeromecoutant/PR_WL_SLEEP
STM32WL: fix MBED_CONF_STM32WL_LORA_DRIVER_SLEEP_MODE option
2022-08-24 15:47:14 +02:00