bge(4) on BCM 5752 A02 panic due to media autoselect

Pyun YongHyeon pyunyh at gmail.com
Thu Aug 31 10:24:09 UTC 2006


On Thu, Aug 31, 2006 at 04:16:49PM +0800, LI Xin wrote:
 > Pyun YongHyeon wrote:
 > > On Thu, Aug 31, 2006 at 11:24:55AM +0800, LI Xin wrote:
 > >  > David Christensen wrote:
 > >  > >> Recently one of my colleagues found that BCM 5752 A02 on Dell Latitude
 > >  > >> D820 would get "panic: invalid ife->ifm_data (0xa) in 
 > >  > >> mii_phy_setmedia".
 > >  > >>  After some investigation I have found that removing BCMR_ANEG from
 > >  > >> mii_capabilities in ukphy.c would work around the problem, 
 > >  > >> and it turns
 > >  > >> out that without explicitly specifying media type, the code 
 > >  > >> will finally
 > >  > >> get to pass the "intentionally invalid index" to mii_phy_setmedia and
 > >  > >> trigger an assertion fail.
 > >  > >>
 > >  > >> I have not tested the situation in -STABLE yet, but it was 
 > >  > >> said to work
 > >  > >> there, though.  Is there anyone can shed some light to me about how to
 > >  > >> debug the issue?  Thanks in advance!
 > >  > >>
 > >  > >> PS. During the debugging I have found that the attached patch can make
 > >  > >> "bge0: firmware handshake timeout" issue disappear from the said chip.
 > >  > >> Because I do not have Broadcom specification at hand I would 
 > >  > >> like to see
 > >  > >> if there is someone to give appropriate review for it.
 > >  > > 
 > >  > > Try the attached patch instead and let me know if it works.  When
 > >  > > FastBoot
 > >  > > is enabled on supported Broadcom controllers it allows the controller to
 > >  > > skip rereading firmware after a reset, allowing the driver to complete 
 > >  > > its initialization more quickly.  The Linux driver specifically disables
 > >  > > FastBoot because it performs some read/write tests to controller memory,
 > >  > > potentially corrupting the firmware, so FastBoot is disabled to insure
 > >  > > an
 > >  > > error free firmware reload.  We don't do the same test so the same
 > >  > > change
 > >  > > isn't necessary.  The patch happens to work because the bge driver
 > >  > > doesn't
 > >  > > perform firmware synchronization correctly, and the firmware initializes
 > >  > > too fast for the driver.
 > >  > 
 > >  > Thank you for the patch.  I have just tested the patch under
 > >  > FreeBSD/i386 -CURRENT and the I can confirm that the firmware timeout
 > >  > goes away.  Will you please commit it?
 > >  > 
 > >  > (Note that the panic still persists, I will try to get brgphy attach to
 > >  > see if things changes).
 > >  > 
 > > 
 > > It would be great if you can test the brgphy patch. I'll commit the
 > > patch if it work on your box.
 > 
 > Sure, I would be more than happy to do that.  Which brgphy patch do you
 > want me to test?  (I have patched brgphy.c and miidevs to make BCM5752
 > to attach as brgphy and it resolved the panic, but I am not quite sure
 > if that is what you want, though)
 > 

That's exactly the same patch I've made for stable.
(You've already patched it to work on CURRENT.)

-- 
Regards,
Pyun YongHyeon


More information about the freebsd-current mailing list