Commit Graph

1032 Commits (mbed-os-6.17.0-rc3)

Author SHA1 Message Date
Saheer Babu 5c8e60f80b
Merge pull request #15358 from akiroz/fix-stm32-emac-rmii-pins
fix(drivers/emac): [mbed6] Remove incorrect RMII RX ER initialization
2023-02-01 15:13:40 +00:00
akiroz 0431f16107
fix(drivers/emac): Add missing SPDX indetifier to ST driver files 2023-01-26 11:19:59 +08:00
Martin Kojtal a852898ad1
Merge pull request #15370 from YannCharbon/sockopt_interface_id
Fix socket default interface ID only being used partially
2023-01-16 15:44:59 +00:00
akiroz d76d5b87d1
fix(drivers/emac): Remove incorrect RMII RX ER initialization 2023-01-16 16:56:55 +08:00
YannCharbon b8b638dd41 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.
2023-01-10 18:45:39 +01:00
Saheer Babu 4e28fbfa3c 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>
2023-01-06 13:15:24 +00:00
Martin Kojtal 06566fc569
Merge pull request #15366 from YannCharbon/icmp_sockets
Add support of NSAPI_ICMP sockets in Nanostack
2023-01-05 16:40:52 +00:00
YannCharbon d327f3f2d2 Fix mesh connect semaphore not releasing causing blockage 2023-01-03 15:25:10 +01:00
YannCharbon aa7bf3e435 Add support of NSAPI_ICMP sockets in Nanostack 2023-01-03 15:12:26 +01: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
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
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
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
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
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
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
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
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
xiaohuizhang98 fe13765d1f lwiperf: fix double-free of pcb on error 2022-06-11 00:08:46 +08:00
Martin Kojtal d994efc2b8
Merge pull request #15273 from Tobi15/main
add the possibility to customize the delimiter of the ATHandler in AT…
2022-06-10 11:13:13 +01:00
Martin Kojtal 6170f55c64
Merge pull request #15287 from OpenNuvoton/nuvoton_fix_ecp-load-curve448
Mbed TLS: Fix wrong MPI N in ECP Curve448 curve
2022-06-02 10:31:39 +01:00
Chun-Chieh Li b402c97136 M487: Fix ECP P + P operation
Engine doesn't support P + Q when P and Q are the same. Workaround by 2*P
2022-05-24 17:38:02 +08:00
Chun-Chieh Li 3adb735d3e M487: Fix typo with DES H/W port 2022-05-24 16:37:46 +08:00
Chun-Chieh Li 9345c8a014 Mbed TLS: Fix wrong MPI N in ECP Curve448 curve
In loading Curve448, MPI N is in uninitialized state and its sign flag N.s isn't initialized to 1.
This is fixed by following:
https://github.com/Mbed-TLS/mbedtls/pull/5811
2022-05-24 16:24:46 +08:00
Rami Elkhatib fdf37c3217 MPS2 CM3DS ethernet words instead of bytes
The functions smsc9220_receive_by_chunks and smsc9220_send_by_chunks are
supposed to implement receiving and sending packets by chunks. However,
the functions SMSC9220_EMAC::low_level_input and SMSC9220_EMAC::link_out,
which call them respectively, already require or assemble the full packet.
Also, smsc9220_receive_by_chunks doesn't implement the "chunks" part.

This commit renames the functions to smsc9220_receive_packet and
smsc9220_send_packet. The functions now do their operations by word
instead of by bytes. The functions SMSC9220_EMAC::low_level_input and
SMSC9220_EMAC::link_out already handle allocation, continuity and word
alignment of the packet buffer.
2022-05-12 18:27:49 -04:00
Rami Elkhatib cbfda0e23b MPS2 CM3DS ethernet fix heap bug
The function SMSC9220_EMAC::low_level_input should create a heap for the
packet equal to the size of the message (most of which are couple hundred
bytes). The current code uses maximum frame size (1522 bytes) for each
packet. This will cause the heap to quickly fill up. In fact, the default
memory size (lwip.mem-size) used for this heap is 1600 bytes. This means
that once you have one other packet allocated (extremely common), the
heap allocation will always fails.

Also, it is recommend to increase the default lwip.mem-size because that
amount is very small especially if you send or receive a few large packets
in the network. This is NOT done in current commit.
2022-05-12 18:23:41 -04:00
Rami Elkhatib 14aa25b8b7 MPS2 CM3DS ethernet fix deprecation warnings
The sleep_for function is updated to use the chrono time arguments since
the regular ones are deprecated.
2022-05-12 18:18:59 -04:00
tobi15 73f2dd6379 modify method signatures to pass astyle tests 2022-05-10 14:27:54 +02:00
Vincent Coubard c34640495f
Bluetooth: Inform privacy risk of using signed writes.
The Cordio stack uses a single CSRK. It can be used by a
malicious device to track the Mbed OS application if signed
writes are used.

Signed-off-by: Vincent Coubard <vincent.coubard@arm.com>
2022-05-06 13:44:33 +01:00