rpmsg_nrf53_sram reserves 64kB of SRAM even when network core is not used on nRF5340

Note: I am aware that NCS v3.4.0 recommends DTS-based partitioning over Partition Manager. However, I was unable to get the DTS-based approach working for my specific configuration (nRF7002 DK with external flash and Wi-Fi firmware partition), so I am currently using Partition Manager as a workaround.

 NCS v3.4.0 (DTS-based partitioning): How to place MCUboot secondary slot in external flash without Partition Manager? 

Hi,

I am working on a project using the nRF7002 DK (nRF5340 application core) with NCS v3.4.0, and I noticed that rpmsg_nrf53_sram is automatically added to the SRAM partition map with 64kB even though I am not using the network core at all.

Observed behavior:

Even with the following pm_static.yml defining sram_primary as the full 512kB:

sram_primary:
  address: 0x20000000
  end_address: 0x20080000
  region: sram_primary
  size: 0x80000

The partition manager report shows:

sram_primary: 448kB (0x70000)
rpmsg_nrf53_sram: 64kB (0x10000)

Workaround I found:

By explicitly defining rpmsg_nrf53_sram with a smaller size in pm_static.yml, I was able to reclaim most of the reserved SRAM:

sram_primary:
  address: 0x20000000
  end_address: 0x2007f000
  region: sram_primary
  size: 0x7f000
rpmsg_nrf53_sram:
  address: 0x2007f000
  end_address: 0x20080000
  placement:
    before:
    - end
  region: sram_primary
  size: 0x1000

This gives 508kB to the application. Setting size: 0x0 results in a Partition Manager error:

Partition manager failed: Incorrect amount of gaps found in static configuration.

Questions:

  1. Is it expected that rpmsg_nrf53_sram is always reserved even when the network core is not used?
  2. Is there a minimum recommended size for rpmsg_nrf53_sram?
  3. Is there a cleaner way to disable this reservation entirely?

Thanks!

Related