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

Add support for DPPI on nRF54H20 #69811

Merged
merged 5 commits into from
Mar 12, 2024

Conversation

anangl
Copy link
Member

@anangl anangl commented Mar 5, 2024

  • add dts nodes and corresponding bindings for DPPIC and IPCT peripherals on nRF54H20 EngA
  • provide the nrfx configuration required by the nrfx_gppi_dppi_ppib helper and include the helper into compilation when DPPIC nodes are enabled in dts

@anangl anangl requested review from gmarull and 57300 March 5, 2024 15:07
@anangl
Copy link
Member Author

anangl commented Mar 5, 2024

cc @adamkondraciuk

@zephyrbot
Copy link
Collaborator

zephyrbot commented Mar 5, 2024

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

Name Old Revision New Revision Diff
hal_nordic zephyrproject-rtos/hal_nordic@daf8752 zephyrproject-rtos/hal_nordic@5470822 (master) zephyrproject-rtos/[email protected]

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

@anangl
Copy link
Member Author

anangl commented Mar 6, 2024

Rebased.

Comment on lines 28 to 29
For example, if channel 2 is to be mapped to Secure Domain (ID: 1) IPCT
channel 4, then the array "unit" would be <2 1 4>.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

note: I'd provide definitions for domain identifiers, otherwise reading dt files becomes a bit cumbersome, specially if future SoCs use other ids. These could be defined in the main/root DT file itself (no need to include anything)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added. Please take a look.

Comment on lines +11 to +17
global-domain-id:
required: true
type: int
description: |
Global IPCT instances reside on specific buses within the Global Domain,
such as fast and slow, which have different IDs that do not match the
standard Global Domain ID presented in their address.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question: what is the real purpose of this property? Feels like the domain one that existed for mbox-nrf-ids

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure. I saw that it is used by regtool so I thought it should be kept. @57300 Could you comment on that?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know what "mbox-nrf-ids" is, but global-domain-id is used by regtool to populate UICR.IPCMAP[n].DOMAINIDSINK/DOMAINIDSOURCE registers.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can domain be inferred by other means, like it happened with ipc related stuff? I'd like to make sure we do not add redundancy in DT just for a tool.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is redundant here? This can't be inferred from the address, as the description says, because our brilliant hardware designers assigned both IPCT instances to domain ID 15, instead of 12 and 13.

The IPC stuff we solved by parsing node labels, which I still don't think is great. Do you want to do the same here, and label the nodes globalfast_ipct and globalslow_ipct?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see your point. To me, both options are equally bad (nodelabels adding info, or, adding properties not consumed by driver code). Sad that HW has been laid out like this. Let's take the shortest path here, we can always address this later.

# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

description: Nordic IPCT (Interprocessor Communication Transceiver)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: add example snippets, these bindings are complex enough that it would be good to have, also with some extended details on what IPCT does

@zephyrbot zephyrbot removed the DNM This PR should not be merged (Do Not Merge) label Mar 6, 2024
jfischer-no pushed a commit to jfischer-no/sdk-zephyr that referenced this pull request Mar 8, 2024
Pull in fixes in the nrfx_gppi_dppi_ppib helper so that it can be
compiled successfuly.

Signed-off-by: Andrzej Głąbek <[email protected]>
(cherry picked from commit a84e44b68b4a291a28466e320207926b56514a77)

Upstream PR: zephyrproject-rtos/zephyr#69811

(cherry picked from commit 1382003)
jfischer-no pushed a commit to jfischer-no/sdk-zephyr that referenced this pull request Mar 8, 2024
Include into compilation the nrfx_gppi_dppi_ppib helper and related
interconnect layers when DPPIC nodes are enabled in DTS. Provide macro
definitions required by those interconnect layers based on information
from devicetree (the nrf_grtc_timer is only modified because a macro
that it uses became more generic).

Signed-off-by: Andrzej Głąbek <[email protected]>
(cherry picked from commit e46a0a51650dcd2afd3216fdb8a003dd7080cdf9)

Upstream PR: zephyrproject-rtos/zephyr#69811

(cherry picked from commit 7285f59)
@fabiobaltieri fabiobaltieri merged commit 6692d88 into zephyrproject-rtos:main Mar 12, 2024
23 checks passed
@anangl anangl deleted the nrf54h20_dppi branch March 12, 2024 14:30
rlubos pushed a commit to rlubos/sdk-zephyr that referenced this pull request Mar 14, 2024
And add the corresponding bindings.

Move alse the already existing bindings for nrf-dppic, nrf-ppi,
and nrf-ipc so they are located together with the new ones and
in more appropriate folders (DPPIC and PPI peripherals are not
related to ARM, and IPC is for sending and receiving events,
not messages, so ipm/ does not seem to be the best fit for it).

Signed-off-by: Andrzej Głąbek <[email protected]>
(cherry picked from commit ae33b354173ab96065abe69d26c73b8ebe30aeac)

Upstream PR: zephyrproject-rtos/zephyr#69811

(cherry picked from commit cbe75dd)
(cherry picked from commit 50e4aa2)
Signed-off-by: Robert Lubos <[email protected]>
rlubos pushed a commit to rlubos/sdk-zephyr that referenced this pull request Mar 14, 2024
This is a follow-up to commit 4db4060.

There are two ECB instances in nRF54H20 and the above commit added
only one of them.

Signed-off-by: Andrzej Głąbek <[email protected]>
(cherry picked from commit d7c2c5e723f1b86f1824fdc83eacfc779202e04d)

