Commit Graph

34390 Commits (1dd95465f6c1bd4fe5402c80b885724e1122e569)

Author SHA1 Message Date
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
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
Deepak V. Shreshti 61e5a61e34 Removed UTF-8 Chars 2022-08-24 18:31:42 +05:30
Michał Majcherski b932850d62
Fix missing mbed:: profix issue 2022-08-23 22:47:56 +02:00
Deepak V. Shreshti adadcf3171 Updated System file and Scatter file 2022-08-23 18:26:51 +05:30
Jerome Coutant 1bf8667136 STM32WL: fix MBED_CONF_STM32WL_LORA_DRIVER_SLEEP_MODE option 2022-08-18 14:53:58 +02:00
Danny Goossen 3508ec2b71
apply astyle patch 2022-08-18 00:25:21 -04:00
Martin Kojtal b482f2dcec
Merge pull request #15312 from hallard/prep_rak3172sip
STMWL32 preparation for new chip rak3172sip
2022-08-17 13:11:07 +02:00
Charles 42e11ac9bd Allow to use LowPower fix as a parameter
Allow to use TCXO Control Voltage and LowPower fix as a parameter

leave current default value to avoid breaking changes

astyle fix
2022-08-16 13:45:45 +02:00
Danny Goossen 30a156056c
fix styling with astyle for LoRaPHYAS923.cpp 2022-08-11 11:08:40 -04:00
Danny Goossen 199c85629d LoRaWAN AS923 Add SUB_REGION AS1..AS4 2022-08-11 04:06:30 -04:00
Martin Kojtal 9ca538338a
Merge pull request #15311 from skazemi/fix/missing-global-up-callback
Fix missing global up callback in CellularContext
2022-08-03 13:13:22 +01:00
Martin Kojtal e6e5083e65
Merge pull request #15313 from OpenNuvoton/nuvoton_m487_fix_null_mpi_cmp
M487: Fix mbedtls_ecp_point_cmp() call with null argument
2022-08-03 13:07:19 +01:00
Chun-Chieh Li 127b5aa023 M487: 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-07-26 09:23:37 +08:00
Saeed Kazemi 19fddbf01a
Fix missing GLOBAL_UP callback on successful connect
Fix an issue where CellularContext::do_connect_with_retry() does not call NSAPI_STATUS_GLOBAL_UP callback and validate_ip_address() on successful connect after failed try in blocking mode.
2022-07-25 09:25:36 +02:00
Saeed Kazemi 63dc2fd550
Fix missing GLOBAL_UP callback on successful connect
Fix an issue where CellularContext::do_connect_with_retry() does not call NSAPI_STATUS_GLOBAL_UP callback on successful connect after failed try in blocking mode.
2022-07-22 17:01:39 +02:00
Martin Kojtal 91b793c4fd
Merge pull request #15306 from horeich/dev
Add missing unlock() in file_truncate in FATFileSystem
2022-07-04 14:55:12 +01:00
Andreas Reichle e42fa8ffe3 add missing unlock in file_truncate in FATFileSystem 2022-07-04 11:21:50 +02:00
Martin Kojtal daf61122e8
Merge pull request #15299 from mikrodust-henrikp/stm32f412xe_build_fix
Make STM32F412xE targets build
2022-06-29 08:52:37 +01:00
Martin Kojtal 6fcd9c617f
Merge pull request #15302 from yutotnh/rename-read_pulsewitdth_us
rename: PwmOut::read_pulsewitdth_us() to PwmOut::read_pulsewidth_us()
2022-06-27 14:41:02 +01:00
yutotnh 0992a6cc11
fix: typo in PwmOut.h (pulsewith -> pulsewidth) 2022-06-25 08:21:51 +09:00
Martin Kojtal bc6be806df
Merge pull request #15297 from byq77/cli2-cmake-artifact-name-property-support
cli2 artifact name property support for cmake targets
2022-06-23 16:05:06 +01:00
Martin Kojtal 10e01514c5
Merge pull request #15295 from hifoolno/bug5
lwiperf: fix double-free of pcb on error
2022-06-23 16:04:29 +01:00
yutotnh 236194f7c3
add: PwmOut::read_pulsewitdth_us() for compatibility 2022-06-23 21:59:03 +09:00
yutotnh 7fe679c72e
fix: typo in pwmout_api.h (pulsewitdth -> pulsewidth) 2022-06-22 00:00:29 +09:00
yutotnh 6a4ba443ea
rename: read_pulsewitdth_us to read_pulsewidth_us 2022-06-21 23:25:43 +09:00
Henrik Persson 684181c40b Add targets.json definition for STM32F412xE 2022-06-20 17:09:02 +02:00