Boot a ldr file larger than 64K

Hi, 

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?

Using BF706

Thanks



New
[edited by: SVA at 9:11 AM (GMT 0) on 2 Jun 2020]
Parents
  • 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. 

Reply
  • 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. 

Children
No Data