Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[K32W0] SDK 2.6.11 fixes & features (#26827)
* [K32W0] Sync with SDK NCCL change Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Add a flag chip_with_pdm_encryption to disable PDM encryption * [K32W0] Fix name for OPENTHREAD_CONFIG_MAC_DEFAULT_MAX_FRAME_RETRIES_DIRECT * [K32W0] Fix reboot reason bug * [K32W0] Change date type for rebootCause, uint8_t is enough * [K32W0] Add stop advertising retry If stop advertising fails (timeout on event wait), then rearm the timer as fast as possible to retry. Once stop advertising is successful, slow advertising can start. Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Add ExitAction to OTATlvProcessor API An OTA TLV processor should have the option of executing an action when before a new processor is selected. This is called an exit action. It should be useful in the context of transferring multiple OTA images in external flash. Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Update OTA SDK usage * Application and bootloader processors are now the same, referred to as firmware processor. * Application can now register callbacks for descriptor processing. * When using default processors, the OTA flags gOTAUseCustomOtaEntry and gOTAAllowCustomStartAddress are defined and set to 1. Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Add JSON support for custom TLVs *A user can now specify a custom TLV format (tag, descriptor and path) by following the design of the ota_payload.schema. Option `--json` should be used to specify the JSON file path. * Add SSBL payload generation. Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Call ExitAction from TLV processor when all block has been consumed - Move code from ApplyAction to ExitAction method * [K32W0] Update usage of new OTA SDK APIs * [K32W0] Set custom OTA entry flags Custom OTA entry structure will be saved at the top of external flash by default. Fix heap start address. It should start after the stack size is subtracted from the top. Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Access OTA entry at Init and check OTA status * [K32W0] Update OTA tool to support SSBL Add a few examples to generate: * application update image * factory data update image * SSBL update image * app + SSBL + factory data update image * maximum number of custom OTA entries image Add README for K32W OTA. Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Add example for max entries testing Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Split default processors options * chip_enable_ota_firmware_processor enables the firmware (App/SSBL) processor. Enabled by default. * chip_enable_ota_factory_data_processor enables the factory data processor. Disabled by default. Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Update README SSBL/PSECT sections Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Bring README files up to date Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Fix chip_crypto_flavour name Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Fix readmes for k32w0 apps * [K32W0] Update SecLib path in SDK build file Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Fix typo in README files regarding OTA image tool Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Extend factory data restore mechanism The default restore mechanism is implemented as a weak function: `FactoryDataDefaultRestoreMechanism`. It is registered in `K32W0FactoryDataProvider::Init`, before factory data validation, and it can be overwritten at application level. Application can register additional restore mechanisms using the API: `K32W0FactoryDataProvider::RegisterRestoreMechanism`. Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Improve rotating device id Add README section related to rotating device id. If unique id is not found in factory data, use the default one. Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Fix error status for rotating device id getter Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Add retry mechanism when OTA is aborted Upon an aborted transfer, the OTA will retry a query on the backed up provider if CONFIG_CHIP_K32W0_OTA_ABORT_HOOK is set. The retry mechanism is disabled by default. Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Add ota_custom_entry_address option ota_custom_entry_address specifies at which address in external flash the OTA custom entry is saved during OTA. By default, it is set to the end of the PDM area: 0x000C1000. Add internal/external flash description in linker. Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Revert all applied actions upon error AbortAction for all selected OTA TLV processors will be called if any processor fails to apply its action. This is a safety mechanism to avoid having incompatible apps/data caused by partial updates (e.g. incompatibility between SSBL and app). Other changes: * Clean factory data RAM buffer * Increase reset resilience during OTA During OTA, if factory data is updated, it is firstly backed up in a PDM entry with id kNvmId_FactoryDataBackup. This entry should be deleted only if the OTA entry state is otaApplied, which means the device reset happened as expected. If OTA entry state is not otaApplied, it means the reset was caused by a different factor (e.g. power loss etc.) and the factory data should be restored from the PDM (for the default registered mechanism). * AbortAction should delete PDM id for factory data backup * Add reset state for OTATlvProcessor base class Derived classes should call OTATlvProcessor::ClearInternal() whenever they want to reset their state. * Update abort action for firmware processor OTA_ResetCurrentEepromAddress should be called before setting the offset to 0 through OTA_SetStartEepromOffset. Otherwise, a check in OTA_SetStartEepromOffset will fail and the state is not reset correctly. Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Add SPIFI_DUAL_MODE_SUPPORT info in README files For K32W041AM, the multi-image SSBL must also be compiled with SPIFI_DUAL_MODE_SUPPORT=1. Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Enclose CheckOtaEntry in OTA flag Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Enclose factory data backup usage in corresponding flag Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Update SDK in README files Fix minor issue with image partitions information. Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Fix DiagnosticDataProvider memory leak GetNetworkInterfaces returns some dynamically allocated data, which is supposed to be freed upon calling ReleaseNetworkInterfaces. Our platform implementation was using the default implementation of ReleaseNetworkInterfaces (which does nothing). This is an obvious memory leak, since subsequent calls to GetNetworkInterfaces dynamically allocated data that was never freed. Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Automate output binary signing Add BUILD.gn changes to call a python script postbuild that signs the output binary. Add signing python script. Update readme files. Signed-off-by: Andrei Menzopol <andrei.menzopol@nxp.com> * [K32W0] Fix chip_crypto_flavor typo Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Bump ot-nxp to latest Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Fix OTA generation tool Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Bump ot-nxp to latest Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Sync scripts and generated data with development Updated manufacturing flow. Signed-off-by: Mihai Ignat <mihai.ignat@nxp.com> Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Bump ot-nxp to latest Signed-off-by: Marius Tache <marius.tache@nxp.com> * Restyled by whitespace * Restyled by clang-format * Restyled by gn * Restyled by prettier-markdown * Restyled by shellharden * Restyled by shfmt * Restyled by autopep8 * Restyled by isort * [K32W0] Fix spell check Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Remove some binary examples (not used) Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Fix some lint errors Signed-off-by: Marius Tache <marius.tache@nxp.com> * [K32W0] Update workflow example yaml to latest Signed-off-by: Marius Tache <marius.tache@nxp.com> * Restyled by prettier-markdown * [K32W0] Fix script issues Signed-off-by: Marius Tache <marius.tache@nxp.com> * Restyled by autopep8 * Restyled by isort * [K32W0] Add PDM ID base value for apps Applications should use kNvmId_ApplicationBase alongside an offset to generate their own PDM IDs. Signed-off-by: Marius Tache <marius.tache@nxp.com> * Restyled by clang-format --------- Signed-off-by: Marius Tache <marius.tache@nxp.com> Signed-off-by: Andrei Menzopol <andrei.menzopol@nxp.com> Signed-off-by: Mihai Ignat <mihai.ignat@nxp.com> Co-authored-by: tanyue518 <ethan.tan@nxp.com> Co-authored-by: Martin Cuvelier <martin.cuvelier@nxp.com> Co-authored-by: Mihai Ignat <mihai.ignat@nxp.com> Co-authored-by: Andrei Menzopol <andrei.menzopol@nxp.com> Co-authored-by: Restyled.io <commits@restyled.io>
- Loading branch information