ifconfig on re0 panics Toshiba Satellite M115-S3094 with RealTek 8101E chipset

Joe Talbott josepht at cstone.net
Mon Dec 18 09:04:24 PST 2006


On Sat, Dec 16, 2006 at 10:01:36AM +0800, Sepherosa Ziehau wrote:
> On 12/16/06, Joe Talbott <josepht at cstone.net> wrote:
> >Same again.  {vmcore,kernel}.10 are here:
> >
> >leaf.dragonflybsd.org:/home/josepht/crash/
> 
> Same location, just as previous panics.
> 
> >
> >I've put some if_printf's in the re_init function to try to narrow it
> >down but haven't managed to figure anything out yet.
> 
> System paniced when we wrote to RE_TXCFG, with (RE_TXCFG_IDG |
> RE_TXCFG_MAXDMA).  The register and the value are both valid for
> RTL8101E.  So something wrong must happened, in either:
> 1) re_stop()
> 2) IDR config
> Rest of the things before setting RE_TXCFG is all valid for RTL8101E
> 
> So I commented out IDR config in re_init() and added re_reset().  IDRs
> will be autoloaded, if card is initially powered on, and the value in
> IDRs can survive the reset command.  So let's just see whether it
> still panics:
> http://leaf.dragonflybsd.org/~sephe/re4.diff

I spent some time this weekend sprinkling if_printf's throughout
re_init() and this is the line where I am having trouble:

	CSR_WRITE_1(sc, RE_COMMAND, RE_CMD_TX_ENB|RE_CMD_RX_ENB);

By using your re2.diff and moving this line near the end of re_init()
I am able to get the interface up and functioning with out panics.  I
don't have any documentation than the datasheet publicly available
from Realtek's web page so I'm not sure why this works or if it will
work for the other chips supported by the re(4) driver.  I have a
patch here:

http://leaf.dragonflybsd.org/~josepht/re.diff

I noticed in the FreeBSD 4.7 driver that Realtek has on their web page
that they enable TX and RX much later in re_init() for the 8101E chips
though I had to wait even longer than they did to get a functioning
interface.

I tried moving the offending line to the end of re_init() in an
unpatched version of if_re.c and it no longer paniced but I couldn't
ping with the interface.

I'm more than happy to help with further testing and debugging.

Joe





More information about the Kernel mailing list