
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@gmail.com] Sent: Wednesday, 1 February 2012 11:58 p.m. To: Wolfgang Denk Cc: u-boot@lists.denx.de; Bud Miljkovic Subject: Re: [U-Boot] Can u-Boot Ran from RAM?
Dear Marek Vasut,
In message 201202011111.09465.marek.vasut@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