Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions boards/nordic/nrf54h20dk/nrf54h20dk_nrf54h20-memory_map.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -166,5 +166,13 @@
periphconf_partition: partition@1ae000 {
reg = <0x1ae000 DT_SIZE_K(8)>;
};

secondary_partition: partition@1b0000 {
reg = <0x1b0000 DT_SIZE_K(64)>;
};

secondary_periphconf_partition: partition@1c0000 {
reg = <0x1c0000 DT_SIZE_K(8)>;
};
};
};
3 changes: 3 additions & 0 deletions scripts/ci/check_compliance.py
Original file line number Diff line number Diff line change
Expand Up @@ -1231,6 +1231,9 @@ def check_no_undef_outside_kconfig(self, kconf):
"FOO_LOG_LEVEL",
"FOO_SETTING_1",
"FOO_SETTING_2",
"GEN_UICR_GENERATE_PERIPHCONF", # Used in specialized build tool, not part of main Kconfig
"GEN_UICR_SECONDARY", # Used in specialized build tool, not part of main Kconfig
"GEN_UICR_SECONDARY_GENERATE_PERIPHCONF", # Used in specialized build tool, not part of main Kconfig
"HEAP_MEM_POOL_ADD_SIZE_", # Used as an option matching prefix
"HUGETLBFS", # Linux, in boards/xtensa/intel_adsp_cavs25/doc
"IAR_BUFFERED_WRITE",
Expand Down
20 changes: 0 additions & 20 deletions scripts/west_commands/runners/nrf_common.py
Original file line number Diff line number Diff line change
Expand Up @@ -433,26 +433,6 @@ def program_hex(self):
core='Application',
)

if self.build_conf.getboolean("CONFIG_NRF_HALTIUM_GENERATE_UICR"):
zephyr_build_dir = Path(self.cfg.build_dir) / 'zephyr'

self.op_program(
str(zephyr_build_dir / 'uicr.hex'),
'ERASE_NONE',
None,
defer=True,
core='Application',
)

if self.build_conf.getboolean("CONFIG_NRF_HALTIUM_UICR_PERIPHCONF"):
self.op_program(
str(zephyr_build_dir / 'periphconf.hex'),
'ERASE_NONE',
None,
defer=True,
core='Application',
)

if not self.erase and regtool_generated_uicr:
self.exec_op('erase', core=core, kind='uicr')
else:
Expand Down
1 change: 1 addition & 0 deletions soc/nordic/Kconfig.sysbuild
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@
config HAS_NORDIC_VPR_LAUNCHER_IMAGE
bool

rsource "common/uicr/Kconfig.sysbuild"
rsource "common/vpr/Kconfig.sysbuild"
orsource "*/Kconfig.sysbuild"
4 changes: 1 addition & 3 deletions soc/nordic/common/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@

add_subdirectory_ifdef(CONFIG_RISCV_CORE_NORDIC_VPR vpr)

if(CONFIG_NRF_PERIPHCONF_SECTION OR CONFIG_NRF_HALTIUM_GENERATE_UICR)
add_subdirectory(uicr)
endif()
add_subdirectory(uicr)

# Let SystemInit() be called in place of soc_reset_hook() by default.
zephyr_linker_symbol(SYMBOL soc_reset_hook EXPR "@SystemInit@")
Expand Down
30 changes: 0 additions & 30 deletions soc/nordic/common/uicr/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,33 +4,3 @@
if(CONFIG_NRF_PERIPHCONF_SECTION)
zephyr_linker_sources(SECTIONS uicr.ld)
endif()

if(CONFIG_NRF_HALTIUM_GENERATE_UICR)
if(CONFIG_NRF_PERIPHCONF_SECTION)
set(in_periphconf_elf_arg
--in-periphconf-elf $<TARGET_FILE:${ZEPHYR_LINK_STAGE_EXECUTABLE}>
)
endif()

if(CONFIG_NRF_HALTIUM_UICR_PERIPHCONF)
set(periphconf_hex_file ${PROJECT_BINARY_DIR}/periphconf.hex)
set(out_periphconf_hex_arg
--out-periphconf-hex ${periphconf_hex_file}
)
list(APPEND optional_byproducts ${periphconf_hex_file})
endif()

set(uicr_hex_file ${PROJECT_BINARY_DIR}/uicr.hex)
set_property(GLOBAL APPEND PROPERTY extra_post_build_commands
COMMAND ${CMAKE_COMMAND} -E env PYTHONPATH=${ZEPHYR_BASE}/scripts/dts/python-devicetree/src
${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/gen_uicr.py
--in-config ${DOTCONFIG}
--in-edt-pickle ${EDT_PICKLE}
${in_periphconf_elf_arg}
${out_periphconf_hex_arg}
--out-uicr-hex ${uicr_hex_file}
)
set_property(GLOBAL APPEND PROPERTY extra_post_build_byproducts
${uicr_hex_file} ${optional_byproducts}
)
endif()
22 changes: 1 addition & 21 deletions soc/nordic/common/uicr/Kconfig
Original file line number Diff line number Diff line change
@@ -1,29 +1,9 @@
# Copyright (c) 2025 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

config NRF_HALTIUM_GENERATE_UICR
bool "Generate UICR file"
depends on SOC_NRF54H20_CPUAPP
default y
help
Generate UICR HEX file.

if NRF_HALTIUM_GENERATE_UICR

config NRF_HALTIUM_UICR_PERIPHCONF
bool "Initialize global domain peripherals"
default y
help
Generates a blob containing static global domain peripheral initialization
values extracted from the build artifacts, and configures UICR.PERIPHCONF
to point at the blob. The initialization values are then loaded ahead of
ahead of the application boot.

endif

config NRF_PERIPHCONF_SECTION
bool "Populate global peripheral initialization section"
default y if SOC_NRF54H20_CPUAPP
default y if SOC_NRF54H20_CPUAPP || SOC_NRF54H20_CPURAD
depends on LINKER_DEVNULL_SUPPORT
imply LINKER_DEVNULL_MEMORY
help
Expand Down
9 changes: 9 additions & 0 deletions soc/nordic/common/uicr/Kconfig.sysbuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Copyright (c) 2025 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

config NRF_HALTIUM_GENERATE_UICR
bool "Generate UICR file"
depends on SOC_SERIES_NRF54HX
default y
help
Generate UICR HEX file.
Loading
Loading