Skip to content

Conversation

@57300
Copy link
Contributor

@57300 57300 commented May 3, 2024

This concerns both nordic,owned-memory and nordic,owned-partitions.

Introduce a property named nordic,access, which is meant to replace
the owner-id and perm-* properties. It allows for describing how
multiple domains should access a single memory region, possibly with
different permissions per owner, but without having to create more than
one DT node for this purpose.

This change is also motivated by updated memory protection requirements
on the nRF54H20, which mandate that a given memory region must only be
reserved by one domain, even if multiple domains can have access to it.
This restriction is now described in the binding itself.

@57300 57300 requested a review from anangl as a code owner May 3, 2024 08:10
@zephyrbot zephyrbot added area: Devicetree Binding PR modifies or adds a Device Tree binding area: Architectures platform: nRF Nordic nRFx area: UART Universal Asynchronous Receiver-Transmitter labels May 3, 2024
@57300 57300 requested a review from gmarull May 3, 2024 08:12
Copy link
Member

Choose a reason for hiding this comment

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

is it worth deprecating at this stage?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, maybe not for Zephyr but for downstream, deprecation is practical in the short-term.

@57300 57300 force-pushed the nordic-owned-memory-update branch from 825f86a to 830f1a5 Compare May 3, 2024 09:07
gmarull
gmarull previously approved these changes May 3, 2024
Copy link
Member

@gmarull gmarull left a comment

Choose a reason for hiding this comment

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

lgtm, thanks!

decsny
decsny previously approved these changes May 3, 2024
57300 added a commit to 57300/sdk-zephyr that referenced this pull request May 6, 2024
Upstream PR: zephyrproject-rtos/zephyr#72273

Access to this region should no longer be requested via UICR, because it
will be statically allocated by secure domain firmware.

Signed-off-by: Grzegorz Swiderski <[email protected]>
(cherry picked from commit d95aa856e98b6561d534cbe36ffc6e87de3deab2)
@zephyrbot zephyrbot added area: SPI SPI bus area: UART Universal Asynchronous Receiver-Transmitter labels Oct 8, 2024
@57300 57300 force-pushed the nordic-owned-memory-update branch from 6f9ae5e to 16acbad Compare October 8, 2024 11:54
@57300 57300 requested a review from hubertmis October 8, 2024 11:57
@57300 57300 force-pushed the nordic-owned-memory-update branch from b54ecff to ab1eabb Compare October 8, 2024 12:01
hubertmis
hubertmis previously approved these changes Oct 8, 2024
@57300 57300 force-pushed the nordic-owned-memory-update branch from ab1eabb to ad5fac9 Compare October 8, 2024 13:25
57300 added a commit to 57300/sdk-zephyr that referenced this pull request Oct 8, 2024
Upstream PR: zephyrproject-rtos/zephyr#72273

This concerns both `nordic,owned-memory` and `nordic,owned-partitions`.

Introduce a property named `nordic,access`, which is meant to replace
the `owner-id` and `perm-*` properties. It allows for describing how
multiple domains should access a single memory region, possibly with
different permissions per owner, but without having to create more than
one DT node for this purpose.

This change is also motivated by updated memory protection requirements
on the nRF54H20, which mandate that a given memory region must only be
reserved by one domain, even if multiple domains can have access to it.
This restriction is now described in the binding itself.

Signed-off-by: Grzegorz Swiderski <[email protected]>
(cherry picked from commit 18d20841a817a126498f5242f67fc6fb1114fd9a)
57300 added a commit to 57300/sdk-zephyr that referenced this pull request Oct 8, 2024
… bindings

Upstream PR: zephyrproject-rtos/zephyr#72273

Apply the following changes to `nrf54h20dk` and `nrf9280pdk`:

* Convert `perm-*` properties to the newly introduced `nordic,access`,
  both in board files and tests.

* Redefine shared regions to specify multiple access owners per node,
  and ensure that each such region is reserved by one domain at a time.
  `cpuapp_cpurad_ram0x_region` is only enabled by Radiocore, while
  `cpuapp_cpucell_ram0x_region` is only enabled by Application core.

* Divide `shared_ram3x_region` so that each sub-region is owned by a
  different domain. Their addresses must be rounded down to fit the
  current UICR format. While at it, increase the `cpurad_dma_region`
  size from 128 B to 1024 B to better fit the needs of existing tests.

Signed-off-by: Grzegorz Swiderski <[email protected]>
(cherry picked from commit 16acbadafafd156911b7702178a945bddda9c336)
57300 added a commit to 57300/sdk-zephyr that referenced this pull request Oct 8, 2024
Upstream PR: zephyrproject-rtos/zephyr#72273

