* upstream/mbed-os-5.15: (47 commits)
Update mbed version to 5.15.4
Squashed 'features/nanostack/sal-stack-nanostack/' changes from cc03296c27..b3fe5744d1
Squashed 'features/frameworks/nanostack-libservice/' changes from 9a61e73787..c6cae6992a
802.15.4 MCR20A RF driver update
802.15.4 Atmel RF driver update
802.15.4 STM S2LP driver update
Added Wi-SUN statistics interface
Allowed to set Wi-SUN certificates in DISCONNECTED state
Change unrecognised features to a warning, rather than error
Fix assertation ordering in tests
Define mbedtls_ecc_group_to_psa inline for NS world
Remove references to mbed-crypto
Move Mbed Crypto Greentea tests to Mbed TLS
Update Mbed TLS to latest version
Adjust Mbed TLS importer and config script
tls: Remove apache-2.0.txt from importer script
tools: Fix grammar in feature error message
M2351: Enable non-PSA minimal secure build
Cellular: Enable tac info for ALT1250
Nuvoton: Change WDT clock source to LXT
...
Add getsockopt options NSAPI_LATENCY and NSAPI_STAGGER to read
network specific timing constraints from socket.
-NS_LATENCY returns estimated latency to given address.
-NSAPI_STAGGER returns estimated initial delay that application
should wait before transmitting data to network.
Application can use the new options to avoid network congestion by
adjusting transmission delays and retry timeouts.
Add wrappers to make API usage easier:
-get_rtt_estimate_to_address
-get_stagger_estimate_to_address
This is backport of the https://github.com/ARMmbed/mbed-os/pull/12522
Add getsockopt options NSAPI_LATENCY and NSAPI_STAGGER to read
network specific timing constraints from socket.
-NS_LATENCY returns estimated latency to given address.
-NSAPI_STAGGER returns estimated initial delay that application
should wait before transmitting data to network.
Application can use the new options to avoid network congestion by
adjusting transmission delays and retry timeouts.
Add wrappers to make API usage easier:
-get_rtt_estimate_to_address
-get_stagger_estimate_to_address
This is backport of the https://github.com/ARMmbed/mbed-os/pull/12522
Issue: The problem is that there is a race condition introduced in that the LWIP thread is relying on the
interface as it is taken down by a application thread while calling disconnect.
In disconnect api called from application context, whd_emac_wifi_link_state_changed() will refer to netif interface
structure in its callback api netif_link_irq(netif). This netif will be cleared by remove_etherent_interface().
whd_emac_wifi_link_state_changed will post message to tcpip_thread. tcpip_thread will process the message and
call the callback api netif_link_irq(netif)
Calling sequence is whd_emac_wifi_link_state_changed -> remove_etherent_interface(). Hence there is a timing issue
that netif might be cleared first before tcpip thread process the message netif_link_irq(netif)
Fix: remove_etherent_interface() will post message to tcpip thread and tcpip:
thread process the message delete_interface()
which will actually remove the inferface from the netif_list.
Calling sequence is whd_emac_wifi_link_state_changed() message post -> remove_etherent_interface() message post.
message processing order netif_link_irq(netif) -> delete_interface().
Since both the processing is handled in single thread, processing of message is handled sequentially.
DISCO_F769NI EMAC driver may return ethernet packet with illegal
length when driver is under heavy load. In one case, the received
bytes indicate frame length of 53 bytes but advertised data length
was 65518 bytes. In another case EMAC driver variable
`EthHandle.RxFrameInfos.length` contained value 0xFFFF FFFC.
As a work-around accept only 1-1500 bytes long ethernet packets.
This assert in WhdSTAInterface.cpp causes rssi greentea test to fail
on Cypress parts. This is because the rssi GT test expects the negative
test case to return 0 and not assert.
- Remove wounding for the hardware CRYPTO block. The PSoC 6 MPN CYW9P62S1_43012EVB_01 was revised
to add the hardware crypto block.
- Add missing error checks for emac power up.
- Add a multiplied by 2 in the SDIO clock divider calculation to account for internal UDB divider.
Note: Fixes issues with intermittent WiFi firmware load failures on CY8CKIT_062_WIFI_BT,
CYW943012P6EVB_01, CYW9P62S1_43012EVB_01, CYW9P62S1_43438EVB_01.
DISCO_F769NI EMAC driver may return ethernet packet with illegal
length when driver is under heavy load. In one case, the received
bytes indicate frame length of 53 bytes but advertised data length
was 65518 bytes. In another case EMAC driver variable
`EthHandle.RxFrameInfos.length` contained value 0xFFFF FFFC.
As a work-around accept only 1-1500 bytes long ethernet packets.
MBED_DEPRECATE macros is added to string-based APIs.
New, non-string-based APIs are added in their place.
Wiced binaries rebuilt
Any existing stubs or mocks are adjusted to compile and run with the newly added non-string based functions.
Cypress Target update to support WiFi Manufacturing Test
Adding IOCTLS in WhdSTAInterface for MFG Test.
Fix WHD EMAC interface to release buffer when emac is not powered up or callback
is not registered.