Next Previous Contents

6. Frequently asked questions

6.1 How portable is Etherboot?

Now and then, the question is raised whether Etherboot is portable to other machine platforms, i.e. not x86. Etherboot is not per se a portable program as it only handles one architecture. Portability was not a goal simply because the only development platform available to me that did not already have a boot ROM capability was the x86 platform. (Sparcs and Alphas already have network booting capability in their boot ROMs.)

The portability, or rather, lack of portability, of Etherboot isn't simply an issue of the assembler code. Etherboot needs and assumes certain hooks into the running environment, e.g. the extension BIOS mechanism that invokes Etherboot, the BIOS calls made by Etherboot, and the memory layout of the Etherboot components. The core routines of Etherboot that handle the address configuration and network loading should be machine-independent, but there may be byte-order bugs lurking, this has not been checked. The drivers are hardware dependent of course, so the ISA adaptor drivers are no use anywhere else. The PCI adaptor drivers should work on other machines, but the PCI subsystem that handles adaptor detection is x86 PCI BIOS specific.

Here are the low-level services that need to provided: writing and reading from the console, determining the size of memory, obtaining the time of day, inserting a boot vector to be called, and a microsecond timer for short delays. Depending on the target environment, these services may be provided in different ways.

6.2 How can I get Etherboot to boot a Cardbus (PCMCIA) or a USB NIC?

Cardbus (PCMCIA) and USB NICs are interfaced to the CPU through their respective bus controllers. Before Etherboot can address the registers and memory on these NICs, it must initialise the bus controller appropriately. In Linux this is done by the PCMCIA and USB subsystems. In Etherboot, all this must be done by the code in the ROM. What needs to be written is a subsystem like the PCI subsystem in Etherboot. Volunteers are most welcome.


Next Previous Contents