Skip to content

Commit ba2c819

Browse files
boot/zephyr: Add CONFIG_SINGLE_APPLICATION_SLOT_RAM_LOAD
This option basically enables MCUBOOT_RAM_LOAD in a single slot configuration, meaning the image on slot0 will be loaded into RAM. Signed-off-by: Ederson de Souza <[email protected]>
1 parent 7cf448d commit ba2c819

File tree

3 files changed

+29
-14
lines changed

3 files changed

+29
-14
lines changed

boot/zephyr/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ zephyr_library_sources(
147147
)
148148
endif()
149149

150-
if(CONFIG_BOOT_RAM_LOAD)
150+
if(CONFIG_BOOT_RAM_LOAD OR CONFIG_SINGLE_APPLICATION_SLOT_RAM_LOAD)
151151
zephyr_library_sources(
152152
${BOOT_DIR}/bootutil/src/ram_load.c
153153
)

boot/zephyr/Kconfig

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -271,19 +271,6 @@ config BOOT_FIRMWARE_LOADER
271271

272272
endchoice
273273

274-
# Workaround for not being able to have commas in macro arguments
275-
DT_CHOSEN_Z_SRAM := zephyr,sram
276-
277-
if BOOT_RAM_LOAD
278-
config BOOT_IMAGE_EXECUTABLE_RAM_START
279-
hex "Boot image executable ram start"
280-
default $(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_SRAM))
281-
282-
config BOOT_IMAGE_EXECUTABLE_RAM_SIZE
283-
int "Boot image executable base size"
284-
default $(dt_chosen_reg_size_int,$(DT_CHOSEN_Z_SRAM),0)
285-
endif
286-
287274
config BOOT_DIRECT_XIP_REVERT
288275
bool "Enable the revert mechanism in direct-xip mode"
289276
depends on BOOT_DIRECT_XIP
@@ -320,6 +307,28 @@ config BOOT_SWAP_SAVE_ENCTLV
320307

321308
endif # !SINGLE_APPLICATION_SLOT
322309

310+
config SINGLE_APPLICATION_SLOT_RAM_LOAD
311+
bool "RAM load for single application slot"
312+
select SINGLE_APPLICATION_SLOT
313+
help
314+
If y, the image is loaded to RAM and executed from there. For this reason,
315+
the image has to be linked to be executed from RAM. The address that the
316+
image is copied to is specified using the load-addr argument to the
317+
imgtool.py script which writes it to the image header.
318+
319+
# Workaround for not being able to have commas in macro arguments
320+
DT_CHOSEN_Z_SRAM := zephyr,sram
321+
322+
if BOOT_RAM_LOAD || SINGLE_APPLICATION_SLOT_RAM_LOAD
323+
config BOOT_IMAGE_EXECUTABLE_RAM_START
324+
hex "Boot image executable ram start"
325+
default $(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_SRAM))
326+
327+
config BOOT_IMAGE_EXECUTABLE_RAM_SIZE
328+
int "Boot image executable base size"
329+
default $(dt_chosen_reg_size_int,$(DT_CHOSEN_Z_SRAM),0)
330+
endif
331+
323332
config BOOT_ENCRYPTION_SUPPORT
324333
bool
325334
help

boot/zephyr/include/mcuboot_config/mcuboot_config.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,12 @@
108108

109109
#endif /* CONFIG_SINGLE_APPLICATION_SLOT */
110110

111+
#ifdef CONFIG_SINGLE_APPLICATION_SLOT_RAM_LOAD
112+
#define MCUBOOT_RAM_LOAD 1
113+
#define IMAGE_EXECUTABLE_RAM_START CONFIG_BOOT_IMAGE_EXECUTABLE_RAM_START
114+
#define IMAGE_EXECUTABLE_RAM_SIZE CONFIG_BOOT_IMAGE_EXECUTABLE_RAM_SIZE
115+
#endif
116+
111117
#ifdef CONFIG_LOG
112118
#define MCUBOOT_HAVE_LOGGING 1
113119
#endif

0 commit comments

Comments
 (0)