modules: hal_nordic: Integrate nrf-regtool
nrf-regtool is a Python utility from Nordic Semiconductor, which is used
for generating binary files with register values for given peripherals.
It sources the descriptions of peripheral registers from CMSIS-SVD files
(typically ones bundled with nRF MDK).
For some peripherals, such as UICR, nrf-regtool supports parsing values
from devicetree as well, based on the bindings already found in Zephyr.
Currently, this tool is not submitted as a script to Zephyr, but it can
be installed from PyPI.
Having nrf-regtool installed is recommended when working with nRF54H20.
Booting the Application or Radiocore CPU requires flashing not only its
firmware, but also its respective UICR instance. On this SoC, the UICR
is used to assign ownership of global hardware resources, including
memory and peripherals, to individual cores. The Zephyr build system can
call nrf-regtool to generate the UICR based on devicetree, to reflect
the boot-time hardware configuration required for a given application.
The generated `uicr.hex` is then merged with `zephyr.hex`, so that they
can be flashed together using west.
The build system integration takes the form of a CMake package, which
includes a version check and reusable components; over time, some of
these components can be reused by sysbuild. This package is located in
the `hal_nordic` module, because it depends on the `SOC_SVD_FILE` CMake
variable, which is defined there as well.
Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
2024-01-30 21:30:20 +08:00
|
|
|
# Copyright (c) 2024 Nordic Semiconductor ASA
|
|
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
|
|
|
menu "nrf-regtool options"
|
2024-08-02 18:14:22 +08:00
|
|
|
depends on SOC_SERIES_NRF54HX || SOC_SERIES_NRF92X
|
modules: hal_nordic: Integrate nrf-regtool
nrf-regtool is a Python utility from Nordic Semiconductor, which is used
for generating binary files with register values for given peripherals.
It sources the descriptions of peripheral registers from CMSIS-SVD files
(typically ones bundled with nRF MDK).
For some peripherals, such as UICR, nrf-regtool supports parsing values
from devicetree as well, based on the bindings already found in Zephyr.
Currently, this tool is not submitted as a script to Zephyr, but it can
be installed from PyPI.
Having nrf-regtool installed is recommended when working with nRF54H20.
Booting the Application or Radiocore CPU requires flashing not only its
firmware, but also its respective UICR instance. On this SoC, the UICR
is used to assign ownership of global hardware resources, including
memory and peripherals, to individual cores. The Zephyr build system can
call nrf-regtool to generate the UICR based on devicetree, to reflect
the boot-time hardware configuration required for a given application.
The generated `uicr.hex` is then merged with `zephyr.hex`, so that they
can be flashed together using west.
The build system integration takes the form of a CMake package, which
includes a version check and reusable components; over time, some of
these components can be reused by sysbuild. This package is located in
the `hal_nordic` module, because it depends on the `SOC_SVD_FILE` CMake
variable, which is defined there as well.
Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
2024-01-30 21:30:20 +08:00
|
|
|
|
|
|
|
config NRF_REGTOOL_GENERATE_UICR
|
|
|
|
bool "Generate UICR"
|
|
|
|
help
|
|
|
|
Generate a UICR hex based on devicetree contents using nrf-regtool.
|
|
|
|
CPU domains that require UICR allocation aren't bootable without it
|
|
|
|
being programmed alongside the firmware.
|
|
|
|
|
|
|
|
config NRF_REGTOOL_VERBOSITY
|
|
|
|
int "Verbosity level of console output"
|
|
|
|
range 0 3
|
|
|
|
default 0
|
|
|
|
help
|
|
|
|
Level of verbose output that nrf-regtool will print to the console.
|
|
|
|
|
|
|
|
0. Only critical information and warnings.
|
|
|
|
1. Print a pretty, human-readable representation of a peripheral's
|
|
|
|
configuration. This is recommended for inspecting register values.
|
|
|
|
2. Print extra details for debugging purposes, such as memory maps of
|
|
|
|
the peripheral configurations, but in a less readable format.
|
|
|
|
3. Print even more details, which are typically only useful for
|
|
|
|
nrf-regtool developers.
|
|
|
|
|
|
|
|
endmenu
|