[U-Boot] Dual boot Images in Flash
Gupta, Pekon
pekon at ti.com
Tue Oct 1 08:02:23 CEST 2013
> From: u-boot-bounces at lists.denx.de [mailto:u-boot-
> Dear pshambhu,
>
> In message <1380547665536-164381.post at n7.nabble.com> you wrote:
> >
> > As per previous posting i got to know that, there will be only one reset
> > entry point, can't i have the another entry point in it.
>
> You can talk to your chip vendor to provide you with some kind of
> logic to detect failed boot attempts and provide an alternative reset
> vecotr then. Guess your chances to gett that are extremely small,
> though.
>
> You can, of course, throw hardware at it, and for example provide
> duplicate storage . memory devices for booting from, so you only have
> to swap chip select resp. address lines to select the alternative boot
> device.
>
> > - Why i can't have multiple entry points ? and what will be effect if i
> > introduced ?
>
> You can't, because your processor only has one.
>
> > - Where the reset entry points are defined in the u-boot code ?
>
> They are not defined in U-Boot, they are defined in the processor
> silicon or ROM code.
>
> Disclaimer: of course things get even more complicated when you keep
> in mind that there is a multiverse of different hardware solutions,
> some of them with special, and others with truely exotic features.
>
you can tweak your hardware to split it, and many micro-controllers
do it (especially for safety critical applications). Example:
Suppose 'default' entry-point (or reset entry-point) = 0x0000_0000,
Now OR your MSB bit with the fault-signal or boot-error-flag.
reset-addr[31] = reset-addr_internal[31] | boot_error_flag;
So in case when you primary boot fails, and boot_error_flags is set,
next time when you boot, the address transforms into 0x1000_0000
This can also be done at board-level, where you can always re-route
your default chip-select to some different memory by ORing it with
boot_error_flag. But yes, you need a way to determine that your
first boot failed, which is usually done by having a on-board watchdog,
which timeout if system doesn't boot within given time.
with regards, pekon
More information about the U-Boot
mailing list