Hi,
We are using the flashloader as a secondary bootloader to allow flashing our application. The flashloader is programmed with the MCUXpresso secure provisioning tool. It starts and execute normally.
Our custom board is based on i.MX RT1051 with an external hyperflash from ISSI (ISKS26S128...). Writing to hyperflash with a debug tool (JLink) works fine and with ROM bootloader as well. However, when I try to flash our application through the flashloader (provided by NXP without modification except USB vid and pid), the writing process seems to work but when I read the hyperflash back with the debug tool, flashing didn't work (all 0xFF).
We use a custom Python application to flash and here is the output:
['c:\\git\\imxrt-prog-tools\\cli-tools\\bin\\blhost.exe', '-u', '0x34A8,0x210', '-t', '1000000000', '-j', '--', 'fill-memory', '0x2000', '4', '0xc0233008']
{
"command" : "fill-memory",
"response" : [],
"status" : {
"description" : "10000 (0x2710) kStatus_UnknownCommand",
"value" : 10000
}
}
['c:\\git\\imxrt-prog-tools\\cli-tools\\bin\\blhost.exe', '-u', '0x34A8,0x210', '-t', '1000000000', '-j', '--', 'fill-memory', '0x2004', '4', '0x00000000']
{
"command" : "fill-memory",
"response" : [],
"status" : {
"description" : "0 (0x0) Success.",
"value" : 0
}
}
['c:\\git\\imxrt-prog-tools\\cli-tools\\bin\\blhost.exe', '-u', '0x34A8,0x210', '-t', '1000000000', '-j', '--', 'configure-memory', '9', '0x2000']
{
"command" : "configure-memory",
"response" : [],
"status" : {
"description" : "0 (0x0) Success.",
"value" : 0
}
}
['c:\\git\\imxrt-prog-tools\\cli-tools\\bin\\blhost.exe', '-u', '0x34A8,0x210', '-t', '1000000000', '-j', '--', 'flash-erase-region', '0x60040000', '0xfc0000']
{
"command" : "flash-erase-region",
"response" : [],
"status" : {
"description" : "0 (0x0) Success.",
"value" : 0
}
}
['c:\\git\\imxrt-prog-tools\\cli-tools\\bin\\blhost.exe', '-u', '0x34A8,0x210', '-t', '1000000000', '-j', '--', 'write-memory', '0x60040000', 'c:\\git\\Skinetic\\Release\\Skinetic.bin']
{
"command" : "write-memory",
"response" : [],
"status" : {
"description" : "0 (0x0) Success.",
"value" : 0
}
}
['c:\\git\\imxrt-prog-tools\\cli-tools\\bin\\blhost.exe', '-u', '0x34A8,0x210', '-t', '1000000000', '-j', '--', 'reset']
{
"command" : "reset",
"response" : [],
"status" : {
"description" : "0 (0x0) Success.",
"value" : 0
}
}
I tried step by step debugging with Ozone but everything seems to work fine. The write commands are sent to the external flash and success is returned.
There must be a difference in the flash configuration between 1052 EVK and our board. However, the only difference beside that we use a 1051 is the hyperflash (we use ISSI IS26KS128S-DPBLI00 instead infineon S26KS512SDPBHI020). The commands to program the flash are the same for both hyperflash.
Does anyone has an idea of where I should look to make this work?
Thanks,
Hugo