[gPXE] Trying to extend TG3 driver
Shao Miller
Shao.Miller at yrdsb.edu.on.ca
Mon Nov 23 08:59:32 EST 2009
Nick Couchman wrote:
>
> Also, on a related topic, the network card appears to be UNDI-capable,
> but the undi and undionly drivers do not work correctly. How can
> these drivers be extended to support this Broadcom chipset, or does
> that rely on the tg3 driver having support, first?
...
>
> Will give it a shot. I'd really like to flash the Broadcom PXE code
> with gPXE on these Optiplex units, so building in support I think is
> the only thing that will really work in the long run.
>
Just to clarify: UNDI is typically when a BIOS module (for
LAN-On-Motherboard NICs) or a NIC's ROM's code provides a NIC driver via
a standard API. If your NIC currently has PXE code on its ROM, then
gPXE's UNDI driver should be able to use it. Regardless of whether or
not gPXE uses the UNDI driver, gPXE itself then provides an UNDI
interface to further booted items.
For example, suppose you boot using the NIC's vendor-provided PXE stack
and chain-load undionly.kkpxe, then chain-load PXELINUX. In this
instance, gPXE uses the vendor-provided UNDI internally, but PXELINUX
uses the UNDI provided by gPXE.
Now suppose you do a fine job of porting the tg3 driver to the gPXE API,
then flash gPXE into your NIC's ROM. Then suppose you boot PXELINUX via
gPXE. In this instance, PXELINUX would use the UNDI provided by gPXE
(as in the last example), and gPXE would be using your driver internally.
If you are suggesting that there is an UNDI scenario that you've tried
which is not working, it would be great if you could pass along the
details here. For example, some folks are not aware that gPXE's UNDI
driver cannot always find and use the NIC vendor-provided UNDI unless
gPXE is directly chain-loaded by that PXE stack. As in:
Broadcom PXE -> undionly.kkpxe -- Should definitely work
Floppy disk with SYSLINUX -> undionly.lkrn -- Doesn't necessarily work,
since the PXE stack might not be available as it was not used to boot from
As far building in UNDI support goes, that's already done with gPXE.
All you need is the driver for the NIC and gPXE provides UNDI; nothing
to code, there.
- Shao Miller
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://etherboot.org/pipermail/gpxe/attachments/20091123/3d60764b/attachment.html
More information about the gPXE
mailing list