[U-Boot-Users] RAM vs. ROM version of PPCBoot
Chris Hallinan
clh at net1plus.com
Tue Dec 3 20:47:32 CET 2002
Ken Chou wrote:
> Why RAM version?
> Mostly, the convenience is the main reason.
I can't imaging debugging PPCBoot (or most other flash-resident)
code any other way.
<snip>
> I see there are a few board use "CFG_RAMBOOT" flag.
> My guess is that someone did the same thing as I did.
I use this method, and it is trivial. Here are the steps I use to
convert my build from FLASH code to RAM code:
My board/myboard/config.mk file looks like this:
TEXT_BASE = 0x00400000
#TEXT_BASE = 0xFFF00000
PLATFORM_CPPFLAGS
+= -DTEXT_BASE=$(TEXT_BASE) -DDEBUG -DCONFIG_DNA -DCFG_RAMBOOT
#PLATFORM_CPPFLAGS += -DTEXT_BASE=$(TEXT_BASE) -DCONFIG_DNA -DDEBUG
I simply flip-flop the commented out lines for RAM or FLASH. Then I
rebuild all objects (after make clobber) and I have the binary for
either FLASH or RAM. (There are a dozen other ways this could be
done, but I subscribe to the "Don't Fix It If It Ain't Broke"
school.
I use the flag "CFG_RAMBOOT" to comment out the cpu-specific stuff
like SDRAM init, etc., that breaks when running from RAM. My
current version for 824x comments out exactly 2 lines in start.S
like this:
#ifndef CFG_RAMBOOT
bl early_init_f /* Must be ASM: no stack yet! */
#endif
...
#ifndef CFG_RAMBOOT
bl cpu_init_f /* run low-level CPU init code (from Flash) */
#endif
I then load the resulting (RAM-based) image at TEXT_BASE and type
'go 400100'.
I can't say it's perfect, but I can say this: it has worked for me
without problems for several different projects.
-Chris Hallinan
DS4.COM, Inc.
More information about the U-Boot
mailing list