1 /* 2 * Copyright (c) 2021-2024, Arm Limited. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 * 6 */ 7 8 #include "image.h" 9 10 #include "Driver_Flash.h" 11 #include "flash_layout.h" 12 #include "region_defs.h" 13 #include "fih.h" 14 15 #ifndef TFM_BL1_MEMORY_MAPPED_FLASH 16 extern ARM_DRIVER_FLASH FLASH_DEV_NAME_BL1; 17 #endif /* !TFM_BL1_MEMORY_MAPPED_FLASH */ 18 bl1_image_get_flash_offset(uint32_t image_id)19uint32_t __WEAK bl1_image_get_flash_offset(uint32_t image_id) 20 { 21 switch (image_id) { 22 case 0: 23 return FLASH_AREA_0_OFFSET; 24 case 1: 25 return FLASH_AREA_1_OFFSET; 26 default: 27 FIH_PANIC; 28 } 29 } 30 31 #ifndef TFM_BL1_MEMORY_MAPPED_FLASH bl1_image_copy_to_sram(uint32_t image_id,uint8_t * out)32fih_int bl1_image_copy_to_sram(uint32_t image_id, uint8_t *out) 33 { 34 uint32_t flash_offset; 35 fih_int fih_rc; 36 37 flash_offset = bl1_image_get_flash_offset(image_id); 38 fih_rc = fih_int_encode(FLASH_DEV_NAME_BL1.ReadData(flash_offset, out, 39 sizeof(struct bl1_2_image_t))); 40 41 FIH_RET(fih_rc); 42 } 43 #endif /* !TFM_BL1_MEMORY_MAPPED_FLASH */ 44