Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[nrf fromlist] Add support for the nRF54H20 DK board #1577

Merged
merged 33 commits into from
Mar 26, 2024

Conversation

@NordicBuilder
Copy link
Contributor

The following west manifest projects have been modified in this Pull Request:

Name Old Revision New Revision Diff
hal_nordic zephyrproject-rtos/hal_nordic@5470822 zephyrproject-rtos/hal_nordic@13ac55b (master) zephyrproject-rtos/hal_nordic@54708223..13ac55b5

Note: This message is automatically posted and updated by the Manifest GitHub Action.

@anangl anangl force-pushed the nrf54h20_dk_ncs branch 2 times, most recently from 77d953a to b98e748 Compare March 15, 2024 09:34
anangl and others added 25 commits March 26, 2024 09:14
… nRF54H20

Add cmake and nrfx_config entries that allow building for the nRF54H20
SoC.

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
(cherry picked from commit eac91bf)
Add targets for the Application, Radio, and PPR cores in the nRF54H20
SoC on the nRF54H20 DK board.

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
(cherry picked from commit d0ce78f)

Upstream PR: zephyrproject-rtos/zephyr#70172
nRF54H20 PDK is superseded by nRF54H20 DK and will no longer be
supported.

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
(cherry picked from commit 7cda165)

Upstream PR: zephyrproject-rtos/zephyr#70172
nRF54H20 PDK is superseded by nRF54H20 DK and will no longer be
supported.

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
(cherry picked from commit 3a6fadf)

Upstream PR: zephyrproject-rtos/zephyr#70172
…verlays

On nRF54H20, we need to configure RAM with execution permissions in
order to execute code from it. This patch adds overlays for the nRF54H20
PDK cpuapp cores so that RAM0X region is given execution permissions and
so the test runs successfully.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
(cherry picked from commit 6cb283d)
Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
nRF54H20 PDK is superseded by nRF54H20 DK and will no longer be
supported.

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
(cherry picked from commit 787e245)

Upstream PR: zephyrproject-rtos/zephyr#70172
nRF54H20 PDK is superseded by nRF54H20 DK and will no longer be
supported.

The board was superseded by nRF54H20 DK.

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
(cherry picked from commit fbf03a4)

Upstream PR: zephyrproject-rtos/zephyr#70172
This was a preview revision of the SoC that will no longer
be supported.

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
(cherry picked from commit cec6ab0)
This was a preview revision of the SoC that will no longer
be supported.

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
(cherry picked from commit a8bb9fd)
This was a preview revision of the SoC that will no longer
be supported.

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
(cherry picked from commit 4d16e5b)

Upstream PR: zephyrproject-rtos/zephyr#70172
…r PPR

In practice, PPR is intended to be running code from RAM, so make this
the default choice for the `nrf54h20dk/nrf54h20/cpuppr` board target.
Keep the MRAM execution option as a `xip` variant of that target,
replacing the `ram` one.

Align the default `cpuapp` configuration for copying PPR's image to RAM
before it boots the child processor.

Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
(cherry picked from commit 6ff7ec2)
Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>

Upstream PR: zephyrproject-rtos/zephyr#70172
The `nordic-ppr` snippet can now be used instead, since RAM execution is
default for PPR.

Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
(cherry picked from commit 13bebdb)
Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>

Upstream PR: zephyrproject-rtos/zephyr#70172
This replacement for the `nordic-ppr-ram` snippet does the opposite:
enable PPR execution in place from MRAM.

Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
(cherry picked from commit 74f9f86)
Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>

Upstream PR: zephyrproject-rtos/zephyr#70172
…mory size check

Firstly, build-asserting the execution/source memory sizes to be equal
wasn't working, due to the wrong (non-inst) DT API being used.

Secondly, this assert can be relaxed so that the source memory region
only needs to have greater than or equal size to the execution region,
as VPR firmware needs to fit into execution memory first and foremost.
This will come in handy, since MRAM partitions (typical source memory)
have stricter alignment requirements than RAM regions.

