Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 6 Oct 2001 07:07:26 -0700 (PDT)
From:      Sebastiaan van Erk <sebster@sebster.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   kern/31084: xe driver device probe fails in CIS tuple scan
Message-ID:  <200110061407.f96E7Qu45549@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         31084
>Category:       kern
>Synopsis:       xe driver device probe fails in CIS tuple scan
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat Oct 06 07:10:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Sebastiaan van Erk
>Release:        4.4-STABLE
>Organization:
>Environment:
FreeBSD roo.sebster.com 4.4-STABLE FreeBSD 4.4-STABLE #41: Fri Oct  5 12:30:24 CEST 2001   root@roo.sebster.com:/usr/src/sys/compile/ROO  i386
>Description:
After upgrading from 4.3-STABLE to 4.4-STABLE on my laptop, FreeBSD
no longer recognizes my Xircom CEM56 ethernet card/modem. There were
no changes to the kernel config or pccardd config. Checking CVSWeb,
there are indeed no changes even to the files in /usr/src/sys/dev/xe.

The problem occurs in the xe_probe routine in if_xe.c. When xe_probe
scans the CIS tuples the first tuple returned is the 0xFF terminator
tuple. No real tuples are found, causing driver allocation to fail.
When using pccard dumpcis, the tuples on the card are returned, and
I get the following output:

Code 136 not found
Code 136 not found
code Unknown ignored
Code 138 not found
Code 138 not found
code Unknown ignored
Code 139 not found
Code 139 not found
code Unknown ignored
Configuration data for card in slot 0
Tuple #1, code = 0x1 (Common memory descriptor), length = 2
    000:  00 ff
        Common memory device information:
                Device number 1, type No device, WPS = OFF
                Speed = No speed, Memory block size = reserved, 32 units
Tuple #2, code = 0x17 (Attribute memory descriptor), length = 2
    000:  00 ff
        Attribute memory device information:
                Device number 1, type No device, WPS = OFF
                Speed = No speed, Memory block size = reserved, 32 units
Tuple #3, code = 0x15 (Version 1 info), length = 59
    000:  05 00 58 69 72 63 6f 6d 00 43 72 65 64 69 74 43
    010:  61 72 64 20 45 74 68 65 72 6e 65 74 20 31 30 2f
    020:  31 30 30 20 2b 20 4d 6f 64 65 6d 20 35 36 00 43
    030:  45 4d 35 36 00 31 2e 30 30 00 ff
        Version = 5.0, Manuf = [Xircom], card vers = [CreditCard Ethernet 10/100 + Modem 56]
        Addit. info = [CEM56],[1.00]
Tuple #4, code = 0x0 (Null tuple), length = 8
    000:  6a 10 f1 00 00 00 00 00
Tuple #5, code = 0x20 (Manufacturer ID), length = 5
    000:  05 01 0a 11 46
        PCMCIA ID = 0x105, OEM ID = 0x110a
Tuple #6, code = 0x44 (Card init date), length = 4
    000:  aa 8e d8 24
Tuple #7, code = 0x1a (Configuration map), length = 5
    000:  01 3f 80 ff 67
        Reg len = 2, config register addr = 0xff80, last config = 0x3f
        Registers: XXX--XX- 
Tuple #8, code = 0x1b (Configuration entry), length = 20
    000:  e7 c1 9d 0f 55 4d 5d 4e e0 17 17 ea 60 e8 02 07
    010:  f0 bc 8e 20
        Config index = 0x27(default)
        Interface byte = 0xc1 (I/O)  +RDY/-BSY active, wait signal supported
        Vcc pwr:
                Nominal operating supply voltage: 5 x 1V
                Minimum operating supply voltage: 4.5 x 1V
                Maximum operating supply voltage: 5.5 x 1V
                Continuous supply current: 4.5 x 100mA
        Wait scale Speed = 1.2 x 10 ms
        RDY/BSY scale Speed = 1.2 x 10 ms
        Card decodes 10 address lines, full 8/16 Bit I/O
                I/O address # 1: block start = 0x2e8 block length = 0x8
                IRQ modes: Level, Pulse, Shared
                IRQs:  2 3 4 5 7 9 10 11 15
        Max twin cards = 0
        Misc attr: (Power down supported)
Tuple #9, code = 0x1b (Configuration entry), length = 7
    000:  1f 08 ea 60 e8 03 07
        Config index = 0x1f
        Card decodes 10 address lines, full 8/16 Bit I/O
                I/O address # 1: block start = 0x3e8 block length = 0x8
Tuple #10, code = 0x1b (Configuration entry), length = 7
    000:  17 08 ea 60 f8 02 07
        Config index = 0x17
        Card decodes 10 address lines, full 8/16 Bit I/O
                I/O address # 1: block start = 0x2f8 block length = 0x8
Tuple #11, code = 0x1b (Configuration entry), length = 7
    000:  0f 08 ea 60 f8 03 07
        Config index = 0xf
        Card decodes 10 address lines, full 8/16 Bit I/O
                I/O address # 1: block start = 0x3f8 block length = 0x8
Tuple #12, code = 0x1b (Configuration entry), length = 3
    000:  3f 08 63
        Config index = 0x3f
        Card decodes 3 address lines, full 8/16 Bit I/O
Tuple #13, code = 0x21 (Functional ID), length = 2
    000:  02 00
        Serial port/modem
Tuple #14, code = 0x22 (Functional EXT), length = 4
    000:  00 02 0f 5c
        Serial interface extension:
                16550 UART, Parity - Space,Mark,Odd,Even
                Data bit - 7bit,8bit, Stop bit - 1bit,2bit
