Bootstrapping a PPC8260 board
Jerry Van Baren
vanbaren_gerald at si.com
Sat Jan 29 07:09:44 EST 2000
I need to create a bootstrap program for a PPC8260-based board and am
looking for code (always most helpful :-), ideas, and critiques. The
idea is to have a minimal bootstrap loader built into flash such that
it is sufficient to load a "real" program into RAM and start to run
that program. The "real" program could be just a more elaborate
bootstrap program that is capable of loading via ethernet and knows how
to write to flash, or it could be a fully functional system.
The desire is to have a bare minimum program for the following reasons:
* Faster to implement
* Small and thus faster to load via a slow JTAG loader
* Lower risk of bugs
* Easier to port to different hardware
* It seems silly to have a full linux kernel just to be able to load a
linux kernel
I'm proposing S-records in a pseudo file loaded via ethernet/IP/UDP/TFTP
* Host end is all standard protocols and readily available programs
* IP/UDP is reasonably simple to implement as a polled mode driver
* TFTP is simple to implement
My current plan is:
* Initialize the processor and the RAM interface.
* No cache (the QUICC does all the high speed stuff)
* No MMU
* No interrupts
* Blinky light (for debug use: blink every 'n' S-records seen)
* Set up an FCC to run ethernet
* The protocol stack will be simple polled mode ethernet/IP/UDP/TFTP
* The MAC and IP addresses will be burned into flash
* Writing to the file "MEM" (or any file?) causes the TFTP code to
look for S-records, convert them to bytes and write them to
memory. If there is a start address S-record, jump to that address.
* Enhancement: a read from the file "MEM<addr>-<length>" will return
S-records representing that section of memory (<addr> and <length>
are both eight ASCII-hex digits).
* Enhancement: be able to write to flash memory.
* Enhancement: use BootP to get the IP address, file to load, etc.
This would change the loader from a "push" type system to a
"pull" type system.
gvb
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
More information about the Linuxppc-embedded
mailing list