[U-Boot-Users] Sequence of Xilinx ML403/PPC

S. Egbert s.egbert at sbcglobal.net
Fri Jan 27 10:06:51 CET 2006

Awesome... Got U-boot 1.1.4 working on a Xilinx ML403 (PPC 405)
evaluation board with our custom core.

Next for this planning stage, I'm trying to juggle 'leap-frogging'
memory mapping between the first-loader (Xilinx SREC bootloader in
firmware), second loader (U-boot 1.1.4) and Linux 2.4 OS.

Firstly, we started with Xilinx's SREC (bootloader.c) bootloader (I
know, I know, SREC is space consuming) and plan to replace this first
bootloader with an ELF or pseudo-binary version later after
everything-else is checked out.

Planning-wise, I envisioned that such a bring-up memory overlaying
sequence would be something like this:

1. Xilinx bootloader.c reads SREC from 16-bit flash and
decode/verify/copies to lowest RAM (0000_0000).  Then transfers control
to 0000_0100.

2. U-boot starts up and relocate itself to MONITOR region which is in
the highest RAM region of 01F0_0000.

3. U-boot Scripting occurs which copies Linux OS from flash into where?
 Next highest or lowest portion of RAM?  Is it dependent on whether
dual-stage vmlinux.initrd or single-stage vmlinux is used or not?

At power-up, with U-Boot 1.1.4 being unusually low-RAM-based before
starting up (instead of executing straight out of ROM), I noticed that
despite being relocated to MONITOR (higher RAM) region, the PIT
exception vector appears to be active in 0000_10c0-ish.

Despite this RAM-to-RAM relocation, this "mtest" clobbering of the
0000_10C0 region caused Machine Exception error whenever I attempt to
perform memory test over this supposedly former exception vector region.
 I thought that the objective during U-boot relocation was to ensure a
completely discontinued RAM region (formerly occupied by U-boot
ROM-based session).

A hard and easy questions to the esteemed and avid readers of
u-boot-users mailing list...

1.  Where do I go from there with regard to the 0000_1000
(PIT_EXCEPTION).  Isn't the PIT specific to Motorola 8xx-series (this
here is a PPC 405).  What exception did the lib_ppc/start.S/trap_init()
exactly skipped? Skipped an exception mentioned vaguely in this source
code vaguely.  Do I need to tweak the trap_init() some more to relocate
these untransfered exception vectors into the high MONITOR region?

2. And lastly, do I go high or low for Linux OS?

Thank you,

S. Egbert

More information about the U-Boot mailing list