Hi Community,
For an imx6qsabresd board : I would like to implement the Redundant Boot Support.
I modified the secondary image table format like this in my sdcard to reboot with the first u-boot after a WARM reset.
Address | Value |
---|---|
0x200 (reserved Chip Num) | 0 |
0x204 (reserved Drive Type) | 0 |
0x208 (tag) | 0x00112233 |
0x20C (first sector number) | 0x002 |
0x210 (reserved Sector Count ) | 0 |
I wrote this header in 0x200 :
0000 0000 0000 0000 3322 1100 0200 0000
0000 0000
dd if=header of=/dev/sdb bs=1 seek=512 count=20
For rebooting with this table I created a WARM reset in u-boot :
PERSIST_SECONDARY_BOOT : SRC_GPR10[30]
reg = readl( &psrc->gpr10 );
reg |= 0x40000000;
writel( reg , &psrc->gpr10 );
I send a reset in u-boot prompt and the system do nothing :
=> reset
resetting ...
1) The secondary image table is correct ?
2) The WARM reset cannot be like that ?
As imx6 redundant boot from secondary bootloader may be useful for someone , i am sharing below procedure which worked for me .
Create primary boot image
dd if=u-boot.bin of=/dev/sdc bs=1K seek=1 skip=1
Create secondary boot image, in this example, start from 400KB i.e seek in blocks.
dd if=u-boot-sec.bin of=/dev/sdc bs=512 seek=800
Take header file shared in below link.
i.MX53 Redundant Boot -blog archive
To create secondary image table, run below command
dd if=header of=/dev/sdc bs=512 seek=1count=1
Destory primary u-boot by setting the entry of ivt to 0, so rom can jump to secondary image.
dd if=/dev/zero of=/dev/sdc bs=1 seek=1028 count=4
for imx6 check value at 0x20d8044 it should show 0x40000000 , which indicates imx6 has booted from secondary bootloader.
Hi Julien,
Where you able to make it work?
Best Regards,
Alejandro
Hi Alejandro,
I'm not able to make it work so could you help about this ?
Best Regards,
Julien
I can suspect that there is some mishmash with big- and litte-endian modes.
Please doublecheck this "header" file with "hexdump -C" command.
Here is an example of mishmash I mean:
# echo -n @ABC > a
# hexdump -C a
00000000 40 41 42 43 |@ABC|
00000004
# hexdump a
0000000 4140 4342
0000004
#
Have a great day,
Victor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Thank for your help but i tried and nothing append.
I used the header from this post : Re: i.MX53 Redundant Boot -blog archive
I can confirm that it's not working on imx6qsabresd with sd-card.
Tried every possibility regarding endianness, different sector offsets, etc.
Since this feature is a must-have in our product, I shall appreciate it that a freescale engineer can take this topic up.
Are we facing a silicon bug? Is the programming manual lacking information? Or do we miss something else?
Best regards,
Wim