[Prism54-users] WLAN device only works when another network device
is present
Arnstein Oseland
arnstein at faveo.no
Mon Jun 14 11:28:48 UTC 2004
I am trying to make 802.11g work on an embedded device with a relatively
slow processor and a PCI 2.1-compliant motherboard. The device is
recognized by the driver as XG-600.
I am now able to make the device work as long as another network device
(pegasus USB-device) is activated. eth0 is the XG-600 and eth1 is the
pegasus-device. If I do ifconfig eth1 up, eth0 works, and if I do
ifconfig eth1 down, it doesn't :(
Does anybody have any ideas how I can make it work without eth1 active?
Here are the details:
1. Linux kernel 2.4.26 with the yenta-patch from
http://bugzilla.kernel.org/show_bug.cgi?id=1840
2. Prism54 patched into kernel source tree. Patch v. 1.0.2.2.
3. Cardbus-support from standard kernel. The cardbus-controller is TI1410A.
4. Firmware 1.0.4.3.
----------------------
Output from lspci -vv:
00:0b.0 Class 0607: 104c:ac50 (rev 02)
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium
>TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 168, cache line size 04
Interrupt: pin A routed to IRQ 11
Region 0: Memory at fbeff000 (32-bit, non-prefetchable) [size=4K]
Bus: primary=00, secondary=01, subordinate=01, sec-latency=176
Memory window 0: 10000000-103ff000 (prefetchable)
Memory window 1: 10400000-107ff000
I/O window 0: 0000df00-0000dfff
I/O window 1: 0000de00-0000deff
BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset- 16bInt-
PostWrite+
16-bit legacy interface ports at 0001
01:00.0 Class 0280: 1260:3890 (rev 01)
Subsystem: 17cf:0014
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium
>TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 80 (2500ns min, 7000ns max)
Interrupt: pin A routed to IRQ 11
Region 0: Memory at 10400000 (32-bit, non-prefetchable) [size=8K]
Capabilities: [dc] Power Management version 1
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
/proc/interrupts:
CPU0
0: 45187 XT-PIC timer
1: 3 XT-PIC keyboard
2: 0 XT-PIC cascade
8: 0 XT-PIC rtc
11: 398 XT-PIC usb-ohci, Texas Instruments PCI1410 PC
card Cardbus Controller, eth0
12: 12 XT-PIC PS/2 Mouse
14: 24637 XT-PIC ide0
NMI: 0
LOC: 0
ERR: 0
Relevant sections from dmesg _before_ I do ifconfig eth0 up:
Linux Kernel Card Services 3.1.22
options: [pci] [cardbus] [pm]
yenta 00:0b.0: Preassigned resource start fbefe000 end fbefefff too
small or not aligned.
yenta 00:0b.0: Preassigned resource start fbefd000 end fbefdfff too
small or not aligned.
Yenta ISA IRQ mask 0x0000, PCI irq 11
Socket status: 30000020
hub.c: new USB device 00:13.0-1.2.1, assigned address 5
input: USB HID v1.00 Keyboard [Alps Electric Apple USB Keyboard] on usb1:5.0
cs: cb_alloc(bus 1): vendor 0x1260, device 0x3890
PCI: Enabling device 01:00.0 (0000 -> 0002)
cs: IO port probe 0x0c00-0x0cff: clean.
cs: IO port probe 0x0800-0x08ff: clean.
cs: IO port probe 0x0100-0x04ff: excluding 0x220-0x22f 0x2f8-0x2ff
0x378-0x37f 0x388-0x38f 0x3f8-0x3ff 0x480-0x48f 0x4d0-0x4d7
cs: IO port probe 0x0a00-0x0aff: clean.
Loaded prism54 driver, version 1.0.2.2
eth0: prism54 driver detected card model: XG-600
If I then do ifconfig eth0 I get:
eth0: islpci_open()
eth0: resetting device...
eth0: uploading firmware...
remove_proc_entry: 01:00.0/loading busy, count=1
remove_proc_entry: firmware/01:00.0 busy, count=1
eth0: firmware uploaded done, now triggering reset...
de_put: deferred delete of loading
de_put: deferred delete of 01:00.0
eth0: device soft reset timed out
eth0: timeout waiting for mgmt response 100, trigging device
eth0: timeout waiting for mgmt response
eth0: timeout waiting for mgmt response 100, trigging device
eth0: timeout waiting for mgmt response
eth0: timeout waiting for mgmt response 100, trigging device
eth0: timeout waiting for mgmt response
eth0: timeout waiting for mgmt response 100, trigging device
eth0: timeout waiting for mgmt response
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgt_commit has failed. Restart the device
eth0: mgmt tx queue is still full
eth0: mgmt response not collected
eth0: mgmt response not collected
eth0: mgmt response not collected
If I then do "ifconfig eth0 down ; modprobe pegasus ; ifconfig eth1 up ;
ifconfig eth0 up" I get:
pegasus.c: v0.4.32 (2003/06/06):Pegasus/Pegasus II USB Ethernet driver
usb.c: registered new driver pegasus
pegasus.c: eth1: USB 10/100 Fast Ethernet
eth0: timeout waiting for mgmt response 100, trigging device
eth0: timeout waiting for mgmt response
eth0: timeout waiting for mgmt response 100, trigging device
eth0: timeout waiting for mgmt response
eth0: timeout waiting for mgmt response 100, trigging device
eth0: timeout waiting for mgmt response
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgmt tx queue is still full
eth0: mgmt response not collected
eth0: mgmt response not collected
eth0: mgmt response not collected
eth0: mgmt response not collected
eth0: islpci_close ()
eth0: islpci_open()
eth0: resetting device...
eth0: uploading firmware...
remove_proc_entry: 01:00.0/loading busy, count=1
remove_proc_entry: firmware/01:00.0 busy, count=1
eth0: firmware uploaded done, now triggering reset...
de_put: deferred delete of loading
de_put: deferred delete of 01:00.0
eth0: timeout waiting for mgmt response 100, trigging device
eth0: timeout waiting for mgmt response
eth0: mgmt response not collected
eth0: mgt_commit has failed. Restart the device
But now the device actually works!
More information about the Prism54-users
mailing list