<!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.&nbsp; 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.&nbsp; 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.&nbsp; If your NIC currently has PXE code on its ROM,
then gPXE's UNDI driver should be able to use it.&nbsp; 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.&nbsp; 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.&nbsp; Then suppose you boot
PXELINUX via gPXE.&nbsp; 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.&nbsp; 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.&nbsp; As in:<br>
<br>
Broadcom PXE -&gt; undionly.kkpxe -- Should definitely work<br>
Floppy disk with SYSLINUX -&gt; 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.&nbsp;
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>