Re: recent bge(4) changes causing problems

From: Pyun YongHyeon <pyunyh_at_gmail.com>
Date: Tue, 12 Oct 2010 13:30:07 -0700
On Tue, Oct 12, 2010 at 01:11:29PM -0700, Garrett Cooper wrote:
> On Tue, Oct 12, 2010 at 12:23 PM, Pyun YongHyeon <pyunyh_at_gmail.com> wrote:
> > On Tue, Oct 12, 2010 at 08:24:40AM -0700, Steve Kargl wrote:
> >> On Mon, Oct 11, 2010 at 05:33:29PM -0700, Pyun YongHyeon wrote:
> >> >
> >> > Thanks for the info. I still suspect r213495 might break BCM5704.
> >> > Due to lack of BCM5704 I still couldn't test it except guessing.
> >> > How about attached one?
> >>
> >> > Index: sys/dev/bge/if_bge.c
> >> > ===================================================================
> >> > --- sys/dev/bge/if_bge.c ? ?(revision 213711)
> >> > +++ sys/dev/bge/if_bge.c ? ?(working copy)
> >> > _at__at_ -1736,7 +1736,8 _at__at_
> >> > ? ? ? ? ? ? RCB_WRITE_4(sc, vrcb, bge_hostaddr.bge_addr_hi, 0);
> >> > ? ? ? ? ? ? RCB_WRITE_4(sc, vrcb, bge_hostaddr.bge_addr_lo, 0);
> >> > ? ? ? ? ? ? RCB_WRITE_4(sc, vrcb, bge_maxlen_flags,
> >> > - ? ? ? ? ? ? ? BGE_RCB_FLAG_RING_DISABLED);
> >> > + ? ? ? ? ? ? ? BGE_RCB_MAXLEN_FLAGS(sc->bge_return_ring_cnt,
> >> > + ? ? ? ? ? ? ? BGE_RCB_FLAG_RING_DISABLED));
> >> > ? ? ? ? ? ? RCB_WRITE_4(sc, vrcb, bge_nicaddr, 0);
> >> > ? ? ? ? ? ? bge_writembx(sc, BGE_MBX_RX_CONS0_LO +
> >> > ? ? ? ? ? ? ? ? (i * (sizeof(uint64_t))), 0);
> >>
> >> Unfortunately, this patch does not fix the issue.
> >>
> >> If I revert r213495 via 'svn merge -r213495:213494 .'
> >> in the sys/dev/bge directory, I can build a working
> >> kernel. ?So, I can confirm that r213495 is the source
> >> of the problem with a BCM5704 based NIC.
> >>
> >
> > Fix committed to HEAD(r213742).
> 
>     Could this be a firmware bug? A similar issue has occurred in the
> past with bce(4) where you have to upgrade the firmware and the driver
> in tandem in order for things to function properly, so maybe if the
> firmware was upgraded to the latest version (unfortunately only Linux
> methods exist I think), this issue would go away?

Not sure whether this is firmware related thing or not. Public data
sheet explicitly says that BCM5700 with external SSRAM is the only
controller that supports mini ring. So r213475 disabled mini ring
for BCM5700 only. Data sheet also says disabling mini ring for all
BCM570[0-4] controllers is optional one in its initialization.
However that was not true and all BCM570[0-4] seems to require
disabling mini ring.

> Thanks,
> -Garrett
Received on Tue Oct 12 2010 - 18:31:55 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:08 UTC