[gPXE-devel] [PATCH][forcedeth] Replace forcedeth driver with native gPXE driver
Stefan Hajnoczi
stefanha at gmail.com
Tue Jul 20 03:58:17 EDT 2010
On Sun, Jul 18, 2010 at 3:19 PM, Andrei Faur <da3drus at gmail.com> wrote:
> This patch adds a native gPXE forcedeth driver and removes the legacy
> Etherboot forcedeth driver. It supports 40 different chips, compared
> to the original 14.
>
> It has been tested on a NIC with an CK804 Ethernet Controller, and
> the results of downloading 5 100mb images in a row have been: 13/12/12/12/12
> seconds; booting DSL using pxelinux also succeeded. The driver has also
> been tested by chaining undionly.kpxe and it worked. It is approx ~1s
> slower on average than the legacy driver because of additional code
> to check for link state and because the legacy driver did not wait for
> packets to finish sending making it faster than it should have been.
>
> Signed-off-by: Andrei Faur <da3drus at gmail.com>
> ---
Hi Andrei,
Thanks for your work on this driver. Here's what I have so far:
forcedeth_get_desc_version:
I wonder if all cards support DESC_VER_1? That would simplify things
since gPXE doesn't need jumbo frames or 40-bit addressing.
nv_alloc_rx:
wmb() missing before setting flaglen = RX_BUF_SZ | NV_RX_AVAIL in
!nv_optimized() case.
forcedeth_remove:
unregister_netdev() will call .close() if the device isn't closed yet.
Hardware cleanup code (nv_restore_phy, ...) needs to be after
unregister_netdev() so .close() is never executed after the part of
the hardware has been shut down and the mmio registers have been
unmapped.
Stefan
More information about the gPXE-devel
mailing list