summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/pci/if_rl.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/pci/if_rl.c b/sys/pci/if_rl.c
index 2657ddff57a6..7fb1415a3010 100644
--- a/sys/pci/if_rl.c
+++ b/sys/pci/if_rl.c
@@ -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);