[U-Boot] Can u-Boot Ran from RAM?

Bud Miljkovic Bud_Miljkovic at trimble.com
Mon Feb 6 23:37:56 CET 2012


Here is another go on this issue!

The following is a response from Freescale technical support with my
questions inserted:
----------> 
The "initial bootloader" code (including IVT, DCD and application code
itself) should be very small to fit into 4Kb space that is read out from
NAND Flash during the first stage of NAND boot. The typical use case of
NAND boot in i.MX53-based systems is as follows.
1. Internal BootROM code finds the valid initial 4Kb space within NAND
Flash memory and loads it into the NAND Flash Controller's (NFC's) RAM
buffer.

2. Internal BootROM code finds a valid IVT in just loaded data,
processes it, finds DCD and performs the initialization of integrated
peripherals (typically, SDRAM controller, IOMUX and, if required, other
peripherals) according to it.

3. Internal BootROM code finds an application code (typically, "initial
bootloader"), copies it into target memory (typically SDRAM) and passes
control to it.

4. The "initial bootloader" code copies a main bootloader (e.g. uBoot)
from NAND Flash to SDRAM and passes control to it.
Bud_Q1> This is issue:  will the uBoot run correctly if it starts from
SDRAM as suggested?

Bud_Q2> Based on my understanding of how the u-Boot runs, the "initial
bootloader" should just pass control to the u-Boot in NAND?  This would
cause for all integrated peripherals to re-initialized but should not be
a problem.

5. The boot process continues under the control of main bootloader.

So, at the moment when main bootloader (uBoot) starts working, most of
the primarily required integrated peripherals (SDRAM controller, NAND
Flash controller) are already initialized and working, so, a main
bootloader has no need to re-initialize them.
Bud_Q3> Is there maybe a version of a u-Boot that skips initialization
phase, i.e. just relocates itself to RAM?

<------------

Can you please respond to my questions?
-bud


-----Original Message-----
From: Marek Vasut [mailto:marek.vasut at gmail.com] 
Sent: Wednesday, 1 February 2012 11:58 p.m.
To: Wolfgang Denk
Cc: u-boot at lists.denx.de; Bud Miljkovic
Subject: Re: [U-Boot] Can u-Boot Ran from RAM?

> Dear Marek Vasut,
> 
> In message <201202011111.09465.marek.vasut at gmail.com> you wrote:
> > > On Monday 30 January 2012 23:07:05 Bud Miljkovic wrote:
> > > > While getting acquainted with possible u-Boot development
issues, I
> > > > read FAQ "14.2.1.  Can U-Boot be configured such that it can be
> > > > started in RAM?" and was puzzled to learn that u-Boot cannot run
> > > > from RAM.
> > > 
> > > you misread it.  the question is for people who have loaded
u-boot, and
> > > then want to load another copy of u-boot into ram and then execute
that
> > > directly.
> > > 
> > > so the question is "can u-boot be *started in ram*" and the answer
is
> > > "no".
> > 
> > The answer is "yes if you know how to do it" ;-)
> 
> The answer is "NO".  You cannot load the _normal_ U-Boot image to RAM
> and start it.  You must prepare a _special_ image which omits all the
> initializations that are normally included.

You can on PXA ;-)
> 
> This FAQ addresses the situation where people want to load and run
> their _normal_ images before burning these to flash.  And this CANNOT
> be done like that.

You're certainly right this is true for general case, but there are
special 
cases where you can load u-boot from u-boot without any harm (PXA is the

example).

> 
> Best regards,
> 
> Wolfgang Denk


More information about the U-Boot mailing list