[sw, rom_exts] Change `meson.build` to add slot B images generation
Signed-off-by: Silvestrs Timofejevs <silvestrst@lowrisc.org>
diff --git a/sw/device/rom_exts/meson.build b/sw/device/rom_exts/meson.build
index b2c6f0b..a0ba3d0 100644
--- a/sw/device/rom_exts/meson.build
+++ b/sw/device/rom_exts/meson.build
@@ -6,13 +6,38 @@
#
# See sw/device/exts/common/flash_link.ld for additional info about these
# parameters.
-rom_ext_linkfile = files(['rom_ext_slot_a.ld'])
-rom_ext_link_args = [
- '-Wl,-L,@0@'.format(meson.source_root()),
- '-Wl,-T,@0@/@1@'.format(meson.source_root(), rom_ext_linkfile[0]),
- '-Wl,--build-id=none',
-]
-rom_ext_link_deps = [rom_ext_linkfile]
+
+rom_ext_linkfile_slot_a = files(['rom_ext_slot_a.ld'])
+rom_ext_linkfile_slot_b = files(['rom_ext_slot_b.ld'])
+
+rom_ext_link_info = {
+ 'rom_ext_slot_a' :
+ [
+ # Link arguments for slot A.
+ [
+ '-Wl,-L,@0@'.format(meson.source_root()),
+ '-Wl,-T,@0@/@1@'.format(meson.source_root(), rom_ext_linkfile_slot_a[0]),
+ '-Wl,--build-id=none',
+ ],
+ # Link dependency file for slot A.
+ [
+ rom_ext_linkfile_slot_a,
+ ],
+ ],
+ 'rom_ext_slot_b' :
+ [
+ # Link arguments for slot B.
+ [
+ '-Wl,-L,@0@'.format(meson.source_root()),
+ '-Wl,-T,@0@/@1@'.format(meson.source_root(), rom_ext_linkfile_slot_b[0]),
+ '-Wl,--build-id=none',
+ ],
+ # Link dependency file for slot B.
+ [
+ rom_ext_linkfile_slot_b,
+ ],
+ ],
+}
# ROM_EXT manifest generator.
rom_exts_manifest_offsets_header = custom_target(
@@ -45,38 +70,40 @@
)
foreach device_name, device_lib : sw_lib_arch_core_devices
- rom_ext_elf = executable(
- 'rom_ext_' + device_name,
- sources: [
- 'rom_ext_manifest.S',
- 'rom_ext_start.S',
- 'rom_ext.c',
- ],
- name_suffix: 'elf',
- link_args: rom_ext_link_args,
- link_depends: rom_ext_link_deps,
- dependencies: [
- device_lib,
- sw_lib_dif_uart,
- sw_lib_runtime_hart,
- sw_lib_runtime_print,
- ],
- )
+ foreach slot, slot_link_args : rom_ext_link_info
+ rom_ext_elf = executable(
+ slot + '_' + device_name,
+ sources: [
+ 'rom_ext_manifest.S',
+ 'rom_ext_start.S',
+ 'rom_ext.c',
+ ],
+ name_suffix: 'elf',
+ link_args: slot_link_args[0],
+ link_depends: slot_link_args[1],
+ dependencies: [
+ device_lib,
+ sw_lib_dif_uart,
+ sw_lib_runtime_hart,
+ sw_lib_runtime_print,
+ ],
+ )
- rom_ext_embedded = custom_target(
- 'rom_ext_' + device_name,
- command: make_embedded_target,
- input: rom_ext_elf,
- output: make_embedded_target_outputs,
- build_by_default: true,
- )
+ rom_ext_embedded = custom_target(
+ slot + '_' + device_name,
+ command: make_embedded_target,
+ input: rom_ext_elf,
+ output: make_embedded_target_outputs,
+ build_by_default: true,
+ )
- custom_target(
- 'rom_ext_export_' + device_name,
- command: export_embedded_target,
- input: [rom_ext_elf, rom_ext_embedded],
- output: 'rom_ext_export_' + device_name,
- build_always_stale: true,
- build_by_default: true,
- )
+ custom_target(
+ slot + '_export_' + device_name,
+ command: export_embedded_target,
+ input: [rom_ext_elf, rom_ext_embedded],
+ output: slot + '_export_' + device_name,
+ build_always_stale: true,
+ build_by_default: true,
+ )
+ endforeach
endforeach