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) onboard PXE ROM; on modern cards this is usually 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.
It is not generally possible to re-use an existing Linux or Windows driver to provide PXE support, since a PXE ROM is required to be very small (even if plenty of flash storage is available on the card). A typical PXE driver is approximately 90% smaller than the Linux driver for the same card. This requires a design approach in which code size is the top priority.
PXE code executes before an operating system is loaded, while the CPU is still in real mode. During this time, there is no support beyond that provided by the BIOS. PXE must therefore be aware of BIOS calls, the direct programming of 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 iPXE network bootloader. iPXE provides the core PXE functionality plus numerous additional features such as DNS, iSCSI boot, HTTP boot, direct kernel loading and more.
We are able to develop an iPXE 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 is around £5,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.