Content
PXE drivers
PXE (Preboot eXecution Environment) is the de facto standard for network booting on the x86 platform. Network cards typically ship with a small (less than 64kB) PXE ROM onboard; on modern cards this is typically held in flash memory rather than ROM. At boot time, the PXE code is used to drive the card and perform a boot over the network.
Because a PXE ROM must be very small (even if plenty of flash storage is available on the card), it is not generally possible to re-use an existing Linux or Windows driver to provide PXE support. A typical PXE driver is approximately 90% smaller than the Linux driver for the same card. This requires a design approach that makes code size the top priority.
PXE code executes before any operating system is loaded, while the CPU is still in real mode and there is no support beyond that provided by the BIOS. PXE must therefore be aware of BIOS calls, directly programming the motherboard timer chips, 16-bit real-mode segmented addressing, the gate A20 line, and a host of other arcana that are not relevant to writing a driver for a modern operating system such as Windows or Linux.
Fen Systems is the driving force behind the open-source gPXE network bootloader. gPXE provides the core PXE functionality plus a host of additional features such as DNS, iSCSI boot, HTTP boot, direct kernel loading and more.
We are able to develop a gPXE driver for your network card. We have written drivers for a wide range of network cards, including 10/100Mbit, gigabit and 10-gigabit Ethernet, and 802.11b wireless Ethernet. The typical total cost will be around £2,000+VAT, with a timescale of one to two weeks. As with all our projects, the precise set of deliverables and the project schedule will be agreed in advance, as will the total cost. Please contact us to start discussions.
