1 /* 2 * Copyright (c) 2024 Nordic Semiconductor ASA 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #include <zephyr/kernel.h> 8 #include <zephyr/devicetree.h> 9 #include <zephyr/drivers/flash.h> 10 11 #include <../../bootutil/src/bootutil_priv.h> 12 #include "bootutil/bootutil_log.h" 13 14 #include "mcuboot_config/mcuboot_config.h" 15 16 #if defined(MCUBOOT_SLOT0_EXPECTED_WRITE_SIZE) || defined(MCUBOOT_SLOT1_EXPECTED_WRITE_SIZE) 17 BOOT_LOG_MODULE_DECLARE(mcuboot); 18 swap_write_block_size_check(struct boot_loader_state * state)19bool swap_write_block_size_check(struct boot_loader_state *state) 20 { 21 #ifdef MCUBOOT_SLOT0_EXPECTED_WRITE_SIZE 22 size_t flash_write_block_size_pri; 23 #endif 24 #ifdef MCUBOOT_SLOT1_EXPECTED_WRITE_SIZE 25 size_t flash_write_block_size_sec; 26 #endif 27 28 #ifdef MCUBOOT_SLOT0_EXPECTED_WRITE_SIZE 29 flash_write_block_size_pri = flash_get_write_block_size( 30 state->imgs[0][BOOT_PRIMARY_SLOT].area->fa_dev); 31 32 if (flash_write_block_size_pri != MCUBOOT_SLOT0_EXPECTED_WRITE_SIZE) { 33 BOOT_LOG_DBG("Discrepancy, slot0 expected write block size: %d, actual: %d", 34 MCUBOOT_SLOT0_EXPECTED_WRITE_SIZE, flash_write_block_size_pri); 35 } 36 #endif 37 38 #ifdef MCUBOOT_SLOT1_EXPECTED_WRITE_SIZE 39 flash_write_block_size_sec = flash_get_write_block_size( 40 state->imgs[0][BOOT_SECONDARY_SLOT].area->fa_dev); 41 42 if (flash_write_block_size_sec != MCUBOOT_SLOT1_EXPECTED_WRITE_SIZE) { 43 BOOT_LOG_DBG("Discrepancy, slot1 expected write block size: %d, actual: %d", 44 MCUBOOT_SLOT1_EXPECTED_WRITE_SIZE, flash_write_block_size_sec); 45 } 46 #endif 47 48 return true; 49 } 50 #endif 51