[ipxe-devel] Considering writing a native UEFI ipxe driver

Robin Smidsrød robin at smidsrod.no
Sat Jun 24 15:34:35 UTC 2017

On 22.06.2017 23.08, Buddy Lumpkin wrote:
> Can someone point me at some documentation and provide any tips?

make doc should create some doxygen documentation that should be useful.

> I know my way around Linux kernel development, but I have no idea where
> to start writing an ipxe device driver.
> The NIC types I am interested in writing a driver for are the Broadcom
> 25G Netextreme C variant, like this one:
> https://www.broadcom.com/products/ethernet-connectivity/controllers/bcm57304/

You usually get hold of the datasheet for the specific chip and code the
relevant C (possibly assembly) code yourself. The intel.c, intelx.c and
realtek.c drivers are implemented in the recommended way. There is also
a skel.c file which shows the minimal framework. iPXE infrastructure is
using async programming concepts, so you need to be familiar with those.

For more details you should probably talk to Michael Brown, which is the
person that will approve your code when it's ready. He is the release
manager of iPXE.

Be aware that there is a partially complete implementation of the bnx2
driver on http://ipxe.org/gsoc/bnx2 which has never been merged because
of lack of testing and some other things. You might want to consider
using this as a base if it seems good to do so.

-- Robin

PS: I'm not a C coder, so I probably can't help you with deeply
technical implementation details.

More information about the ipxe-devel mailing list