Update the default memory maps for `nrf54h20dk` and `nrf9280pdk` to
remove the `shared_ram20_region` and `shared_ram3x_region` nodes,
because their child nodes no longer need to be grouped together:

  * IPC buffers in RAM20 are statically allocated.
  * DMA buffers in RAM3x have separate access owners.

Signed-off-by: Grzegorz Swiderski <[email protected]>
(cherry picked from commit ad5fac9cd897fec3e501562edd06179f5b46a8c2)
57300 added a commit to 57300/sdk-zephyr that referenced this pull request Oct 9, 2024
Upstream PR: zephyrproject-rtos/zephyr#72273

This concerns both `nordic,owned-memory` and `nordic,owned-partitions`.

Introduce a property named `nordic,access`, which is meant to replace
the `owner-id` and `perm-*` properties. It allows for describing how
multiple domains should access a single memory region, possibly with
different permissions per owner, but without having to create more than
one DT node for this purpose.

This change is also motivated by updated memory protection requirements
on the nRF54H20, which mandate that a given memory region must only be
reserved by one domain, even if multiple domains can have access to it.
This restriction is now described in the binding itself.

Signed-off-by: Grzegorz Swiderski <[email protected]>
(cherry picked from commit 18d20841a817a126498f5242f67fc6fb1114fd9a)
57300 added a commit to 57300/sdk-zephyr that referenced this pull request Oct 9, 2024
… bindings

Upstream PR: zephyrproject-rtos/zephyr#72273

Apply the following changes to `nrf54h20dk` and `nrf9280pdk`:

* Convert `perm-*` properties to the newly introduced `nordic,access`,
  both in board files and tests.

* Redefine shared regions to specify multiple access owners per node,
  and ensure that each such region is reserved by one domain at a time.
  `cpuapp_cpurad_ram0x_region` is only enabled by Radiocore, while
  `cpuapp_cpucell_ram0x_region` is only enabled by Application core.

* Divide `shared_ram3x_region` so that each sub-region is owned by a
  different domain. Their addresses must be rounded down to fit the
  current UICR format. While at it, increase the `cpurad_dma_region`
  size from 128 B to 1024 B to better fit the needs of existing tests.

Signed-off-by: Grzegorz Swiderski <[email protected]>
(cherry picked from commit 16acbadafafd156911b7702178a945bddda9c336)
57300 added a commit to 57300/sdk-zephyr that referenced this pull request Oct 9, 2024
Upstream PR: zephyrproject-rtos/zephyr#72273

Update the default memory maps for `nrf54h20dk` and `nrf9280pdk` to
remove the `shared_ram20_region` and `shared_ram3x_region` nodes,
because their child nodes no longer need to be grouped together:

  * IPC buffers in RAM20 are statically allocated.
  * DMA buffers in RAM3x have separate access owners.

Signed-off-by: Grzegorz Swiderski <[email protected]>
(cherry picked from commit ad5fac9cd897fec3e501562edd06179f5b46a8c2)
57300 added 3 commits October 9, 2024 19:54
This concerns both `nordic,owned-memory` and `nordic,owned-partitions`.

Introduce a property named `nordic,access`, which is meant to replace
the `owner-id` and `perm-*` properties. It allows for describing how
multiple domains should access a single memory region, possibly with
different permissions per owner, but without having to create more than
one DT node for this purpose.

This change is also motivated by updated memory protection requirements
on the nRF54H20, which mandate that a given memory region must only be
reserved by one domain, even if multiple domains can have access to it.
This restriction is now described in the binding itself.

Signed-off-by: Grzegorz Swiderski <[email protected]>
Apply the following changes to `nrf54h20dk` and `nrf9280pdk`:

* Convert `perm-*` properties to the newly introduced `nordic,access`,
  both in board files and tests.

* Redefine shared regions to specify multiple access owners per node,
  and ensure that each such region is reserved by one domain at a time.
  `cpuapp_cpurad_ram0x_region` is only enabled by Radiocore, while
  `cpuapp_cpucell_ram0x_region` is only enabled by Application core.

* Divide `shared_ram3x_region` so that each sub-region is owned by a
  different domain. Their addresses must be rounded down to fit the
  current UICR format.

Signed-off-by: Grzegorz Swiderski <[email protected]>
Update the default memory maps for `nrf54h20dk` and `nrf9280pdk` to
remove the `shared_ram20_region` and `shared_ram3x_region` nodes,
because their child nodes no longer need to be grouped together:

  * IPC buffers in RAM20 are statically allocated.
  * DMA buffers in RAM3x have separate access owners.

Signed-off-by: Grzegorz Swiderski <[email protected]>
@57300 57300 force-pushed the nordic-owned-memory-update branch from ad5fac9 to 31587d5 Compare October 9, 2024 17:55
57300 added a commit to 57300/sdk-zephyr that referenced this pull request Oct 9, 2024
Upstream PR: zephyrproject-rtos/zephyr#72273

