Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
* [K32W0] Sync with SDK NCCL change * [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. * [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. * [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. * [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. * [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. * [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. * [K32W0] Add example for max entries testing * [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. * [K32W0] Update README SSBL/PSECT sections * [K32W0] Bring README files up to date * [K32W0] Fix chip_crypto_flavour name * [K32W0] Fix readmes for k32w0 apps * [K32W0] Update SecLib path in SDK build file * [K32W0] Fix typo in README files regarding OTA image tool * [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`. * [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. * [K32W0] Fix error status for rotating device id getter * [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. * [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. * [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. * [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. * [K32W0] Enclose CheckOtaEntry in OTA flag * [K32W0] Enclose factory data backup usage in corresponding flag * [K32W0] Update SDK in README files Fix minor issue with image partitions information. * [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. * [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. * [K32W0] Fix chip_crypto_flavor typo * [K32W0] Bump ot-nxp to latest * [K32W0] Fix OTA generation tool * [K32W0] Bump ot-nxp to latest * [K32W0] Sync scripts and generated data with development Updated manufacturing flow. * [K32W0] Bump ot-nxp to latest * 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 * [K32W0] Remove some binary examples (not used) * [K32W0] Fix some lint errors * [K32W0] Update workflow example yaml to latest * Restyled by prettier-markdown * [K32W0] Fix script issues * 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. * 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