Looking at an i.MX RT1062 QSPI binary boot image today, I noticed that even though the checksum.exe utility is inserting a vector table checksum at file offset 0x1C (as per numerous other NXP processors), for a binary image that's booting from QSPI, I think this should actually be at file offset 0x201C (i.e. inside g_pfnVectors[]):
checksum -p MIMXRT1062xxxxA -d "Bootstrap_RevA.bin"
Written checksum 0x67b5b5ba at offset 0x1c in file Bootstrap_RevA.bin
Previous value 0x00000000 at offset 0x1c in file Bootstrap_RevA.bin
So it seems to me that checksum.exe doesn't know that there's a 0x2000-byte QSPI header at the start of the binary image for this processor. Is this correct?
Has NXP made the checksum.exe source code available anywhere (it's not exactly a huge commercial secret), or has it documented the specific details of what the utility does for each supported processor?
Thanks, Nick
PS: with the -v option enabled, the output looks like this:
Checksum utility for NXP LPC MCUs
Using checksum algorithm for LPC1xxx (7 words)
Copyright 2009-2012 Code Red Technologies Limited
Copyright 2014-2015, 2018-2019 NXP
Adding 0x42464346
Written checksum 0x67b5b5ba at offset 0x1c in file Bootstrap_RevA.bin
Adding 0x56010400
Adding 0x0
Adding 0x30300
Adding 0x0
Adding 0x0
Previous value 0x00000000 at offset 0x1c in file Bootstrap_RevA.bin
Adding 0x0
Checksum 0x67b5b5ba
Validation 0x42464346
Validation 0x56010400
Validation 0x0
Validation 0x30300
Validation 0x0
Validation 0x0
Validation 0x0
Validation 0x67b5b5ba
Validation checksum = 0x0 (should be zero)