| /* |
| * Copyright (c) 2018-2023 O.S.Systems |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #include <zephyr/logging/log.h> |
| LOG_MODULE_DECLARE(updatehub, CONFIG_UPDATEHUB_LOG_LEVEL); |
| |
| #include <zephyr/dfu/mcuboot.h> |
| #include <zephyr/storage/flash_map.h> |
| #include <zephyr/sys/printk.h> |
| |
| #include "updatehub_firmware.h" |
| |
| bool updatehub_get_firmware_version(const uint32_t partition_id, |
| char *version, int version_len) |
| { |
| struct mcuboot_img_header header; |
| |
| if (boot_read_bank_header(partition_id, &header, |
| sizeof(struct mcuboot_img_header)) != 0) { |
| LOG_DBG("Error when executing boot_read_bank_header function"); |
| return false; |
| } |
| |
| if (header.mcuboot_version != 1) { |
| LOG_DBG("MCUboot header version not supported!"); |
| return false; |
| } |
| |
| snprintk(version, version_len, "%d.%d.%d", |
| header.h.v1.sem_ver.major, |
| header.h.v1.sem_ver.minor, |
| header.h.v1.sem_ver.revision); |
| |
| return true; |
| } |