nrf5340 multi-image DFU update over BLE with NO ext flash - migration SDK 2.5.3 to 2.9.x or 3.x & disabling QSPI?

Due to the great advice & guidance from Nordic 3 years ago (Andreas Haugland & Vidar Berg), see:

 nrf5340 multi-image DFU update over BLE 'Remote Error: In Value(3)' ?
and
https://devzone.nordicsemi.com/support/311747

we have been happily using multi-image DFU OTA updates with our nrf5340 based Wearable Pressure Sensor device which has NO external flash (so has to be done using only 5340 on-chip flash and RAM). This has worked flawlessly for 3 years from both our iOS and Android apps.

However, we sort of got stuck at SDK v2.5.3 due to problems with significant increase in power consumption caused by no longer being able to disable QSPI from SDK v2.6.x and later. So we want to upgrade to v3.x as soon as possible BUT we need to maintain compatibility with our current partition layout so our OTA updates can remain compatible with devices already in the field.

The last advice in case #311747 above from Sigurd Hellesvik, was:
"Keep the configuration there for now, and proper support will be added for multi-core updates with internal flash soon."

In researching this migration from SDK 2.5.3 to v3.x, it seems that there is now finally "official" Nordic support for using a similar partition and concept as we have been using for past 3 years - so that sounds promising. But the enabling of QSPI and the associated increase in power draw is a problem as all our devices are powered by a battery (which is wirelessly rechargeable).

As per my above two referenced Devzone threads, our MCUboot child image already matches your current "Simultaneous multi-image DFU with nRF5340" docs — CONFIG_FLASH_SIMULATOR=y, CONFIG_PCD_APP=y, CONFIG_BOOT_UPGRADE_ONLY=y, CONFIG_NORDIC_QSPI_NOR=n.

The only remnant of the original workaround is the APPLICATION-side phantom chosen node "nordic,pm-ext-flash = &mx25r64", which #311747 told me to keep so Partition Manager would lay out the ram_flash region. On NCS 2.6.x / 2.9.x that reference now forces the QSPI peripheral active (my "&qspi status = disabled" no longer takes effect), dramatically increasing sleep current.

So my questions are:

Questions 1: In current NCS (2.9.x and v3.x/sysbuild), how does Partition Manager create the ram_flash region for CONFIG_FLASH_SIMULATOR WITHOUT referencing an external-flash node, so I can remove nordic,pm-ext-flash entirely and keep QSPI fully disabled?

Question 2: Is a static pm_static.yml still required for the internal-flash multi-image layout, or is it now implicit?

Question 3: Is there a migration path / sample for an existing v2.3-era phantom-node setup to the current supported flow? Or can you help me create one!?

Thanking you in anticipation,

Gerard

Related