This concerns both `nordic,owned-memory` and `nordic,owned-partitions`.

Introduce a property named `nordic,access`, which is meant to replace
the `owner-id` and `perm-*` properties. It allows for describing how
multiple domains should access a single memory region, possibly with
different permissions per owner, but without having to create more than
one DT node for this purpose.

This change is also motivated by updated memory protection requirements
on the nRF54H20, which mandate that a given memory region must only be
reserved by one domain, even if multiple domains can have access to it.
This restriction is now described in the binding itself.

Signed-off-by: Grzegorz Swiderski <[email protected]>
(cherry picked from commit a0719f275ec632d74df94f98783a03c441806de2)
57300 added a commit to 57300/sdk-zephyr that referenced this pull request Oct 9, 2024
… bindings

Upstream PR: zephyrproject-rtos/zephyr#72273

Apply the following changes to `nrf54h20dk` and `nrf9280pdk`:

* Convert `perm-*` properties to the newly introduced `nordic,access`,
  both in board files and tests.

* Redefine shared regions to specify multiple access owners per node,
  and ensure that each such region is reserved by one domain at a time.
  `cpuapp_cpurad_ram0x_region` is only enabled by Radiocore, while
  `cpuapp_cpucell_ram0x_region` is only enabled by Application core.

* Divide `shared_ram3x_region` so that each sub-region is owned by a
  different domain. Their addresses must be rounded down to fit the
  current UICR format.

Signed-off-by: Grzegorz Swiderski <[email protected]>
(cherry picked from commit fa40c98b3d24fe13abd6585c38ce5630a407592f)
57300 added a commit to 57300/sdk-zephyr that referenced this pull request Oct 9, 2024
Upstream PR: zephyrproject-rtos/zephyr#72273

Update the default memory maps for `nrf54h20dk` and `nrf9280pdk` to
remove the `shared_ram20_region` and `shared_ram3x_region` nodes,
because their child nodes no longer need to be grouped together:

  * IPC buffers in RAM20 are statically allocated.
  * DMA buffers in RAM3x have separate access owners.

Signed-off-by: Grzegorz Swiderski <[email protected]>
(cherry picked from commit 31587d5a8e0120fbeb7ee9fd4ac00f53b06a78ad)
@nashif nashif merged commit 85b0394 into zephyrproject-rtos:main Oct 15, 2024
39 checks passed
jonathannilsen pushed a commit to jonathannilsen/sdk-zephyr that referenced this pull request Oct 16, 2024
Upstream PR: zephyrproject-rtos/zephyr#72273

This concerns both `nordic,owned-memory` and `nordic,owned-partitions`.

Introduce a property named `nordic,access`, which is meant to replace
the `owner-id` and `perm-*` properties. It allows for describing how
multiple domains should access a single memory region, possibly with
different permissions per owner, but without having to create more than
one DT node for this purpose.

This change is also motivated by updated memory protection requirements
on the nRF54H20, which mandate that a given memory region must only be
reserved by one domain, even if multiple domains can have access to it.
This restriction is now described in the binding itself.

Signed-off-by: Grzegorz Swiderski <[email protected]>
(cherry picked from commit 2b6fe5ea89034f4b1a0222edaa2b1434ac70b78c)
jonathannilsen pushed a commit to jonathannilsen/sdk-zephyr that referenced this pull request Oct 16, 2024
… bindings

Upstream PR: zephyrproject-rtos/zephyr#72273

Apply the following changes to `nrf54h20dk` and `nrf9280pdk`:

* Convert `perm-*` properties to the newly introduced `nordic,access`,
  both in board files and tests.

* Redefine shared regions to specify multiple access owners per node,
  and ensure that each such region is reserved by one domain at a time.
  `cpuapp_cpurad_ram0x_region` is only enabled by Radiocore, while
  `cpuapp_cpucell_ram0x_region` is only enabled by Application core.

* Divide `shared_ram3x_region` so that each sub-region is owned by a
  different domain. Their addresses must be rounded down to fit the
  current UICR format.

Signed-off-by: Grzegorz Swiderski <[email protected]>
(cherry picked from commit 049e588ec4fbc22c8eeeeec7fad263dd0105035a)
@57300 57300 deleted the nordic-owned-memory-update branch April 9, 2025 15:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: Architectures area: Devicetree Binding PR modifies or adds a Device Tree binding area: Devicetree area: SPI SPI bus area: UART Universal Asynchronous Receiver-Transmitter platform: nRF Nordic nRFx

Projects

None yet

Development

Successfully merging this pull request may close these issues.