In my bootloader, it is possible to write a ldr file in flash and boot the file from flash by calling "adi_rom_Boot((void *)0x40010000, 0, 0, 0, 0x207)" and it works fine. But the size of the ldr file is now more than 64K and it is not possible anymore to boot to the application when I call the same command. Do I need a precondition when I write to the two blocks in flash?
I follow these step:
1. Delete flash block1, which it starts at 0x10000
2. Write to addresse 0x10000 until 0xFFFF
3. Delete flash block 2, addresse 0x20000
4. Write to addresse 0x20000, the last data has been written into the addresse 0x23000
5. adi_rom_Boot((void *)0x40010000, 0, 0, 0, 0x207)
By the way, I sign and encrypt the ldr file as:
signtool sign -type BLx -prikey auth_key.bin -enckey encrypt_key.bin -infile C:\WorkSpace\LDR_TEST.ldr -outfile LDR_SecBoot.bin
and I assume, the above command is the same for files less or more than 64KB.
I need an answer. Please someone say something.
If I write the ldr file into the 0x00 in flash, then I can boot the application successfully by adi_rom_Boot((void *)0x40000000, 0, 0, 0, 0x207) . The issue is when I write the ldr file at addresse 0x10000 into the flash, and then I can't boot the application by adi_rom_Boot((void *)0x40010000, 0, 0, 0, 0x207). My bootloader is at addresse 0x0000, and I want to boot the application from addresse 0x10000.
Hi,This issue is already handled through private support. To avoid duplication of efforts, please continue the discussions there.Regards,Anand Selvaraj.