Signed-off-by: Grzegorz Swiderski <grzegorz.swiderski@nordicsemi.no>
(cherry picked from commit a55f67d)
Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
…it to None

mypy fails with:
Incompatible types in assignment
        (expression has type "None", variable has type "Type[ELFFile]")

this happens because of the code:
    try:
        from elftools.elf.elffile import ELFFile
    except ImportError:
        ELFFile = None

ELFFile is set to None to allow later code to check if ELFFile was
imported by checking against None. Instead of setting ELFFile to None,
then update testing code to check if the class has been loaded, as:
    if globals().get('ELFFile') is None:

Update the try-catch to `pass`.

Removed ELFFile cargo cult from intel_cyclonev.py and fix pylint
warnings.

Disable duplicate code check. The intel_cyclonev.py is already based
upon openocd.py, so although the duplication detection is correct then
this should not prevent other code changes / fixes to those files from
being applied.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
(cherry picked from commit c531e4c)
Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
… support

nRF54Hx series is no longer supported in nrfjprog. nrfutil is now
required.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
(cherry picked from commit 7bea89a)
Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
…e-batch

execute-batch is now named x-execute-batch, as it is an experimental
option.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
(cherry picked from commit 0387214)
Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
… feedback

nrfutil runner uses the batch-mode, so no live feedback is provided to
the user. However, batch-mode reports batch progress containing
human-readable strings of the operation being done. This patch changes
the _exec() implementation to parse the subprocess output in real-time,
logging to info the 'batch_update' reports. Note that only the first
batch update of a sequence (percentage = 0) is logged because first,
percentage resolution seems to be pretty bad, and, because logging
messages cannot be easily _appended_.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
(cherry picked from commit acc0a43)
Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
…F54H support

nRF54H can only be flashed using nrfutil now, so some workaround present
in the nrf_common module are no longer needed, e.g. UICR erasing.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
(cherry picked from commit 78706df)
Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
Board can be programmed using nrfutil.

Signed-off-by: Gerard Marull-Paretas <gerard@teslabs.com>
(cherry picked from commit db23787)
Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>

Upstream PR: zephyrproject-rtos/zephyr#70411
Needed to distinguish boards.

Signed-off-by: Piotr Kosycarz <piotr.kosycarz@nordicsemi.no>
(cherry picked from commit c3b96ff)
Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
…ls allocation

The child-owned-channels property of GRTC is used by nrfx_grtc
driver to exclude channels for common pool of channels allowed
for dynamic allocation. That is sort-of workaround for missing
property that allowes to remove some channels from the pool.

There are also not aligned GRTC IRQs for nRF54H20 and nRF54L15.
Only one of avaialbe IRQs was added to GRTC in DTS whereas
there should be two. That allows to find second IRQ by other
drivers that use GRTC peripehral.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
(cherry picked from commit 6608ff8)
Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>

Upstream PR: zephyrproject-rtos/zephyr#69924
…C dtsi

The GRTC channels and irqs configuration for Radio domain
is SOC specific not board specific. Move the configuration
to SOC dtsi file.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
(cherry picked from commit e0a2366)
Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>

Upstream PR: zephyrproject-rtos/zephyr#70154
There were missing global dppic and ipct channels configuration
that allows to deliver events from global peripherlas like GRTC
to Radio domain.

Add missing configuration to nrf54h20 dtsi file.
Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
(cherry picked from commit 3140b95)
Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
…or nRF54L15

Add nrfx_grtc related entries that were introduced in nrfx 3.4.0,
especially NRFX_GRTC_CONFIG_AUTOSTART that should be by default
set to 1.

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
(cherry picked from commit 0fdf9cc9970aa02bff31750f9a456a3ddece4b22)

Upstream PR: zephyrproject-rtos/zephyr#70616
@anangl
Copy link
Contributor Author

anangl commented Mar 26, 2024

Rebased.

@anangl anangl merged commit 272786b into nrfconnect:main Mar 26, 2024
32 checks passed
@anangl anangl deleted the nrf54h20_dk_ncs branch March 26, 2024 12:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.