I'm setting up a system (200MHz) with 4.2-RELEASE, and the network card that
I have to go in it is a D-Link DFE-538TX/R PCI card, based on the RealTek
8139 chipset. I've been having all kinds of trouble getting it to work.
The card works fine in a Win98 system, and the provided diagnostic tools
report no problems. Sorry for the long message, but I'm trying to make sure
that I have all the common questions answered. Here's what I've tried so
far.
I have if_rl_load="YES" in /boot/loader.conf
Both enabled and disabled PnP OS support in the BIOS
Both enabled and disabled WakeOnLan support in the card
Moved the network card to different slots, including swapping order
with the video card (these are the only boards in the system)
Rebuilt the kernel to make sure rl support was enabled
None of these provide any real change during the boot, which is that the
device is not recognized, so when I try to ifconfig rl0 (or rl1), the
interface does not exist.
All possibly relevant output from boot -v:
pcibios: PCI BIOS entry at 0x4b0
pnpbios: Found PnP BIOS data at 0xc00fca80
pnpbios: Entry = f0000:cab0 Rev = 1.0
pnpbios: OEM ID cd041
...
Preloaded elf module "if_rl.ko" at 0xc04600f8.
Preloaded elf module "miibus.ko" at 0xc0460198.
...
pci_open(1): mode 1 addr port (0x0cf8) is 0x8000005c
pci_open(1a): mode1res=0x80000000 (0x80000000)
pci_cfgcheck: device 0 [class=060000] [hdr=00] is there (id=70308086)
...
pci_open(1): mode 1 addr port (0x0cf8) is 0x00000000
pci_open(1a): mode1res=0x80000000 (0x80000000)
pci_cfgcheck: device 0 [class=060000] [hdr=00] is there (id=70308086)
pcib0: <Host to PCI bridge> on motherboard
found-> vendor=0x8086, dev=0x7030, revid=0x02
class=06-00-00, hdrtype=0x00, mfdev=0
subordinatebus=0 secondarybus=0
found-> vendor=0x8086, dev=0x7000, revid=0x01
class=06-01-00, hdrtype=0x00, mfdev=1
subordinatebus=0 secondarybus=0
found-> vendor=0x8086, dev=0x7010, revid=0x00
class=01-01-80, hdrtype=0x00, mfdev=0
subordinatebus=0 secondarybus=0
map[20]: type 1, range 32, base 0000e800, size 4
found-> vendor=0x1002, dev=0x4754, revid=0x48
class=03-00-00, hdrtype=0x00, mfdev=0
subordinatebus=0 secondarybus=0
intpin=a, irq=10
map[10]: type 1, range 32, base e6000000, size 24
map[14]: type 1, range 32, base 0000e000, size 8
found-> vendor=0x1186, dev=0x1300, revid=0x10
class=02-00-00, hdrtype=0x00, mfdev=0
subordinatebus=0 secondarybus=0
intpin=a, irq=11
map[10]: type 1, range 32, base 0000d800, size 8
map[14]: type 1, range 32, base e5800000, size 8
pci0: <PCI bus> on pcib0
PCI Concurrency: enabled
Cache: 512K pipelined-burst secondary; L1 enabled
DRAM: no memory hole, 66 MHz refresh
Read burst timing: x-3-3-3/x-4-4-4
Write burst timing: x-3-3-3
RAS-CAS delay: 3 clocks
isab0: <Intel 82371SB PCI to ISA bridge> at device 7.0 on pci0
I/O Recovery Timing: 8-bit 3.5 clocks, 16-bit 3.5 clocks
Extended BIOS: disabled
Lower BIOS: disabled
Coprocessor IRQ13: enabled
Mouse IRQ12: disabled
Interrupt Routing: A: disabled, B: IRQ11, C: disabled, D: IRQ10
MB0: IRQ15, MB1:
isa0: <ISA bus> on isab0
atapci0: <Intel PIIX3 ATA controller> port 0xe800-0xe80f at device 7.1 on
pci0
...
pci0: <ATI Mach64-GT graphics accelerator> (vendor=0x1002, dev=0x4754) at
9.0 irq 10
pci0: <unknown card> (vendor=0x1186, dev=0x1300) at 11.0 irq 11
I know the unknown card here is the network card, since the vendor ID
matches the one shown by the BIOS as "network controller" during system
boot. There are no other devices conflicting with IRQ 10 or 11. Here's
what pciconf -l has to say:
chip0@pci0:0:0: class=0x060000 card=0x00000000 chip=0x70308086 rev=0x02
hdr=0x00
isab0@pci0:7:0: class=0x060100 card=0x00000000 chip=0x70008086 rev=0x01
hdr=0x00
atapci0@pci0:7:1: class=0x010180 card=0x00000000 chip=0x70108086
rev=0x00 hdr=0x00
none0@pci0:9:0: class=0x030000 card=0x47541002 chip=0x47541002 rev=0x48
hdr=0x00
none1@pci0:11:0: class=0x020000 card=0x13001186 chip=0x13001186
rev=0x10 hdr=0x00
Poring through the mailing list archives, I came across someone who posted a
patch for a bug in /sys/pci/if_rl.c. It didn't help me, but while I was in
there I noticed that there were other cards specified, but not mine. I
checked on freebsd.org in the STABLE sources tree, but the last modification
to the two files I was looking at was in 1999, so clearly nobody has done
any official work in there in quite some time. I added the appropriate
defines and extended the array of cards defined in if_rlreg.h, updated
if_rl.c to match, and rebuilt the kernel. This now recognizes the card
during the boot sequence, but then crashes like so:
Doing initial network setup: hostname.
Fatal trap 12: page fault in kernel mode
fault virtual address = 0x0
fault code = supervisor read, page not present
instruction pointer = 0x8:0xc0458007
stack pointer = 0x10:0xc4110d1c
frame pointer = 0x10:0xc4110d28
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, def32 1, gran 1
processor eflags = interrupt enabled, resume, IOPL = 0
current process = 53 (ifconfig)
interrupt mask = net tty
trap number = 12
panic: page fault
I'm hoping that someone has an idea, something for me to try, whatever. I'm
a programmer, and I've worked with FreeBSD for several years, so I don't
mind getting down and dirty, but I haven't talked directly to hardware in
quite a while, and I've never written a device driver or done kernel work,
so I'm pretty much at a loss as to how to proceed right now. Any help most
appreciated.
Greg Schmidt (writing from [EMAIL PROTECTED] until this is working)
_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message