NetBSD Problem Report #20512
Received: (qmail 27077 invoked by uid 605); 27 Feb 2003 16:05:44 -0000
Message-Id: <20030227160541.49F6C11154@narn.netbsd.org>
Date: Thu, 27 Feb 2003 08:05:41 -0800 (PST)
From: stannous@employees.org
Sender: gnats-bugs-owner@netbsd.org
Reply-To: stannous@employees.org
To: gnats-bugs@gnats.netbsd.org
Subject: Thinkpad T30 Aironet mini-PCI wireless card: an driver fails to map registers
X-Send-Pr-Version: www-1.0
>Number: 20512
>Category: port-i386
>Synopsis: Thinkpad T30 Aironet mini-PCI wireless card: an driver fails to map registers
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: port-i386-maintainer
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu Feb 27 16:06:00 +0000 2003
>Closed-Date:
>Last-Modified: Tue Mar 04 18:52:00 +0000 2003
>Originator: Sam Tannous
>Release: 1.6.1_RC2
>Organization:
None
>Environment:
t30netbsd: {1} uname -a
NetBSD t30netbsd 1.6.1_RC2 NetBSD 1.6.1_RC2 (T30KERNEL) #12: Wed Feb 26 11:48:38 EST 2003 stannous@t30netbsd:/usr/src/sys/arch/i386/compile/T30KERNEL i386
t30netbsd: {2}
>Description:
The an driver fails to recognize the Aironet mini PCI wireless
card. I modified /usr/src/sys/dev/pci/if_an_pci.c to include
{ PCI_VENDOR_AIRONET, 0xa504},
and I also added the folling in my kernel config:
an* at pci? dev ? function ?
but all I get now is
-----------
an0 at pci2 dev 2 function 0: Aironet Wireless Communications product 0xa504
pci_io_find: expected type i/o, found mem
an0: unable to map registers
-----------
I also have the following pcictl data from the card:
-------
t30netbsd: {2} pcictl /dev/pci2 list
002:00:0: Texas Instruments product 0xac55 (CardBus bridge, revision 0x01)
002:00:1: Texas Instruments product 0xac55 (CardBus bridge, revision 0x01)
002:02:0: Aironet Wireless Communications product 0xa504 (miscellaneous network)
002:08:0: Intel PRO/100 VE Network Controller (ethernet network, revision 0x42)
t30netbsd: {3}
-------
and
-------
t30netbsd: {3} pcictl /dev/pci2 dump -d 2
PCI configuration registers:
Common header:
0x00: 0xa50414b9 0x0090011f 0x02800000 0x00004008
Vendor Name: Aironet Wireless Communications (0x14b9)
Device ID: 0xa504
Command register: 0x011f
I/O space accesses: on
Memory space accesses: on
Bus mastering: on
Special cycles: on
MWI transactions: on
Palette snooping: off
Parity error checking: off
Address/data stepping: off
System error (SERR): on
Fast back-to-back transactions: off
Status register: 0x0090
Capability List support: on
66 MHz capable: off
User Definable Features (UDF) support: off
Fast back-to-back capable: on
Data parity error detected: off
DEVSEL timing: fast (0x0)
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: network (0x02)
Subclass Name: miscellaneous (0x80)
Interface: 0x00
Revision ID: 0x00
BIST: 0x00
Header Type: 0x00 (0x00)
Latency Timer: 0x40
Cache Line Size: 0x08
Type 0 ("normal" device) header:
0x10: 0x00008001 0xd0200000 0xd0400000 0x00000000
0x20: 0x00000000 0x00000000 0x00002002 0x500014b9
0x30: 0x00000000 0x00000040 0x00000000 0x0404010b
Base address register at 0x10
type: i/o
base: 0x00008000, not sized
Base address register at 0x14
type: 32-bit nonprefetchable memory
base: 0xd0200000, not sized
Base address register at 0x18
type: 32-bit nonprefetchable memory
base: 0xd0400000, not sized
Base address register at 0x1c
not implemented(?)
Base address register at 0x20
not implemented(?)
Base address register at 0x24
not implemented(?)
Cardbus CIS Pointer: 0x00002002
Subsystem vendor ID: 0x14b9
Subsystem ID: 0x5000
Expansion ROM Base Address: 0x00000000
Capability list pointer: 0x40
Reserved @ 0x38: 0x00000000
Maximum Latency: 0x04
Minimum Grant: 0x04
Interrupt pin: 0x01 (pin A)
Interrupt line: 0x0b
Capability register at 0x40
type: 0x01 (Power Management, rev. 1.0)
Capability register at 0x48
type: 0x03 (VPD)
Device-dependent header:
0x40: 0x06024801 0xc8004000 0x807c0003 0x78000000
0x50: 0x00000000 0x00000000 0x00000000 0x00000000
0x60: 0x00000000 0x00000000 0x00000000 0x00000000
0x70: 0x00000000 0x00000000 0x00000000 0x00000000
0x80: 0x00000000 0x00000000 0x00000000 0x00000000
0x90: 0x00000000 0x00000000 0x00000000 0x00000000
0xa0: 0x00000000 0x00000000 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
t30netbsd: {4}
----------------------------
I also tried adding the folling line to
/usr/src/sys/dev/pci/pcidevs.h
#define PCI_PRODUCT_AIRONET_MPI350 0xA504
and added the following to pcidevs_data.h:
{
PCI_VENDOR_AIRONET, PCI_PRODUCT_AIRONET_MPI350,
0,
"Cisco/Aironet Wireless Communications",
"Cisco/Aironet MPI350 mini PCI Wireless LAN Adapter",
},
and added the following to if_an_pci.c:
{ PCI_VENDOR_AIRONET, PCI_PRODUCT_AIRONET_MPI350 },
thinking that might be the more proper way to do it...but the
result was the same.
I also tried changing 0x18 to 0x10 in if_an_pci.c
#define AN_PCI_IOBA 0x18 /* i/o base */
but that panic's my kernel and the laptop doesn't boot.
I don't know what else to try but I would be happy to test changes
for anyone.
Thanks,
Sam Tannous
>How-To-Repeat:
configure an support and change the if_an_pci.c code to
recognize the product code in a Thinkpad T30 and reboot.
>Fix:
None that I know of....
>Release-Note:
>Audit-Trail:
From: Sam Tannous <stannous@employees.org>
To: gnats-bugs@netbsd.org
Cc:
Subject: Re: port-i386/20512: Thinkpad T30 Aironet mini-PCI wireless card: an driver fails to map registers
Date: Tue, 4 Mar 2003 10:51:31 -0800
-----------------------------------------------------------
...some more testing.....
In usr/src/sys/dev/pci/if_an_pci.c, I tried switching
PCI_MAPREG_TYPE_IO to PCI_MAPREG_TYPE_MEM but I got a
kernel panic:
--------------
an0: interrupting at irq 11
an0: failed to load config data
an0: failed to attach controller
extent 'iomem' (0x0 - 0xffffffff), flags = 0x3
0x0 - 0x9eff
0xa0000 - 0xbffff
0xc0000 - 0xc7fff
...
<snipped 7 line>
...
0xffb00000 - 0xffbfffff
extent_free: start 0xd0400000, end 0xd040003f
panic: extent_free: region not found
Stopped in pid 0 (swapper) at cpu_Debugger+0x4: leave
db>
--------------
I also tried an additional change (leaving PCI_MAPREG_TYPE_MEM
there) and changed
#define AN_PCI_PLX_IOBA 0x14 /* i/o base for PLX chip */
#define AN_PCI_IOBA 0x14 /* i/o base */
(The difference was changing AN_PCI_IOBA from 0x18 to 0x14).
But I got the same kernel panic (as shown above).
The odd thing is that the T30 also comes with a TI mini-PCI
card which works fine with the wi driver. My T30 also works
fine with FreeBSD 4.7 and 5.0 if I simply enable the an driver.
Let me know if you need any further testing or troubleshooting....
Regards,
--Sam
>Unformatted:
(Contact us)
$NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.