Tuple #15, code = 0x22 (Functional EXT), length = 12
    000:  02 06 00 3f 1c 03 03 0f 07 00 01 b5
        Data modem services available:
Tuple #16, code = 0x22 (Functional EXT), length = 8
    000:  13 06 00 0b 00 02 00 b5
        Fax1/modem services available:
Tuple #17, code = 0x21 (Functional ID), length = 2
    000:  06 00
        Network/LAN adapter
Tuple #18, code = 0x22 (Functional EXT), length = 8
    000:  04 06 00 10 a4 f1 10 6a
        Network node ID: 00 10 a4 f1 10 6a
Tuple #19, code = 0x0 (Null tuple), length = 12
    000:  39 30 30 31 48 44 46 31 31 30 36 41
Tuple #20, code = 0x0 (Null tuple), length = 4
    000:  01 00 00 00
Tuple #21, code = 0x14 (No link), length = 0
Tuple #22, code = 0xff (Terminator), length = 0
2 slots found

>How-To-Repeat:
Not sure. Only thing I know is that the ONLY change I made to the
system was an upgrade from 4.3-STABLE to 4.4-STABLE. Nothing else
changed whatsoever. Unless it is my SPECIFIC hardware configuration
which causes the problem the CEM56 card should no longer work under
4.4. Here is a dump of my dmesg to be sure:
Copyright (c) 1992-2001 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD 4.4-STABLE #41: Fri Oct  5 12:30:24 CEST 2001
    root@roo.sebster.com:/usr/src/sys/compile/ROO
Timecounter "i8254"  frequency 1193182 Hz
CPU: Pentium/P55C (quarter-micron) (233.29-MHz 586-class CPU)
  Origin = "GenuineIntel"  Id = 0x581  Stepping = 1
  Features=0x8001bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,MMX>
real memory  = 100794368 (98432K bytes)
avail memory = 94142464 (91936K bytes)
Preloaded elf kernel "kernel" at 0xc03d7000.
Intel Pentium detected, installing workaround for F00F bug
VESA: v2.0, 2048k memory, flags:0x0, mode table:0xc0361b40 (1000040)
VESA: CHIPS 6x555 Super VGA
md0: Malloc disk
Using $PIR table, 4 entries at 0xc00f8e80
apm0: <APM BIOS> on motherboard
apm: found APM BIOS v1.2, connected at v1.2
npx0: <math processor> on motherboard
npx0: INT 16 interface
pcib0: <Host to PCI bridge> on motherboard
pci0: <PCI bus> on pcib0
pci0: <Chips & Technologies 65555 SVGA controller> at 4.0
ohci0: <NEC uPD 9210 USB controller> mem 0xfcfff000-0xfcffffff irq 11 at device 11.0 on pci0
usb0: OHCI version 1.0
usb0: <NEC uPD 9210 USB controller> on ohci0
usb0: USB revision 1.0
uhub0: NEC OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
chip1: <Toshiba Fast Infra Red controller> port 0xffe0-0xffff irq 11 at device 17.0 on pci0
pci_cfgintr_virgin: using routable interrupt 3
pci_cfgintr: 0:19 INTA routed to irq 3
pcic0: <Toshiba ToPIC97 PCI-CardBus Bridge> irq 3 at device 19.0 on pci0
pcic0: PCI Memory allocated: 0x44000000
pccard0: <PC Card bus (classic)> on pcic0
pci_cfgintr_search: linked (1) to configured irq 3 at 0:19:0
pci_cfgintr: 0:19 INTB routed to irq 3
pcic1: <Toshiba ToPIC97 PCI-CardBus Bridge> irq 3 at device 19.1 on pci0
pcic1: PCI Memory allocated: 0x44001000
pccard1: <PC Card bus (classic)> on pcic1
isa0: <ISA bus> on motherboard
orm0: <Option ROM> at iomem 0xc0000-0xc97ff on isa0
fdc0: <NEC 765 or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
ata0 at port 0x1f0-0x1f7,0x3f6 irq 14 on isa0
ata1 at port 0x170-0x177,0x376 irq 15 on isa0
atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model GlidePoint, device ID 0
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
sc0: <System console> on isa0
sc0: VGA <16 virtual consoles, flags=0x200>
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A
ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
ppc0: Generic chipset (ECP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/16 bytes threshold
ppi0: <Parallel I/O> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
plip0: <PLIP network interface> on ppbus0
pcm0: <OPL3-SAx (YMF719)> at port 0x530-0x537,0x370-0x371,0xf8c-0xf94,0xe0e irq 5 drq 1 flags 0xc110 on isa0
IP Filter: v3.4.20 initialized.  Default = block all, Logging = enabled
pccard: card inserted, slot 0
pccard: card inserted, slot 0
ata1-slave: ata_command: timeout waiting for intr
ata1-slave: identify failed
ad0: 3909MB <TOSHIBA MK4006MAV> [7944/16/63] at ata0-master BIOSPIO
acd0: CDROM <CD-220EA> at ata1-master using BIOSPIO
Mounting root from ufs:/dev/ad0s2a
xe0: xe: Probing
xe0: Set RES flags
xe0: Grep through CIS
xe0: Got type: 255
xe0: Done checking CIS

This is with XE_DEBUG defined as 1000, and several extra debug messages
added by me. As you can see, the only CIS tuple it finds is type 255,
the terminator.

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200110061407.f96E7Qu45549>