|
cayload is an ethernet bootloader for downloading Linux
kernels to a Cayman board.
It's primary use is for sh64 Linux developers and
maintainers. It dispenses with the need for a Microconnect debug adaptor for
downloading kernels. Moreover, it is extremely fast. A kernel can be
downloaded at 5MB/s, i.e. most kernels will download in under a second. This
compares to the fastest downloading over a Microconnect, which is getting on
for a minute.
A client stub runs on the Cayman board. So far, this has always been hosted in
the Cayman flash and booted using cayboot (see above). In principle,
this small program could be downloaded to the Cayman using the 'Madrid' (bare
machine) toolchain. I suspect some bootstrap changes would be required for
this, though (e.g. the MMU might need setting up differently.)
A server program is run on the host system, typically a Linux PC. The host
program is largely platform-agnostic though.
The server can do the following:
- configure the stub's IP address (via a broadcast BOOTP reply packet)
- download elf images to the stub (e.g. the vmlinux file)
- download binary files to the stub (e.g. a binary version of the vmlinux file, or a ramdisk)
- download string data to the stub (e.g. to set the kernel command line)
- the download information may be overlayed in any order
The download happens using a UDP-based protocol (with unicast addressing)
between the two machines. Only the initial BOOTP reply message to tell the
Cayman it's IP address is broadcast. (Note that the Cayman does not send a
BOOTP request, it is entirely passive until it receives something it
recognizes.)
|