nRF5340 Network Core DFU with Single Slot

Hello,

I am working on a project using a custom hardware configuration based on nRF5340 and nRF7002 similar in configuration to the nRF7002-DK, except without the on-board debugger. 
My application requires OTA update capability via USB CDC ACM, so I've largely been following the DevAcademy lesson on bootloaders and DFU.
(https://academy.nordicsemi.com/courses/nrf-connect-sdk-intermediate/lessons/lesson-9-bootloaders-and-dfu-fota/)

I've got a fairly simple WiFi and bluetooth sniffing application running on the app core, and am running the HCI_IPC firmware on the network core. So far, I've successfully configured sysbuild to create the multi-image build, and I've successfully set up MCUboot to enable DFU over USB. I am able to update the application core image using DFU - though I've had to enable SB_CONFIG_MCUBOOT_MODE_SINGLE_APP in order for everything to fit in the available memory. I am not using external flash. 

As far as I can tell, the only two options for network core DFU are:

Simultaneous multi-image DFU
From what I can tell, this is only possible if enough memory is available for primary and secondary slots for both the application and network core images. Unless there are special cases where I can use this in a single-slot configuration, it's probably a non-starter.

Serial recovery of the network core
This is seeming more promising for memory-constrained applications. Though if I enable CONFIG_NRF53_MULTI_IMAGE_UPDATE, I immediately receive lots of build errors regarding the names and sizes of partitions. However, I can't seem to find a clear example for how the partitions should be set up in a single-slot project such as mine. The relevant DevAcademy course mentions that serial recovery of the network core is possible but that's about it.

I know that the new network core image must get placed in mcuboot_secondary before getting swapped into the network core using PCD. Can the mcuboot_secondary partition be sized smaller than the mcuboot_primary partition containing the app core image, provided that it is still large enough to contain the network core image?

If anyone could point me towards examples or documentations for network core DFU when available memory precludes dual slots, I'd appreciate it! 

Related