Commit Graph

34621 Commits (master)

Author SHA1 Message Date
Deepak V. Shreshti 92bfbccde7 Added TMPM4GR Platform
New Platform for Toshiba Added
2022-11-30 21:02:16 +05:30
Jamie Smith 0c2ee4f142 Add some additional I2C error codes 2022-11-29 00:12:42 -08:00
Jamie Smith 63fbaaf41d Add documentation for I2C_EVENT macros 2022-11-27 21:15:52 -08:00
Jamie Smith 0751932dd3 Rethink STM32 I2C v2 HAL 2022-11-27 21:14:58 -08:00
Martin Kojtal 7d1681180f
Merge pull request #15352 from OpenNuvoton/nuvoton_m2354_usbd
M2354: Support FS-USBD
2022-11-25 13:48:19 +01:00
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