Hello,
I am trying to use the NXP Secure Provisioning Tool v2.1 to upload an XIP application to an Embedded Artists i.MX RT1062 board which uses the Adesto EcoXIP (ATXP032) for Flash.
Using MCUXpresso (and J-Link debugger) the application uploads and runs fine.
Switching to Secure Provisioning Tool (or NXP MCUBootUtility) the application uploads, but cannot execute.
I am using the flashloader that comes with Secure Provisioning Tool and I have also tried using a custom flashloader.bin based on the MCUboot SDK example in MCUXpresso SDK 2.8.6
I used MCUBootUtility to read out the flash memory (from location 0x60000000) to compare the two binary images.
There are some substantial differences between the two methods.
Specifically, the Flash Device Config Block (which starts at 0x60000000) is different. Then the IVT, Boot Data and DCD sections (which start at 0x60001000) are also very different.
It seems that these differences cause the application to fail to run. I manually removed the boot header from an MCUExpresso based binary image and loaded it using Secure Provisioning Tool directly, and it did successfully execute from Flash (although very slowly). But this doesn't fix the FDCB section, which seems cause the poor execution performance.
It looks like the flashloader function "flexspi_nor_generate_config_block_adesto_octalflash" is responsible for setting up the FDCB section, these settings are different than the MCUXpresso settings which seem to be set by "evkmimxrt1060_flexspi_nor_config.c"
Is it possible that the FDCB configuration for the Adesto Octal flash is incorrect or hasn't been updated in the SDK example for the flashloader and the flashloader included with Secure Provisioning Tool / MCUBootUtility?
Here are some screenshots highlighting my findings:


This is the flash config for xip in an MCUXpresso application project:

This looks to be the corresponding flash configuration in the flashloader code:

thanks