AnsweredAssumed Answered

how to implement imx1050 external bootloader

Question asked by ivan li on Apr 3, 2018
Latest reply on Apr 13, 2018 by Carlos_Musich

Dear ,

I know there is an internal bootloader in 1050 chipset, but it can NOt meet our requirement, so we need implement second bootloader. so normally, after power on, the internal bootloader in imx1050 will load the second bootloader(start at 0x60000000), the the seconder bootloader will load real APP(0x60010000).
My bootloader size is 0x10000 (64K), i set the APP 's flash address at 0x60010000

i use MCUXPresso flash programmer to program the hyperflash of EVK board, but i think it NOT program from 0x60010000 BUT from 0x60000000, it will erase my bootloader file.
here is log,:
Nt: Loading 'testApp.bin' Binary 0x60010000 len 0xE5D4
Nc: Opening flash driver MIMXRT1050-EVK_S26KS512S.cfx (already resident)
Nc: Sending VECTRESET to run flash driver
Nt: Writing 58836 bytes to address 0x60010000 in Flash
Pb: 1 of 1 ( 0) Writing pages 0-0 at 0x60010000 with 58836 bytes

Ps: ( 0) at 60000000: 0 bytes - 0/124372
Ps: ( 13) at 60000000: 16384 bytes - 16384/124372
Ps: ( 26) at 60004000: 16384 bytes - 32768/124372
Ps: ( 39) at 60008000: 16384 bytes - 49152/124372
Ps: ( 52) at 6000C000: 16384 bytes - 65536/124372

(i think it should be start at here, but please see above)
Ps: ( 65) at 60010000: 16384 bytes - 81920/124372
Ps: ( 79) at 60014000: 16384 bytes - 98304/124372
Ps: ( 92) at 60018000: 16384 bytes - 114688/124372
Ps: (100) at 6001C000: 16384 bytes - 131072/124372
Nt: Erased/Wrote page 0-0 with 58836 bytes in 8194msec
Nc: Closing flash driver MIMXRT1050-EVK_S26KS512S.cfx
Pb: (100) Finished writing Flash successfully.
Nt: Flash Write Done
Nt: Loaded 0xE5D4 bytes in 8632ms (about 6kB/s)
Nt: Reset target (core)
Nc: Starting execution using core reset
am i right about this?

and i think use the MCUXPresso debug the app, it also NOT start at 0x60010000. am i right about this?
i also notice that if i set the flash address from 0x6000000 to 0x60010000 (or any but not 0x60000000), the Image Vector Table (IVT) will not generated,
is this normal not no bad effect ?
is there any good example\ source code of the bootloader or guide to reference ?

Please help me about this.

Best regards!