<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
</head>
<body text="#000000" bgcolor="#ffffff">
<tt>Nick Couchman wrote:</tt>
<blockquote type="cite" cite="mid:4B06CA120200009900075D11@collaborate.seakr.com">
<title>Re: [gPXE] Trying to extend TG3 driver</title>
<!-- Converted from text/plain format -->
<p><tt><font size="2"></font></tt></p>
</blockquote>
<blockquote type="cite"><tt><font size="2">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?<br>
</font></tt></blockquote>
<tt>...<br>
</tt>
<blockquote type="cite" cite="mid:4B06CA120200009900075D11@collaborate.seakr.com">
<p><tt><font size="2">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.<br>
</font></tt></p>
</blockquote>
<tt><br>
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.<br>
<br>
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.<br>
<br>
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.<br>
<br>
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:<br>
<br>
Broadcom PXE -> undionly.kkpxe -- Should definitely work<br>
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<br>
<br>
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.<br>
<br>
- Shao Miller<br>
</tt>
</body>
</html>