-
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
Conversation
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
The following west manifest projects have been modified in this Pull Request:
Note: This message is automatically posted and updated by the Manifest GitHub Action. |
Rebased. |
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>. |
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.
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)
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.
Added. Please take a look.
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. |
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.
question: what is the real purpose of this property? Feels like the domain
one that existed for mbox-nrf-ids
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.
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 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.
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.
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 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
?
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.
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) |
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
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)
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)
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]>
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]>
…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]>
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]>
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]>
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]>
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]>
…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]>
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]>
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]>