Subject: Re: no cardbus cards detected with -current on Thinkpad 600E
To: None <port-i386@netbsd.org>
From: Greg Troxel <gdt@ir.bbn.com>
List: port-i386
Date: 11/04/2003 20:12:22
I turned on all the PCIBIOS FIXUP/VERBOSE defines, and also
PCMCIA{CIS,}DEBUG. There are some 'vcc request' problems, and
1) wi (pcmcia) still gets no response
2) cardbus cards are recognized (or not, depending on drivers), but
initialization fails, with 'bad Vcc' messages.
I found a manual from Sycard Technology:
http://www.sycard.com/aftp/man460f.pdf
On page 29 (Appendix C1) it discusses some odd power control behavior
of TI PCI12xx chips:
Texas Instrument's latest series of socket controllers supports a
serial controlled voltage switch to control the Vcc and Vpp to the PC
Card socket. Three signal lines, DATA, CLOCK and LATCH are used to
control the outputs of the voltage switch. On TI s PCI12xx/14xx/44xx
demo boards, the CLOCK is configured as an output from the socket
controller. However, in some implementations the CLOCK signal is
externally generated and is an input to the PCI12xx socket
controller. A control bit in PCI configuration space address 80H
called P2CCLK (Bit 27) enables the voltage switch clock output (CLOCK)
from the CardBus controller chip. CLOCK is derived from the PCI
clock. In the original PCCtest software, this bit was set to enable
CLOCK as an output. This was required for the PCI12xx/14xx demo
boards. Designs that have an externally generated CLOCK will see two
sources driving the CLOCK signal when running the PCCtest software.
I found a linux patch that seems to fit this theory:
http://pcmcia-cs.sourceforge.net/cgi-bin/HyperNews/get/pcmcia/install/12/1.html?nogifs
and the man page for using a variable to control clock setting:
http://pcmcia-cs.sourceforge.net/man/i82365.4.html
Does anyone have a PCI12xx-based laptop that works with cardbus?
Does it seem plausible that the IBM 600E needs the P2CCLK bit turned
on to work?
Complete 'boot -v' dmesg of kernel with all the debug/verbose options,
annotated with what cards I inserted, followed by pcictl dump of the
bridge.
NetBSD 1.6ZE (ANCHO) #4: Tue Nov 4 18:58:33 EST 2003
gdt@ancho.ir.bbn.com:/usr/src/sys/arch/i386/compile/ANCHO
total memory = 191 MB
avail memory = 173 MB
using 2475 buffers containing 9900 KB of memory
BIOS32 rev. 0 found at 0xfd820
PCI BIOS rev. 2.1 found at 0xfd880
pcibios: config mechanism [1][x], special cycles [1][x], last bus 7
PCI IRQ Routing Table rev. 1.0 found at 0xf9e20, size 112 bytes (5 entries)
PCI Interrupt Router at 000:07:0
PCI Exclusive IRQs: 11
PIR Entry 0:
Bus: 0 Device: 7
INTA: link 0x60 bitmap 0xdef8
INTB: link 0x00 bitmap 0x0000
INTC: link 0x00 bitmap 0x0000
INTD: link 0x63 bitmap 0xdef8
PIR Entry 1:
Bus: 0 Device: 2
INTA: link 0x60 bitmap 0xdef8
INTB: link 0x61 bitmap 0xdef8
INTC: link 0x00 bitmap 0x0000
INTD: link 0x00 bitmap 0x0000
PIR Entry 2:
Bus: 1 Device: 0
INTA: link 0x60 bitmap 0xdef8
INTB: link 0x00 bitmap 0x0000
INTC: link 0x00 bitmap 0x0000
INTD: link 0x00 bitmap 0x0000
PIR Entry 3:
Bus: 0 Device: 4
INTA: link 0x60 bitmap 0xdef8
INTB: link 0x61 bitmap 0xdef8
INTC: link 0x62 bitmap 0xdef8
INTD: link 0x63 bitmap 0xdef8
PIR Entry 4:
Bus: 0 Device: 6
INTA: link 0x60 bitmap 0xdef8
INTB: link 0x00 bitmap 0x0000
INTC: link 0x00 bitmap 0x0000
INTD: link 0x00 bitmap 0x0000
pciintr_link_fixup: PIRQ 0x00 already connected to IRQ 11
pciintr_link_fixup: PIRQ 0x03 already connected to IRQ 11
pciintr_link_fixup: PIRQ 0x01 already connected to IRQ 11
pciintr_link_fixup: PIRQ 0x02 not connected
pciintr_link_fixup (stage 2): assigning IRQ 11 to PIRQ 0x02
pciintr_link_route: route of PIRQ 0x00 -> IRQ 11 preserved BIOS setting
pciintr_link_route: route of PIRQ 0x03 -> IRQ 11 preserved BIOS setting
pciintr_link_route: route of PIRQ 0x01 -> IRQ 11 preserved BIOS setting
------------------------------------------
device vendor product pin PIRQ IRQ stage
------------------------------------------
000:02:0 0x104c 0xac1d A 0x00 11 0 already assigned
000:02:1 0x104c 0xac1d B 0x01 11 0 already assigned
000:06:0 0x1013 0x6001 A 0x00 11 0 already assigned
000:07:2 0x8086 0x7112 D 0x03 11 0 already assigned
001:00:0 0x10c8 0x0005 A 0x00 11 0 already assigned
------------------------------------------
PCI fixup examining 8086:7190
PCI fixup examining 8086:7191
PCI fixup examining 10c8:05
PCI bridge 0: primary 0, secondary 1, subordinate 1
PCI fixup examining 104c:ac1d
PCI bridge 1: primary 0, secondary 2, subordinate 2
PCI fixup examining 104c:ac1d
PCI bridge 2: primary 0, secondary 3, subordinate 3
PCI fixup examining 1013:6001
PCI fixup examining 8086:7110
PCI fixup examining 8086:7111
PCI fixup examining 8086:7112
PCI fixup examining 8086:7113
PCI bus #3 is the last bus
[System BIOS Setting]-----------------------
device vendor product
register space address size
--------------------------------------------
000:00:0 0x8086 0x7190
10h mem 0x40000000 0x04000000
[OK]
000:01:0 0x8086 0x7191
[OK]
000:02:0 0x104c 0xac1d
10h mem 0x50102000 0x00001000
[OK]
000:02:1 0x104c 0xac1d
10h mem 0x50101000 0x00001000
[OK]
000:06:0 0x1013 0x6001
10h mem 0x50100000 0x00001000
14h mem 0x50000000 0x00100000
[OK]
000:07:0 0x8086 0x7110
[OK]
000:07:1 0x8086 0x7111
20h port 0x0000fcf0 0x00000010
[OK]
000:07:2 0x8086 0x7112
20h port 0x00008400 0x00000020
[OK]
000:07:3 0x8086 0x7113
[OK]
001:00:0 0x10c8 0x0005
10h mem 0xe0000000 0x01000000
14h mem 0x70000000 0x00400000
18h mem 0x70400000 0x00100000
[OK]
--------------------------[ 0 devices bogus]
Physical memory end: 0x0bfcc000
PCI memory mapped I/O space start: 0x0c000000
mainbus0 (root)
cpu0 at mainbus0: (uniprocessor)
cpu0: Intel Mobile Pentium II (686-class), 363.98 MHz, id 0x66a
cpu0: features 183f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR>
cpu0: features 183f9ff<PGE,MCA,CMOV,PAT,PSE36,MMX>
cpu0: features 183f9ff<FXSR>
cpu0: I-cache 16 KB 32b/line 4-way, D-cache 16 KB 32b/line 4-way
cpu0: L2 cache 256 KB 32b/line 4-way
cpu0: ITLB 32 4 KB entries 4-way, 2 4 MB entries fully associative
cpu0: DTLB 64 4 KB entries 4-way, 8 4 MB entries 4-way
cpu0: 16 page colors
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
pchb0 at pci0 dev 0 function 0
pchb0: Intel 82443BX Host Bridge/Controller (rev. 0x03)
agp0 at pchb0: aperture at 0x40000000, size 0x4000000
ppb0 at pci0 dev 1 function 0: Intel 82443BX AGP Interface (rev. 0x03)
pci1 at ppb0 bus 1
pci1: i/o space, memory space enabled
vga1 at pci1 dev 0 function 0: Neomagic MagicMedia 256AV VGA (rev. 0x20)
wsdisplay0 at vga1 kbdmux 1: console (80x25, vt100 emulation)
wsmux1: connecting to wsdisplay0
cbb0 at pci0 dev 2 function 0: Texas Instruments PCI1251 PCI-CardBus Bridge (rev. 0x00)
cbb1 at pci0 dev 2 function 1: Texas Instruments PCI1251 PCI-CardBus Bridge (rev. 0x00)
Cirrus Logic CS4610 SoundFusion Audio Accelerator (audio multimedia, revision 0x01) at pci0 dev 6 function 0 not configured
pcib0 at pci0 dev 7 function 0
pcib0: Intel 82371AB PCI-to-ISA Bridge (PIIX4) (rev. 0x02)
pciide0 at pci0 dev 7 function 1
pciide0: Intel 82371AB IDE controller (PIIX4) (rev. 0x01)
pciide0: bus-master DMA support present, but unused (no driver support)
pciide0: primary channel wired to compatibility mode
pciide0: primary channel interrupting at irq 14
atabus0 at pciide0 channel 0
pciide0: secondary channel wired to compatibility mode
pciide0: secondary channel interrupting at irq 15
atabus1 at pciide0 channel 1
pciide0: secondary channel ignored (not responding; disabled or no drives?)
uhci0 at pci0 dev 7 function 2: Intel 82371AB USB Host Controller (PIIX4) (rev. 0x01)
uhci0: interrupting at irq 11
usb0 at uhci0: USB revision 1.0
uhub0 at usb0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
Intel 82371AB Power Management Controller (PIIX4) (miscellaneous bridge, revision 0x02) at pci0 dev 7 function 3 not configured
cbb0: bad Vcc request. sock_ctrl 0x0, sock_status 0x30000386
cbb0: interrupting at irq 11
cbb0: cacheline 0x8 lattimer 0xb0
cbb0: bhlc 0x82a808 lscp 0xb0020200
cardslot0 at cbb0 slot 0 flags 0
cardbus0 at cardslot0: bus 2 device 0 cacheline 0x8, lattimer 0xb0
pcmcia0 at cardslot0
cbb1: interrupting at irq 11
cbb1: cacheline 0x8 lattimer 0xb0
cbb1: bhlc 0x82a808 lscp 0xb0030300
cardslot1 at cbb1 slot 1 flags 0
cardbus1 at cardslot1: bus 3 device 0 cacheline 0x8, lattimer 0xb0
pcmcia1 at cardslot1
isa0 at pcib0
com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
pckbc0 at isa0 port 0x60-0x64
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pms0 at pckbc0 (aux slot)
pckbc0: using irq 12 for aux slot
wsmouse0 at pms0 mux 0
lpt2 at isa0 port 0x3bc-0x3bf irq : polled
sb0 at isa0 port 0x220-0x237 irq 5 drq 1: dsp v3.02
audio0 at sb0: half duplex, mmap, independent
opl at sb0 not configured
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
sysbeep0 at pcppi0
isapnp0 at isa0 port 0x279: ISA Plug 'n Play device support
npx0 at isa0 port 0xf0-0xff: using exception 16
fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
isapnp0: no ISA Plug 'n Play devices found
apm0 at mainbus0: Power Management spec V1.2
Kernelized RAIDframe activated
IPsec: Initialized Security Association Processing.
wd0 at atabus0 drive 0: <IBM-DJSA-230>
wd0: drive supports 16-sector PIO transfers, LBA addressing
wd0: 28615 MB, 58140 cyl, 16 head, 63 sec, 512 bytes/sect x 58605120 sectors
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 4 (Ultra/66)
boot device: wd0
root on wd0a dumps on wd0b
root file system type: ffs
IP Filter: v3.4.29 initialized. Default = pass all, Logging = enabled
wsdisplay0: screen 1 added (80x25, vt100 emulation)
wsdisplay0: screen 2 added (80x25, vt100 emulation)
wsdisplay0: screen 3 added (80x25, vt100 emulation)
wsdisplay0: screen 4 added (80x25, vt100 emulation)
[DLINK DWL-650 FCC ID KA22002060009-1]
cbb0: bad Vcc request. sock_ctrl 0x0, sock_status 0x30000710
cbb0: bad Vcc request. sock_ctrl 0x22, sock_status 0x30000710
cbb0: bad Vcc request. sock_ctrl 0x0, sock_status 0x30000710
cbb0: bad Vcc request. sock_ctrl 0x0, sock_status 0x30000710
cbb0: bad Vcc request. sock_ctrl 0x30, sock_status 0x30000b20
(manufacturer 0x0, product 0x0) Realtek Semiconductor product 0x8180 (ethernet network, revision 0x20) at cardbus0 dev 0 function 0 not configured
cbb0: bad Vcc request. sock_ctrl 0x0, sock_status 0x30000b68
[Dlink DWL-AG650]
cbb0: bad Vcc request. sock_ctrl 0x30, sock_status 0x30000b20
ath0 at cardbus0 dev 0 function 0ath0: waking up from power state D-973062144
ath_hal_wait: timeout on reg 0x4000: 0xf000f902 & 0x00000003 != 0x00000003
ath0: unable to attach hardware; HAL status 3
cbb0: bad Vcc request. sock_ctrl 0x0, sock_status 0x30000b69
ath0 detached
cbb0: bad Vcc request. sock_ctrl 0x0, sock_status 0x30000326
[Proxim 8480-WD]
cbb0: bad Vcc request. sock_ctrl 0x30, sock_status 0x30000b20
ath0 at cardbus0 dev 0 function 0ath0: waking up from power state D-973062144
ath_hal_wait: timeout on reg 0x4000: 0xf000f902 & 0x00000003 != 0x00000003
ath0: unable to attach hardware; HAL status 3
cbb0: bad Vcc request. sock_ctrl 0x0, sock_status 0x30000b69
ath0 detached
cbb0: bad Vcc request. sock_ctrl 0x0, sock_status 0x30000326
[Netgear WAG511]
cbb0: bad Vcc request. sock_ctrl 0x30, sock_status 0x30000b20
ath0 at cardbus0 dev 0 function 0ath0: waking up from power state D-973062144
ath_hal_wait: timeout on reg 0x4000: 0xf000f902 & 0x00000003 != 0x00000003
ath0: unable to attach hardware; HAL status 3
cbb0: bad Vcc request. sock_ctrl 0x0, sock_status 0x30000b69
ath0 detached
cbb0: bad Vcc request. sock_ctrl 0x0, sock_status 0x30000326
cbb0: bad Vcc request. sock_ctrl 0x30, sock_status 0x30000b20
[Linksys WPC55AG]
ath0 at cardbus0 dev 0 function 0ath0: waking up from power state D-973062144
ath_hal_wait: timeout on reg 0x4000: 0xf000f902 & 0x00000003 != 0x00000003
ath0: unable to attach hardware; HAL status 3
cbb0: bad Vcc request. sock_ctrl 0x0, sock_status 0x30000b69
ath0 detached
cbb0: bad Vcc request. sock_ctrl 0x0, sock_status 0x30000326
PCI configuration registers:
Common header:
0x00: 0xac1d104c 0x02100007 0x06070000 0x0082a808
Vendor Name: Texas Instruments (0x104c)
Device Name: PCI1251 PCI-CardBus Bridge (0xac1d)
Command register: 0x0007
I/O space accesses: on
Memory space accesses: on
Bus mastering: on
Special cycles: off
MWI transactions: off
Palette snooping: off
Parity error checking: off
Address/data stepping: off
System error (SERR): off
Fast back-to-back transactions: off
Status register: 0x0210
Capability List support: on
66 MHz capable: off
User Definable Features (UDF) support: off
Fast back-to-back capable: off
Data parity error detected: off
DEVSEL timing: medium (0x1)
Slave signaled Target Abort: off
Master received Target Abort: off
Master received Master Abort: off
Asserted System Error (SERR): off
Parity error detected: off
Class Name: bridge (0x06)
Subclass Name: CardBus (0x07)
Interface: 0x00
Revision ID: 0x00
BIST: 0x00
Header Type: 0x02+multifunction (0x82)
Latency Timer: 0xa8
Cache Line Size: 0x08
Type 2 (PCI-CardBus bridge) header:
0x10: 0x50102000 0x020000a0 0xb0040200 0x00000000
0x20: 0x00000000 0x00000000 0x00000000 0x00000000
0x30: 0x00000000 0x00000000 0x00000000 0x03c0010b
0x40: 0x00eb1014 0x000003e1
Base address register at 0x10 (CardBus socket/ExCA registers)
type: 32-bit nonprefetchable memory
base: 0x50102000, not sized
Capability list pointer: 0xa0
Secondary status register: 0x0200
66 MHz capable: off
User Definable Features (UDF) support: off
Fast back-to-back capable: off
Data parity error detection: off
DEVSEL timing: medium (0x1)
PCI target aborts terminate CardBus bus master transactions: off
CardBus target aborts terminate PCI bus master transactions: off
Bus initiator aborts terminate initiator transactions: off
System error: off
Parity error: off
PCI bus number: 0x00
CardBus bus number: 0x02
Subordinate bus number: 0x04
CardBus latency timer: 0xb0
CardBus memory region 0:
base register: 0x00000000
limit register: 0x00000000
CardBus memory region 1:
base register: 0x00000000
limit register: 0x00000000
CardBus I/O region 0:
base register: 0x00000000
limit register: 0x00000000
CardBus I/O region 1:
base register: 0x00000000
limit register: 0x00000000
Interrupt line: 0x0b
Interrupt pin: 0x01 (pin A)
Bridge control register: 0x03c0
Parity error response: off
CardBus SERR forwarding: off
ISA enable: off
VGA enable: off
CardBus master abort reporting: off
CardBus reset: on
Functional interrupts routed by ExCA registers: on
Memory window 0 prefetchable: on
Memory window 1 prefetchable: on
Write posting enable: off
Subsystem vendor ID: 0x1014
Subsystem ID: 0x00eb
Base address register at 0x44 (legacy-mode registers)
type: i/o
base: 0x000003e0, not sized
Capability register at 0xa0
type: 0x01 (Power Management, rev. 1.0)
Device-dependent header:
0x48: 0x00000000 0x00000000
0x50: 0x00000000 0x00000000 0x00000000 0x00000000
0x60: 0x00000000 0x00000000 0x00000000 0x00000000
0x70: 0x00000000 0x00000000 0x00000000 0x00000000
0x80: 0x0044b060 0x00000000 0x01818948 0xfba97543
0x90: 0x606283c0 0x00000000 0x00000000 0x00000000
0xa0: 0x7e210001 0x00808000 0x00000000 0x00000000
0xb0: 0x00000000 0x00000000 0x00000000 0x00000000
0xc0: 0x00000000 0x00000000 0x00000000 0x00000000
0xd0: 0x00000000 0x00000000 0x00000000 0x00000000
0xe0: 0x00000000 0x00000000 0x00000000 0x00000000
0xf0: 0x00000000 0x00000000 0x00000000 0x00000000
--
Greg Troxel <gdt@ir.bbn.com>