Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[K32W1] Bring SDK 2.12.6 changes (openthread#661)
* k32w1: radio: multiprotocol support (dual PAN) - PHY_get_ctx() - protocol stack PHY context binding - new PLME commands (moved from ASP) Signed-off-by: George Stefan <[email protected]> * k32w1: system: fix OSA integration Add checks for FSL_OSA_MAIN_FUNC_ENABLE Signed-off-by: George Stefan <[email protected]> * k32w1: lowpower: API update Add new functions needed by Zigbee stack: - PWRM_eFinishActivity() - PWRM_eStartActivity() - PWRM_u16GetActivityCount() Signed-off-by: George Stefan <[email protected]> * k32w1: ld: align stack to 8 bytes - stack top must be 8 bytes aligned as per AAPCS standard: 5.2.1.2 Stack constraints at a public interface - va_args for 64 bit values doesn't work otherwise Signed-off-by: George Stefan <[email protected]> * k32w1: build: add compilation flags NO_THREAD_1_3_FLAGS - disables 1.3 features OT_MAC_CSL_RECEIVER_ENABLE - enables CSL rx Signed-off-by: George Stefan <[email protected]> * k32w1: Add in k32w1 linker file new flag for lowpower purpose in shared memory for both cores * k32w1: add RCP FC support & 1M Baud rate Based on the K32W061 experiences, the RCP needs to use a baud rate of 1M in order to be able to keep the pace with the OT-BR. Also, UART Flow Control needs to be enabled. Signed-off-by: Alex Porosanu <[email protected]> * k32w1: add logging infra support This patch enables logging output from the OT device to be sent on the 2nd serial, if available. This is particulary useful in case of RCP. Signed-off-by: Alex Porosanu <[email protected]> * k32w1: config: ensure NCP HDLC buffer is properly sized The NCP HDLC buffer size must always be larger than the spinel TX buffer, otherwise some side effects can be triggered. Add this config option for k32w1 platform as it is for k32w0. Signed-off-by: Alex Porosanu <[email protected]> * k32w1: uart: allow DMA usage for UART In some cases (i.e. RCP) where the connections do not allow for reliable FC propagation from host to MCU, the LPUART DMA mechanism can be used. This ensures the reliability of the UART communications over spinel, which is mandatory for scenarios like border routers. As such this patch adds the glue defines and structures so that the user can select from the target to be built that DMA is desired, as opposed to the standard polling mechanism. Signed-off-by: Alex Porosanu <[email protected]> * k32w1: build: add RCP DMA only target This patch adds a specific target that allows the user to remove the FC pins required for reliable UART communications and rely on the DMA mechanism present within the platform. This target is to be used when the device is used as a dongle providing OT services to a Linux host. Signed-off-by: Alex Porosanu <[email protected]> * k32w1: build: add per target low power feature Some applications cannot go to low power i.e. RCP, and as such it's required that low power entry is disabled for these targets. Signed-off-by: Alex Porosanu <[email protected]> * k32w1: Use PWR_AllowDeviceToSleep/PWR_DisallowDeviceToSleep API provided by the PWR module Signed-off-by: Axel Le Bourhis <[email protected]> * k32w1: cleanup RCP Remove a couple of unused lines that got merged when the RCP. Signed-off-by: Alex Porosanu <[email protected]> * k32w1: DataPoll Message stops after a many hours when low power enabled Protect PWR_EnterLowPower with interrupt disable/enable because PWR_EnterLowPower does not used interrupt disable/enable protection at all. Cover the case when at begining PWR_EnterLowPower check the lpDisallowCount counter and it find it 0 which means can enter to low power, however if an interrupt which disallow entering into low power (like timerCallback for alarm milli handler) happens between lpDisallowCount check and __WFI instruction, then IRQ will be serviced and device will end up into an inconsistent state, i.e. lpDisallowCount will be set to 1 from serviced IRQ but the device will manage to enter in low power, leading to fail to process the event in the main loop and possible stays in low power for ever if it was the single wake-up interrupt. Also otTaskletsArePending is included into interrupt protection to cover the case when between otTaskletsArePending check and __WFI/PWR_EnterLowPower some Task.Post() is happening. * k32w1: Fix dependencies with latest SDK Signed-off-by: Marius Tache <[email protected]> * k32w1: add sdk board_lp files Signed-off-by: Andrei Menzopol <[email protected]> * k32w1: align hybrid OT/ZB example with the SDK structure This patch fixes the paths for different files that are used as part of the example to match their location inside of the SDK zip release. Signed-off-by: Alex Porosanu <[email protected]> This commit was partially cp Signed-off-by: Andrei Menzopol <[email protected]> * k32w1: entropy: add mutex otPlatEntropyGet is used by both Matter and Openthread to gather entropy through HW TRNG. Signed-off-by: Andrei Menzopol <[email protected]> * k32w1: system: add K32WRandomInit call Signed-off-by: Andrei Menzopol <[email protected]> * k32w1: sha256_sss: add EdgeLock Secure Enclave based SHA256/HMAC-SHA256 implementation Signed-off-by: Andrei Menzopol <[email protected]> * k32w1: aes_sss: add EdgeLock Secure Enclave based AES-ECB implementation Signed-off-by: Andrei Menzopol <[email protected]> * k32w1: radio: CSL receiver fixes NBU has to be awake during CSL receiver trx so that conversion from PHY timebase (NBU) to TMR timebase (host) is valid Signed-off-by: George Stefan <[email protected]> * k32w1: radio: fix otPlatRadioGetIeeeEui64() - redirect it to FWK API: PLATFORM_GetIeee802_15_4Addr() - can't use the radio registers since the value provided is not always valid Signed-off-by: George Stefan <[email protected]> * k32w1: Rename SNT files to ELEMU * [K32W1] Add support for 64bit timestamp Added the implementation of the "otPlatGetTime()" function which provides a 64bit timestamp in number of microseconds since last system boot up. Signed-off-by: Marian Chereji <[email protected]> * k32w1: Changed Low Power init sequence on Host in order to handshake with NBU Changed APP_ServiceInitLowpower() to be called before NBU started (PLATFORM_InitOT) because function PLATFORM_FwkSrvRegisterLowPowerCallbacks needs to register callbacks before NBU is started, otherways when low power is enabled on the host core, the radio core may need to set/release low power constraints as some resources needed by it are in the host power domain. * k32w1: radio: CSL rx: increase receive window Increase receive window to cover NBU wake up time - CSL_RECEIVE_TIME_AHEAD (1920 + 768) - MIN_RECEIVE_ON_AHEAD 0 - MIN_RECEIVE_ON_AFTER 368 * 16 Signed-off-by: George Stefan <[email protected]> * k32w1: radio: fix compilation when CSL Rx is disabled otMacFrameSetCslIe() is compiled when OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE is enabled Signed-off-by: George Stefan <[email protected]> * k32w1: fix TLS handshaking Double the OPENTHREAD_CONFIG_HEAP_INTERNAL_SIZE (to 16k) so that TLS handshaking succeeds. A smaller size will cause the process to fail with memory allocation error (MBEDTLS_ERR_MPI_ALLOC_FAILED -0x0010) Signed-off-by: George Stefan <[email protected]> * k32w1: add RNG file Signed-off-by: Andrei Menzopol <[email protected]> * k32w1: ld: remove NBU image dependency The NBU image must be updated with blhost as explained in README.md Signed-off-by: George Stefan <[email protected]> * k32w1: update SDK link to 2.12.6 Signed-off-by: Andrei Menzopol <[email protected]> --------- Signed-off-by: George Stefan <[email protected]> Signed-off-by: Alex Porosanu <[email protected]> Signed-off-by: Axel Le Bourhis <[email protected]> Signed-off-by: Marius Tache <[email protected]> Signed-off-by: Andrei Menzopol <[email protected]> Signed-off-by: Marian Chereji <[email protected]> Co-authored-by: George Stefan <[email protected]> Co-authored-by: Corentin Goubin <[email protected]> Co-authored-by: Alex Porosanu <[email protected]> Co-authored-by: Axel Le Bourhis <[email protected]> Co-authored-by: Marius Vilvoi <[email protected]> Co-authored-by: Marius Tache <[email protected]> Co-authored-by: Yanis Viola <[email protected]> Co-authored-by: Marian Chereji <[email protected]>
- Loading branch information