Hi,
I've found a feature called "FAST BOOT" in the recently released SDK, and it might be a very interesting opportunity to decrease the 2-stage OTA boot time by not starting NWP twice.
As far as I got it right, the "magic" is described in example/application_bootloader/filesystem.h -- there are macros (fs_Open, fs_Read, fs_GetFileInfo, fs_Close) that point to the specific functions in ROM. I link image using bootmgr_fastboot.ld and load via gdb. The problem is that, for example, fs_Open expects certain values in regions like 0x20001200, and can even crash (HARD FAULT), because it treats some data in these SRAM regions as pointers. I stepped through the disassembled ROM and figured out how to "fix" that with
memset((void *)0x20001208, 0, 4);
but now I get -11 (not found) errors on any file I try to open. Please shed some light on the proper environment that these functions expect.
I also tried flashing my image into /sys/mcutst.bin (without relocator) and boot -- no success.