This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi,
Is there a configuration inside u-boot that allows u-boot to boot from boot1 automatically if it detects that boot0 is corrupted and unable to boot?
For now, I have configured u-boot to boot from boot0 by using command mmc partconf 0 1 1 1. If boot0 is unbootable, how do I make u-boot boot from boot1 without me going into u-boot and type mmc partconf 0 1 2 1 to change to boot from boot1 manually?
Thanks.
Hello,
From u-boot binary (tiboot3.bin/tispl.bin/u-boot.img) in the boot flow, which file(s) is discussed here?
Best,
-Hong
Correct me if I am wrong, but from my understanding, if one of the three files is corrupted, u-boot will not boot, right? So, all 3 files are discussed.
Initially, I have flashed the 3 files into both boot partitions boot0 and boot1 and successfully boot from them. I have simulated the corruption by erasing one of the boot partitions. So the task now that I am trying to achieve is to automatically boot from another boot partition when it detects that one of the boot partitions is unbootable.
Hello,
Please refer to this e2e post first.
e2e.ti.com/.../4487355
On your user case, bootrom supports booting R5 BL from any one of eMMC partitions:
A/. boot partition#1: raw
B/. boot partition#2: raw
C/. UDA: raw/fs
bootrom reads/boots R5 BL from one of eMMC A/B/C partitions based on
(1). BOOTMODE pins => eMMC
(2). eMMC EXTCSD non-volatile register pre-setup => which one of eMMC partitions A/B/C, bus width etc...
For example, the following cmd @u-boot pre-configures eMMC EXTCSD non-volatile registers as noted.
=> mmc partconf 0 1 1 1 Boot configuration bytes [PARTITION_CONFIG: 0x48] @EXTCSD[179] => boot from BOOT#1, and ack => mmc bootbus 0 2 0 0 Boot bus Conditions [BOOT_BUS_CONDITIONS: 0x02] @EXTCSD[177] => x8 (sdr/ddr) bus width in boot operation mode
There's bootrom recovery support on booting from eMMC UDA raw mode, where it is possible to have two copies of R5 BL (one @0x0, and redundant one @0x400000).
Best,
-Hong
Hi Hong,
Thanks for the reply. However, I still have some doubts.
From this e2e post https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1190507/sk-am62-bootmode-switch-to-backup-mode-automatically/4487355#4487355, it mentioned something about R5 redundant boot at offset 0x400000. Also, in your previous reply, I am not quite sure about the last sentence "There's bootrom recovery support on booting from eMMC UDA raw mode, where it is possible to have two copies of R5 BL (one @0x0, and redundant one @0x400000).".
What is this redundant boot? I don't seem do find this in the TRM. Is there any documentation about this that I can refer to?
Where and how do I configure this redundant boot / bootrom recovery support at 0x400000?
Another thing, from this thread https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1015011/tda4vm-can-tda4-boot-into-emmc-boot1-when-boot0-is-invalid, it seems that it might not be possible for ROM to jump into another boot partition during runtime. The only way to change boot partition is by modifying u-boot. Is this the same for AM62?
Regards,
Chee
Hello Chee,
Please refer to this FAQ on redundant/recovery boot support in Rom-Boot-Loader (RBL) loading R5F-BL(BootLoader) in K3 SoCs, i.e. AM64x, AM62x, AM62A...
https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1190873/faq-am64x-am62x-soc-redundant-recovery-boot-support-in-onchip-rom-boot-loader-rbl-booting-r5f-bl-bootloader
On your user case, bootrom supports booting R5 BL from any one of eMMC partitions:
A/. boot partition#1: raw
B/. boot partition#2: raw
C/. UDA: raw/fs
bootrom reads/boots R5 BL from one of eMMC A/B/C partitions based on
(1). BOOTMODE pins => eMMC
(2). eMMC EXTCSD non-volatile register pre-setup => which one of eMMC partitions A/B/C, bus width etc...
- It is not possible for RBL to auto-switch to boot from another partition (i.e. boot partition#2) when RBL fails on the integrity check on the R5-BL from the current partition (i.e. boot partition#1). This is due to the fact that which eMMC partition to boot from is determined by eMMC EXTCSD non-volatile register pre-setup.
There's bootrom recovery support on booting from eMMC UDA raw mode, where it is possible to have two copies of R5 BL (one @0x0, and redundant one @0x400000).
- When eMMC is configured as UDA-raw by BOOTMODE pins, RBL does support redundant/recovery boot from the primary offset @0x0 OR the redundant offset @0x400000 from UDA-raw. Note that there's no eMMC boot partition switch for this case.
- Once R5-BL starts to run, it is perfectly possible for R5-BL code to switch OR read from any partition (A/B/C as listed above) as needed after re-configuring eMMC EXTCSD non-volatile registers.
Best,
-Hong