Print a warning when we detect a Realtek 8139B chip

(identified by the IO map being 256 bytes long instead of 128)

This chip works very unreliably on my Lanner embedded PC with the rl driver.
Lots of watchdog timeouts or poor performance.

Forcing the media type to 10 Meg (ifconfig rl0 media 10baseT/UTP) is a good
workaround.

This looks very similar to the problem reported in PR kern/18790

It is interesting to note that the linux driver has lots of special
case code for this chip.
This commit is contained in:
Roger Hardiman 2000-11-24 17:36:07 +00:00
parent 9dd471dfa5
commit 0eaa901ba7

View File

@ -863,6 +863,16 @@ static int rl_attach(dev)
goto fail;
}
/* Detect the Realtek 8139B. For some reason, this chip is very
* unstable when left to autoselect the media
* The best workaround is to set the device to the required
* media type or to set it to the 10 Meg speed.
*/
if ((rman_get_end(sc->rl_res)-rman_get_start(sc->rl_res))==0xff) {
printf("rl%d: Realtek 8139B detected. Warning, this may be unstable in autoselect mode\n", unit);
}
sc->rl_btag = rman_get_bustag(sc->rl_res);
sc->rl_bhandle = rman_get_bushandle(sc->rl_res);