Upstream PR: zephyrproject-rtos/zephyr#69811

(cherry picked from commit 9b6a87d)
(cherry picked from commit 0ab98d9)
Signed-off-by: Robert Lubos <[email protected]>
rlubos pushed a commit to rlubos/sdk-zephyr that referenced this pull request Mar 14, 2024
…F54H/L dts nodes

Add entries for checking if the recently added dts nodes for nRF54H20
and nRF54L15 have correct base addresses (if they match those provided
by MDK).

Signed-off-by: Andrzej Głąbek <[email protected]>
(cherry picked from commit f3e6d39b90bbcf763fca76e0752a703f49a9c58e)

Upstream PR: zephyrproject-rtos/zephyr#69811

(cherry picked from commit 8d6f154)
(cherry picked from commit 81c93e9)
Signed-off-by: Robert Lubos <[email protected]>
rlubos pushed a commit to rlubos/sdk-zephyr that referenced this pull request Mar 14, 2024
Pull in fixes in the nrfx_gppi_dppi_ppib helper so that it can be
compiled successfuly.

Signed-off-by: Andrzej Głąbek <[email protected]>
(cherry picked from commit a84e44b68b4a291a28466e320207926b56514a77)

Upstream PR: zephyrproject-rtos/zephyr#69811

(cherry picked from commit 1382003)
(cherry picked from commit b3850e2)
Signed-off-by: Robert Lubos <[email protected]>
rlubos pushed a commit to rlubos/sdk-zephyr that referenced this pull request Mar 14, 2024
Include into compilation the nrfx_gppi_dppi_ppib helper and related
interconnect layers when DPPIC nodes are enabled in DTS. Provide macro
definitions required by those interconnect layers based on information
from devicetree (the nrf_grtc_timer is only modified because a macro
that it uses became more generic).

Signed-off-by: Andrzej Głąbek <[email protected]>
(cherry picked from commit e46a0a51650dcd2afd3216fdb8a003dd7080cdf9)

Upstream PR: zephyrproject-rtos/zephyr#69811

(cherry picked from commit 7285f59)
(cherry picked from commit 4133449)
Signed-off-by: Robert Lubos <[email protected]>
rlubos pushed a commit to rlubos/sdk-zephyr that referenced this pull request Mar 21, 2024
And add the corresponding bindings.

Move alse the already existing bindings for nrf-dppic, nrf-ppi,
and nrf-ipc so they are located together with the new ones and
in more appropriate folders (DPPIC and PPI peripherals are not
related to ARM, and IPC is for sending and receiving events,
not messages, so ipm/ does not seem to be the best fit for it).

Signed-off-by: Andrzej Głąbek <[email protected]>
(cherry picked from commit ae33b354173ab96065abe69d26c73b8ebe30aeac)

Upstream PR: zephyrproject-rtos/zephyr#69811

(cherry picked from commit cbe75dd)
(cherry picked from commit 50e4aa2)
Signed-off-by: Robert Lubos <[email protected]>
rlubos pushed a commit to rlubos/sdk-zephyr that referenced this pull request Mar 21, 2024
This is a follow-up to commit 4db4060.

There are two ECB instances in nRF54H20 and the above commit added
only one of them.

Signed-off-by: Andrzej Głąbek <[email protected]>
(cherry picked from commit d7c2c5e723f1b86f1824fdc83eacfc779202e04d)

Upstream PR: zephyrproject-rtos/zephyr#69811

(cherry picked from commit 9b6a87d)
(cherry picked from commit 0ab98d9)
Signed-off-by: Robert Lubos <[email protected]>
rlubos pushed a commit to rlubos/sdk-zephyr that referenced this pull request Mar 21, 2024
…F54H/L dts nodes

Add entries for checking if the recently added dts nodes for nRF54H20
and nRF54L15 have correct base addresses (if they match those provided
by MDK).

Signed-off-by: Andrzej Głąbek <[email protected]>
(cherry picked from commit f3e6d39b90bbcf763fca76e0752a703f49a9c58e)

Upstream PR: zephyrproject-rtos/zephyr#69811

(cherry picked from commit 8d6f154)
(cherry picked from commit 81c93e9)
Signed-off-by: Robert Lubos <[email protected]>
rlubos pushed a commit to rlubos/sdk-zephyr that referenced this pull request Mar 21, 2024
Pull in fixes in the nrfx_gppi_dppi_ppib helper so that it can be
compiled successfuly.

Signed-off-by: Andrzej Głąbek <[email protected]>
(cherry picked from commit a84e44b68b4a291a28466e320207926b56514a77)

Upstream PR: zephyrproject-rtos/zephyr#69811

(cherry picked from commit 1382003)
(cherry picked from commit b3850e2)
Signed-off-by: Robert Lubos <[email protected]>
rlubos pushed a commit to rlubos/sdk-zephyr that referenced this pull request Mar 21, 2024
Include into compilation the nrfx_gppi_dppi_ppib helper and related
interconnect layers when DPPIC nodes are enabled in DTS. Provide macro
definitions required by those interconnect layers based on information
from devicetree (the nrf_grtc_timer is only modified because a macro
that it uses became more generic).

Signed-off-by: Andrzej Głąbek <[email protected]>
(cherry picked from commit e46a0a51650dcd2afd3216fdb8a003dd7080cdf9)

Upstream PR: zephyrproject-rtos/zephyr#69811

(cherry picked from commit 7285f59)
(cherry picked from commit 4133449)
Signed-off-by: Robert Lubos <[email protected]>
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.

5 participants