* fix mbedtls bad pointer in function call (prototype mismatch) * fix issue with weak families functions implemented in static library, it will never be linked. fixed by redefining prototypes inside families * [ln882x] add support for lightning ln882x & ln882h families * add i2c (wire) support * add analog (adc) support * add watchdog support * [ln882x] changed default uart 0/1 pins; added board wl2s * [ln882x] fix IRQ & ADC pins * [ln882x] boards cosmetic * [ln882x] wifi sta use otp mac addr by default; re-enabled wifi powersave mode * [ln882x] clang-format clean code * [ln882x] clang-format clean code * Update families.json * Apply suggestions from code review * [ln882x] reformat json board files * [ln882x] os_queue cleanup * [ln882x] removed Beken auto-download command * [ln882x] removed personal script file * [ln882x] removed unusefull pi section in debugging.md * [ln882x] removed Arduino.h and changed private I2C definition * [ln882x] updated README.md * [ln882x] changed pin naming scheme to PA/PB * [ln882x] clean code * [ln882x] clean code * [ln882x] add ota image verification * Update push-dev.yml * [ln882x] fix boards ADC missing inputs] * [ln882x] removed reg_xxx fixup files and use include guards instead * [ln882x] cleanup code * [ln882x] cleanup code * [ln882x] fix lt_init weak functions linking * [ln882x] revert lt_api.h modification, fixed with previous commit * [ln882x] setup UF2 firmware for flasher with partitions * [ln882x] update README.md * [ln882x] include ln_wifi.h and ln_serial.h to avoid including bad headers on case insensitive systems * [ln882x] Replace RingBuffer by SerialRingBuffer * [ln882x] clang-format * [ln882x] update README.md * Apply suggestions from code review * Reformat board JSON files * Add mkdocs link redirect * Update ltchiptool to v4.12.0 --------- Co-authored-by: Kuba Szczodrzyński <kuba@szczodrzynski.pl>
46 lines
919 B
C
46 lines
919 B
C
/* Copyright (c) Etienne Le Cousin 2024-12-21. */
|
|
|
|
#include <libretiny.h>
|
|
#include <ota_image.h>
|
|
#include <sdk_private.h>
|
|
|
|
lt_ota_type_t lt_ota_get_type() {
|
|
return OTA_TYPE_SINGLE;
|
|
}
|
|
|
|
bool lt_ota_is_valid(uint8_t index) {
|
|
image_hdr_t ota_header;
|
|
|
|
if (OTA_ERR_NONE != image_header_fast_read(FLASH_OTA_OFFSET, &ota_header)) {
|
|
return false;
|
|
}
|
|
|
|
if (OTA_ERR_NONE != image_header_verify(&ota_header)) {
|
|
return false;
|
|
}
|
|
|
|
if (OTA_ERR_NONE != image_body_verify(FLASH_OTA_OFFSET, &ota_header)) {
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
uint8_t lt_ota_dual_get_current() {
|
|
return 0;
|
|
}
|
|
|
|
uint8_t lt_ota_dual_get_stored() {
|
|
return 0;
|
|
}
|
|
|
|
void lt_ota_set_write_protect(uf2_ota_t *uf2) {
|
|
LT_DM(OTA, "lt_ota_set_write_protect");
|
|
ln_nvds_set_ota_upg_state(UPG_STATE_DOWNLOAD_ING);
|
|
}
|
|
|
|
bool lt_ota_switch(bool revert) {
|
|
LT_DM(OTA, "lt_ota_switch(%d)", revert);
|
|
ln_nvds_set_ota_upg_state(UPG_STATE_DOWNLOAD_OK);
|
|
return true;
|
|
}
|