-
Notifications
You must be signed in to change notification settings - Fork 6.9k
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
Changes from all commits
ae33b35
d7c2c5e
f3e6d39
a84e44b
e46a0a5
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
# Copyright (c) 2024 Nordic Semiconductor ASA | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
description: Nordic IPCT (Interprocessor Communication Transceiver) | ||
|
||
include: base.yaml | ||
|
||
properties: | ||
reg: | ||
required: true | ||
|
||
channels: | ||
type: int | ||
required: true | ||
description: Number of channels implemented by the IPCT instance. | ||
|
||
source-channel-links: | ||
type: array | ||
description: | | ||
Mapping of IPCT channels that are mapped between two IPCT instances on | ||
separate domains, in which a channel on this IPCT node is considered | ||
the source. This array is then comprised of a 3-integer-wide "unit" | ||
that defines one connection of the mapping. The format of this unit | ||
is <source_channel sink_domain_id sink_channel>. Units are sequential | ||
in the array, therefore requiring the length of this property to be | ||
a factor of 3. | ||
|
||
For example, if channel 2 is to be mapped to Radio Core (ID: 3) IPCT | ||
channel 4, then the array "unit" would be <2 NRF_DOMAIN_ID_RADIOCORE 4> | ||
or <2 3 4>. | ||
|
||
sink-channel-links: | ||
type: array | ||
description: | | ||
Mapping of IPCT channels that are mapped between two IPCT instances on | ||
separate domains, in which a channel on this IPCT node is considered | ||
the sink. This array is then comprised of a 3-integer-wide "unit" | ||
that defines one connection of the mapping. The format of this unit | ||
is <sink_channel source_domain_id source_channel>. Units are sequential | ||
in the array, therefore requiring the length of this property to be | ||
a factor of 3. | ||
|
||
For example, if channel 2 is to be mapped to Radio Core (ID: 3) IPCT | ||
channel 4, then the array "unit" would be <2 NRF_DOMAIN_ID_RADIOCORE 4> | ||
or <2 3 4>. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# Copyright (c) 2024 Nordic Semiconductor ASA | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
description: Nordic Global IPCT (Interprocessor Communication Transceiver) | ||
|
||
compatible: "nordic,nrf-ipct-global" | ||
|
||
include: ["nordic,nrf-ipct-common.yaml", "nordic,split-channels.yaml"] | ||
|
||
properties: | ||
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. | ||
Comment on lines
+11
to
+17
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. question: what is the real purpose of this property? Feels like the There was a problem hiding this comment. Choose a reason for hiding this commentThe 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? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't know what "mbox-nrf-ids" is, but There was a problem hiding this comment. Choose a reason for hiding this commentThe 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. There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 There was a problem hiding this comment. Choose a reason for hiding this commentThe 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. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
# Copyright (c) 2024 Nordic Semiconductor ASA | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
description: Nordic Local IPCT (Interprocessor Communication Transceiver) | ||
|
||
compatible: "nordic,nrf-ipct-local" | ||
|
||
include: "nordic,nrf-ipct-common.yaml" | ||
|
||
properties: | ||
interrupts: | ||
required: true |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
# Copyright (c) 2024 Nordic Semiconductor ASA | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
description: | | ||
Nordic Global DPPIC | ||
(Distributed Programmable Peripheral Interconnect Controller) | ||
|
||
Updated DPPIC binding set for Nordic products that have global DPPIC instances | ||
with inter-bridge functionality. These instances also have split-ownership | ||
of its channels and channel groups. | ||
|
||
compatible: "nordic,nrf-dppic-global" | ||
|
||
include: | ||
- "nordic,nrf-dppic.yaml" | ||
- "nordic,nrf-dppic-links.yaml" | ||
- "nordic,split-channels.yaml" | ||
- "nordic,split-channel-groups.yaml" |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# Copyright (c) 2024 Nordic Semiconductor ASA | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
description: Nordic DPPIC Channel Linking | ||
|
||
properties: | ||
source-channels: | ||
type: array | ||
description: | | ||
Channels that are linked to channels of DPPIC instances on separate | ||
bridges as publishing sources. | ||
|
||
sink-channels: | ||
type: array | ||
description: | | ||
Channels that are linked to channels of DPPIC instances on separate | ||
bridges as subscribing sinks. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# Copyright (c) 2024 Nordic Semiconductor ASA | ||
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause | ||
|
||
description: | | ||
Nordic Local DPPIC | ||
(Distributed Programmable Peripheral Interconnect Controller) | ||
|
||
Updated DPPIC binding set for Nordic products that have local DPPIC instances | ||
with inter-bridge functionality. | ||
|
||
compatible: "nordic,nrf-dppic-local" | ||
|
||
include: ["nordic,nrf-dppic.yaml", "nordic,nrf-dppic-links.yaml"] |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
# Copyright (c) 2024 Nordic Semiconductor ASA | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
description: Nordic Split Channel Groups | ||
|
||
properties: | ||
owned-channel-groups: | ||
type: array | ||
description: | | ||
List of channel groups of a split-ownership peripheral that are to be | ||
owned for use by the compiled domain. | ||
|
||
nonsecure-channel-groups: | ||
type: array | ||
description: | | ||
List of channel groups in a split-ownership, split-security peripheral | ||
that are to be configured as nonsecure. In Trustzone systems, this | ||
property is only evaluated for secure peripherals, as nonsecure channels | ||
are implicitly specified through the owned-channels property. This | ||
property is ignored in non-Trustzone systems. |
There was a problem hiding this comment.
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