Re: BCM4401 driver

From: Duncan Barclay (dmlb_at_dmlb.org)
Date: 07/29/03

  • Next message: Terry Lambert: "Re: Console serial speed"
    To: "Bruce Cran" <bruce@cran.org.uk>, <freebsd-hackers@freebsd.org>
    Date: Tue, 29 Jul 2003 01:20:50 +0100
    
    

    Hello Bruce,

    From: "Bruce Cran" <bruce@cran.org.uk>

    > I realise that there's a 'beta' FreeBSD driver out for this card, and I've
    > been attempting to learn the kernel interfaces such as bus_dma and mbuf
    > handling to debug it, but without much success. On my Dell, it seems to
    > mostly work if I set the number of RX descriptors very low, around 5, but
    at
    > the default of 200 the network stalls with invalid packets. Running a
    > tcpdump on the interface shows that, with 5 descriptors, there's an
    occasional
    > bad packet, but it doesn't stop any network access working. With 200, I
    get
    > loads of bad packets, where tcpdump shows the mac addresses (the ethernet
    > header I guess) quite a few bytes
    > into the packet. I recently ran the system with the driver preloaded,
    and
    > after a while it locked the system up, spamming me with 'bcm0: discarding
    frame
    > w/o ethernet header (len 4294967296 pktlen 4294967296)'. It looks as
    though
    > there's either a problem with where the chip is putting the data, or
    > something's wrong with the mbuf handling, but which only gets triggered
    after
    > a while. Does anyone know enough about
    > network drivers to know what the problem might be?
    > It would be great to have this card supported, and it seems that the
    driver
    > is very near to being working, it just needs a bit more debugging work
    > done on it.

    Firstly, an apology. I released the beta driver at the end of june just
    before I went on holiday. Since I got back I've been maxed out at $REALJOB
    and been too tired in the evenings to do any hacking on the driver - because
    of the stuff (chip layout) I'm doing at work, the last thing I want to do is
    sit in front of another monitor! This situation will continue for another
    week or two.

    Your report above tallies with my experiences and those of others on a few
    platforms. Although you have spotted a few more bits and pieces. I hadn't
    noticed the misaligned MAC addresses on bad packets. I think that the driver
    might be programming the chip very slightly incorrectly. Either there is a
    requirement for the chip to see some sort of alignment on the RX buffers or
    I've got something wrong in handling the extra header that the chip prepends
    to the packets, or I've simply got mbuf alignment requirements wrong.
    Sometimes, I see symptoms of kernel memory being trashed - odd sig 11's etc.
    It is possible that the chip is spamming memory where it shouldn't.

    FYI, I used two Linux drivers for reference. One from Broadcom (called
    bcm4400) and one from Redhat, (called b44 I think). I haven't managed to get
    any docs from Broadcom, so have had to work blind, and
    may well have something wrong.

    Thanks for the feedback and once again apologies for being tardy in tracking
    this bug down.

    Duncan

    _______________________________________________
    freebsd-hackers@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
    To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"


  • Next message: Terry Lambert: "Re: Console serial speed"

    Relevant Pages

    • BCM4401 driver
      ... I realise that there's a 'beta' FreeBSD driver out for this card, ... handling to debug it, but without much success. ... the default of 200 the network stalls with invalid packets. ... something's wrong with the mbuf handling, but which only gets triggered after ...
      (freebsd-hackers)
    • Re: Ethernet Chip Suggestion
      ... Most Ethernet controller can receive small packets. ... write our own mac lever driver for the chip can configure it to do that. ...
      (comp.arch.embedded)
    • Re: Re: HARDWARE: Open-Source-Friendly Graphics Cards -- Viable?]
      ... Some of them do dominate a market. ... implementing a specific grafics standard. ... grafic chips just need a driver - but they ... spent tons of research on the chip development as well, ...
      (Linux-Kernel)
    • Re: Filter Hook
      ... the callback routine is been invoked at DISPATCH_LEVEL. ... If you really have to keep such a queue for the packets, then the IP filter driver is not suitable for your needs since you have to process all the packets in the callback routine without any wait actionand return it to the tcpip driver immediately when the callback routine returns. ... What IRQL are you running at when you crash, ...
      (microsoft.public.development.device.drivers)
    • Re: [PATCH 3/3] wm97xx-core: Support use as a wakeup source
      ... the features of the driver depend on exactly how the chip is connected ... It's probably worth pointing out here that this part of the WM97xx ... the suspend_mode configuration to know how to wake. ...
      (Linux-Kernel)