8139 driver question
Matt Renzelmann
mjr at cs.wisc.edu
Thu Feb 2 15:10:33 UTC 2012
Hello,
This will seem a bit off the wall, but I just noticed a discrepancy between the
registers defined in the pci/if_rlreg.h directory and those specified on the
RealTek datasheets for the antique RealTek 8139.
In particular, as defined in the header, the registers in question are:
#define RL_CFG0 0x0051 /* config register #0 */
#define RL_CFG1 0x0052 /* config register #1 */
#define RL_CFG2 0x0053 /* config register #2 */
#define RL_CFG3 0x0054 /* config register #3 */
#define RL_CFG4 0x0055 /* config register #4 */
#define RL_CFG5 0x0056 /* config register #5 */
The RealTek data sheets for the 8139, however, all indicate that these should be
set to something like this:
#define RL_CFG0 0x0051 /* config register #0 */
#define RL_CFG1 0x0052 /* config register #1 */
// No Config2
#define RL_CFG3 0x0059 /* config register #3 */
#define RL_CFG4 0x005A /* config register #4 */
#define RL_CFG5 0x00D8 /* config register #5 */
The datasheets I'm referencing are available here:
http://realtek.info/pdf/
Specifically:
http://realtek.info/pdf/rtl8139d.pdf
http://realtek.info/pdf/rtl8139cp.pdf
I believe the registers currently used apply to the 8169, but not necessarily
the 8139 family -- can someone, hopefully easily, verify that the 8139 driver is
using the right registers? The 8139 series may need the slightly different
values used above to enable functionality like wake-on-lan.
Thanks and regards,
Matt
More information about the freebsd-net
mailing list