[U-Boot] Chain loading an u-boot from an u-boot

Helmut Raiger helmut.raiger at hale.at
Thu Feb 13 10:03:23 CET 2014


On 02/12/2014 11:45 AM, Andreas Bießmann wrote:
> Hi Helmut,
>
> On 02/12/2014 10:56 AM, Helmut Raiger wrote:
>>> I understand the first two points, but why do you store the kernel again
>>> with 1bit HW-ECC ? The second U-Boot is able to check with 4bit BCH and
>>> your NAND requires 4bit.
>> This is mainly due to performance requirements. Using 4bit BCH
>> increases overhead and makes DMA (currently not used in the
>> kernel driver) a lot slower. We thought we might slip through with
>> 1bit HW-ECC, but we will test this (hopefully not in the field this time
>> ;-) )
> If your HW requires 4Bit it is highly recommended to do so. You will run
> your HW out of specs in other case and I think it is hard to qualify
> that 4Bit required ECC runs with 1Bit ECC and UBIFS as you stated in a
> previous mail.
You guys are right. I'm just cornered, as performance is a big issue aswell.
We'll try to qualify the NAND in proper climate and some UBIFS supervision
to gain more insight. Its just that teh application software guys suggested
to improve the kernel driver to use DMA to increase overall performance.

>> why another u-boot should be any different?!
> Just thinking ... have you checked the global data pointer? Is it
> possible that the global data of the first u-boot influences the global
> data of the second one?

The global data pointer is setup right before the newly set stack pointer
in arch/arm/lib/crt0.S, so it should be reset anyway.

And answering Stefano's question. The RAM setup is only in
the SPL which is skipped when I jump to the second u-boot.

But you just inspired me! There are probably interrupts running
for some time when the second u-boot starts and the relocation
might destroy part of the interrupt entry points ....

Thx for asking the right questions.
I'll have to check this.

Helmut


--
Scanned by MailScanner.



More information about the U-Boot mailing list