Quantcast

athn: fix ar9380 receive code

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

athn: fix ar9380 receive code

Stefan Sperling-5
AR9380 devices are currently not supported by our athn(4).
There is code for them in the driver, but this code does not work yet.

This diff makes monitor mode work with an AR9380 device I have lying around.

athn0 at pci1 dev 0 function 0 "Atheros AR9300" rev 0x01: apic 2 int 16
athn0: AR9380 rev 3 (3T3R), ROM rev 0, address xx:xx:xx:xx:xx:xx

This means it can now receive packets (transmit is still broken).
The fixes are:
1) The Rx done bit is in word 11 of the Rx descriptor, not in word 1.
2) The card sends an RXEOL interrupt when it receives a packet.
3) Rx enable bits in the config registers differ from older devices
   (the common code in athn.c looks at these bits).

I have cross-checked these changes with Linux ath9k.

To test this diff, PCI_PRODUCT_ATHEROS_AR9300 must also be added
to the PCI device list in if_athn_pci.c (not included here since
I doubt anyone will bother at this point).

ok?

Index: ic/ar9003.c
===================================================================
RCS file: /cvs/src/sys/dev/ic/ar9003.c,v
retrieving revision 1.45
diff -u -p -r1.45 ar9003.c
--- ic/ar9003.c 8 Mar 2017 12:02:41 -0000 1.45
+++ ic/ar9003.c 18 May 2017 00:11:06 -0000
@@ -934,7 +934,7 @@ ar9003_rx_process(struct athn_softc *sc,
     BUS_DMASYNC_POSTREAD);
 
  ds = mtod(bf->bf_m, struct ar_rx_status *);
- if (!(ds->ds_status1 & AR_RXS1_DONE))
+ if (!(ds->ds_status11 & AR_RXS11_DONE))
  return (EBUSY);
 
  /* Check that it is a valid Rx status descriptor. */
@@ -1345,7 +1345,7 @@ ar9003_intr(struct athn_softc *sc)
 #endif
  if (intr & (AR_ISR_RXMINTR | AR_ISR_RXINTM))
  ar9003_rx_intr(sc, ATHN_QID_LP);
- if (intr & (AR_ISR_LP_RXOK | AR_ISR_RXERR))
+ if (intr & (AR_ISR_LP_RXOK | AR_ISR_RXERR | AR_ISR_RXEOL))
  ar9003_rx_intr(sc, ATHN_QID_LP);
  if (intr & AR_ISR_HP_RXOK)
  ar9003_rx_intr(sc, ATHN_QID_HP);
Index: ic/ar9003reg.h
===================================================================
RCS file: /cvs/src/sys/dev/ic/ar9003reg.h,v
retrieving revision 1.8
diff -u -p -r1.8 ar9003reg.h
--- ic/ar9003reg.h 20 Oct 2012 09:53:32 -0000 1.8
+++ ic/ar9003reg.h 18 May 2017 00:11:06 -0000
@@ -1157,7 +1157,6 @@ struct ar_rx_status {
 #define AR_RXI_DESC_ID_S 16
 
 /* Bits for ds_status1. */
-#define AR_RXS1_DONE 0x00000001
 #define AR_RXS1_RATE_M 0x000003fc
 #define AR_RXS1_RATE_S 2
 
@@ -1175,6 +1174,7 @@ struct ar_rx_status {
 #define AR_RXS5_RSSI_COMBINED_S 24
 
 /* Bits for ds_status11. */
+#define AR_RXS11_DONE 0x00000001
 #define AR_RXS11_FRAME_OK 0x00000002
 #define AR_RXS11_CRC_ERR 0x00000004
 #define AR_RXS11_DECRYPT_CRC_ERR 0x00000008
Index: ic/athnreg.h
===================================================================
RCS file: /cvs/src/sys/dev/ic/athnreg.h,v
retrieving revision 1.19
diff -u -p -r1.19 athnreg.h
--- ic/athnreg.h 18 Dec 2016 14:34:20 -0000 1.19
+++ ic/athnreg.h 18 May 2017 00:11:06 -0000
@@ -253,7 +253,7 @@
 
 
 /* Bits for AR_CR. */
-#define AR_CR_RXE 0x00000004
+#define AR_CR_RXE (AR_SREV_9380_20_OR_LATER(sc) ? 0x000c : 0x0004)
 #define AR_CR_RXD 0x00000020
 #define AR_CR_SWI 0x00000040
 

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: athn: fix ar9380 receive code

Kevin Lo
On Thu, May 18, 2017 at 02:40:49AM +0200, Stefan Sperling wrote:

>
> AR9380 devices are currently not supported by our athn(4).
> There is code for them in the driver, but this code does not work yet.
>
> This diff makes monitor mode work with an AR9380 device I have lying around.
>
> athn0 at pci1 dev 0 function 0 "Atheros AR9300" rev 0x01: apic 2 int 16
> athn0: AR9380 rev 3 (3T3R), ROM rev 0, address xx:xx:xx:xx:xx:xx
>
> This means it can now receive packets (transmit is still broken).
> The fixes are:
> 1) The Rx done bit is in word 11 of the Rx descriptor, not in word 1.
> 2) The card sends an RXEOL interrupt when it receives a packet.
> 3) Rx enable bits in the config registers differ from older devices
>    (the common code in athn.c looks at these bits).
>
> I have cross-checked these changes with Linux ath9k.
>
> To test this diff, PCI_PRODUCT_ATHEROS_AR9300 must also be added
> to the PCI device list in if_athn_pci.c (not included here since
> I doubt anyone will bother at this point).
>
> ok?

Can't receive packets with my AR9382 card.

Tested with:
ifconfig athn0 mediaopt monitor up
tcpdump -n -i athn0 -y IEEE802_11_RADIO -vv

Here are hardware info:
# dmesg |grep athn0
athn0 at pci2 dev 0 function 0 "Atheros AR9300" rev 0x01: apic 1 int 17
athn0: AR9380 rev 3 (2T2R), ROM rev 0, address 00:0e:8e:75:16:9a

# pkg_info |grep athn
athn-firmware-1.1p1 firmware binary images for athn(4) driver

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: athn: fix ar9380 receive code

Stefan Sperling-5
On Thu, May 18, 2017 at 01:19:18PM +0800, Kevin Lo wrote:
> On Thu, May 18, 2017 at 02:40:49AM +0200, Stefan Sperling wrote:
> > athn0 at pci1 dev 0 function 0 "Atheros AR9300" rev 0x01: apic 2 int 16
> > athn0: AR9380 rev 3 (3T3R), ROM rev 0, address xx:xx:xx:xx:xx:xx

> Can't receive packets with my AR9382 card.

That is interesting, but there is no reason to reject my diff, I think.

> athn0: AR9380 rev 3 (2T2R), ROM rev 0, address 00:0e:8e:75:16:9a

My device is 3T3R, and yours is 2T2R.

It is unclear which rxchains are disabled on your device.
The rxchain mask could 0x5 or 0x03.

The driver has a few special cases for devices with less than 3 chains.
I think it we would be better try to fix this in-tree, after my diff
gets committed.

Note that it looks like Damien did not have hardware when he wrote this
driver. The log message of ar9003.c r1.1 says "AR9380 part is not tested
(hardware is not available to the general public yet)." and when the
first devices showed up in people's machines the kernel attached and
then crashed immediately (see r1.72 of athn.c) which is why this part
of the driver was eventually disabled (if_athn_pci.c r1.17).
So there remain quite a few bugs which need to be fixed.

It would be interesting to know how the FreeBSD driver handles your card.

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: athn: fix ar9380 receive code

Kevin Lo
On Thu, May 18, 2017 at 08:08:52AM +0200, Stefan Sperling wrote:
>
> On Thu, May 18, 2017 at 01:19:18PM +0800, Kevin Lo wrote:
> > On Thu, May 18, 2017 at 02:40:49AM +0200, Stefan Sperling wrote:
> > > athn0 at pci1 dev 0 function 0 "Atheros AR9300" rev 0x01: apic 2 int 16
> > > athn0: AR9380 rev 3 (3T3R), ROM rev 0, address xx:xx:xx:xx:xx:xx
>
> > Can't receive packets with my AR9382 card.
>
> That is interesting, but there is no reason to reject my diff, I think.

Right :)  I'll try to get the ar9380 card, thanks.

> > athn0: AR9380 rev 3 (2T2R), ROM rev 0, address 00:0e:8e:75:16:9a
>
> My device is 3T3R, and yours is 2T2R.
>
> It is unclear which rxchains are disabled on your device.
> The rxchain mask could 0x5 or 0x03.
>
> The driver has a few special cases for devices with less than 3 chains.
> I think it we would be better try to fix this in-tree, after my diff
> gets committed.
>
> Note that it looks like Damien did not have hardware when he wrote this
> driver. The log message of ar9003.c r1.1 says "AR9380 part is not tested
> (hardware is not available to the general public yet)." and when the
> first devices showed up in people's machines the kernel attached and
> then crashed immediately (see r1.72 of athn.c) which is why this part
> of the driver was eventually disabled (if_athn_pci.c r1.17).
> So there remain quite a few bugs which need to be fixed.
>
> It would be interesting to know how the FreeBSD driver handles your card.
>

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: athn: fix ar9380 receive code

Kevin Lo
On Thu, May 18, 2017 at 02:42:45PM +0800, Kevin Lo wrote:

>
> On Thu, May 18, 2017 at 08:08:52AM +0200, Stefan Sperling wrote:
> >
> > On Thu, May 18, 2017 at 01:19:18PM +0800, Kevin Lo wrote:
> > > On Thu, May 18, 2017 at 02:40:49AM +0200, Stefan Sperling wrote:
> > > > athn0 at pci1 dev 0 function 0 "Atheros AR9300" rev 0x01: apic 2 int 16
> > > > athn0: AR9380 rev 3 (3T3R), ROM rev 0, address xx:xx:xx:xx:xx:xx
> >
> > > Can't receive packets with my AR9382 card.
> >
> > That is interesting, but there is no reason to reject my diff, I think.
>
> Right :)  I'll try to get the ar9380 card, thanks.

My AR9380 adapter arrived, but I hit a kernel panic on amd64:

booting hd0a:/bsd: 6232140+2110472+246816+0+671744 [72+625728+421114]=0x9d6c08
entry point at 0x1001000 [7205c766, 34000004, 24448b12, e960a304]
[ using 1047560 bytes of bsd ELF symbol table ]
Copyright (c) 1982, 1986, 1989, 1991, 1993
        The Regents of the University of California.  All rights reserved.
Copyright (c) 1995-2017 OpenBSD. All rights reserved.  https://www.OpenBSD.org

OpenBSD 6.1-current (GENERIC.MP) #0: Wed May 24 09:48:26 CST 2017
    root@winlab.SSG5-Serial:/usr/src/sys/arch/amd64/compile/GENERIC.MP
real mem = 2016292864 (1922MB)
avail mem = 1951485952 (1861MB)                                                
mpath0 at root                                                                  
scsibus0 at mpath0: 256 targets                                                
mainbus0 at root                                                                
bios0 at mainbus0: SMBIOS rev. 2.8 @ 0xec9b0 (51 entries)                      
bios0: vendor American Megatrends Inc. version "5.6.5" date 12/09/2014          
acpi0 at bios0: rev 2                                                          
acpi0: sleep states S0 S3 S4 S5                                                
acpi0: tables DSDT FACP APIC FPDT FIDT LPIT MCFG HPET SSDT SSDT SSDT UEFI CSRT  
acpi0: wakeup devices XHC1(S4) PXSX(S4) PXSX(S4) PXSX(S4) PXSX(S4) PWRB(S0)    
acpitimer0 at acpi0: 3579545 Hz, 24 bits                                        
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat                                
cpu0 at mainbus0: apid 0 (boot processor)                                      
cpu0: Intel(R) Atom(TM) CPU E3845 @ 1.91GHz, 1917.06 MHz                        
cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CT
cpu0: 1MB 64b/line 16-way L2 cache                                              
cpu0: TSC frequency 1917057130 Hz                                              
cpu0: smt 0, core 0, package 0                                                  
mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges                  
cpu0: apic clock running at 83MHz                                              
cpu0: mwait min=64, max=64, C-substates=0.2.0.0.0.0.3, IBE                      
cpu1 at mainbus0: apid 2 (application processor)                                
cpu1: Intel(R) Atom(TM) CPU E3845 @ 1.91GHz, 1916.67 MHz                        
cpu1: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CT
cpu1: 1MB 64b/line 16-way L2 cache                                              
cpu1: smt 0, core 1, package 0                                                  
cpu2 at mainbus0: apid 4 (application processor)                                
cpu2: Intel(R) Atom(TM) CPU E3845 @ 1.91GHz, 1916.67 MHz                        
cpu2: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CT
cpu2: 1MB 64b/line 16-way L2 cache                                              
cpu2: smt 0, core 2, package 0                                                  
cpu3 at mainbus0: apid 6 (application processor)                                
cpu3: Intel(R) Atom(TM) CPU E3845 @ 1.91GHz, 1916.67 MHz                        
cpu3: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CT
cpu3: 1MB 64b/line 16-way L2 cache                                              
cpu3: smt 0, core 3, package 0                                                  
ioapic0 at mainbus0: apid 1 pa 0xfec00000, version 20, 87 pins                  
acpimcfg0 at acpi0 addr 0xe0000000, bus 0-255                                  
acpihpet0 at acpi0: 14318179 Hz                                                
acpiprt0 at acpi0: bus 0 (PCI0)                                                
acpiprt1 at acpi0: bus 1 (RP01)                                                
acpiprt2 at acpi0: bus 2 (RP02)                                                
acpiprt3 at acpi0: bus 3 (RP03)                                                
acpiprt4 at acpi0: bus 4 (RP04)                                                
acpiec0 at acpi0: not present                                                  
acpicpu0 at acpi0: C3(10@1500 mwait.1@0x52), C2(10@500 mwait.1@0x51), C1(1000@1S
acpicpu1 at acpi0: C3(10@1500 mwait.1@0x52), C2(10@500 mwait.1@0x51), C1(1000@1S
acpicpu2 at acpi0: C3(10@1500 mwait.1@0x52), C2(10@500 mwait.1@0x51), C1(1000@1S
acpicpu3 at acpi0: C3(10@1500 mwait.1@0x52), C2(10@500 mwait.1@0x51), C1(1000@1S
acpipwrres0 at acpi0: PLPE                                                      
acpipwrres1 at acpi0: PLPE                                                      
acpipwrres2 at acpi0: USBC, resource for EHC1, OTG1                            
"PNP0400" at acpi0 not configured                                              
"PNP0501" at acpi0 not configured                                              
"PNP0501" at acpi0 not configured                                              
"DMA0F28" at acpi0 not configured                                              
acpibtn0 at acpi0: PWRB                                                        
acpibtn1 at acpi0: SLPB                                                        
"INT33BD" at acpi0 not configured                                              
acpivideo0 at acpi0: GFX0                                                      
acpivout0 at acpivideo0: DD1F                                                  
cpu0: Enhanced SpeedStep 1917 MHz: speeds: 1909, 1743, 1577, 1411, 1245, 1079, z
pci0 at mainbus0 bus 0                                                          
pchb0 at pci0 dev 0 function 0 "Intel Bay Trail Host" rev 0x0c                  
inteldrm0 at pci0 dev 2 function 0 "Intel Bay Trail Video" rev 0x0c            
drm0 at inteldrm0                                                              
inteldrm0: msi                                                                  
inteldrm0: 1680x1050, 32bpp                                                    
wsdisplay0 at inteldrm0 mux 1: console (std, vt100 emulation)                  
wsdisplay0: screen 1-5 added (std, vt100 emulation)                            
sdhc0 at pci0 dev 18 function 0 "Intel Bay Trail SD/MMC" rev 0x0c: apic 1 int 18
sdhc0: SDHC 3.0, 100 MHz base clock                                            
sdmmc0 at sdhc0: 4-bit, sd high-speed, mmc high-speed, dma                      
ahci0 at pci0 dev 19 function 0 "Intel Bay Trail AHCI" rev 0x0c: msi, AHCI 1.3  
ahci0: port 1: 3.0Gb/s                                                          
scsibus1 at ahci0: 32 targets                                                  
sd0 at scsibus1 targ 1 lun 0: <ATA, TS32GMSA370, 2014> SCSI3 0/direct fixed t10_
sd0: 30533MB, 512 bytes/sector, 62533296 sectors, thin                          
xhci0 at pci0 dev 20 function 0 "Intel Bay Trail xHCI" rev 0x0c: msi            
usb0 at xhci0: USB revision 3.0                                                
uhub0 at usb0 configuration 1 interface 0 "Intel xHCI root hub" rev 3.00/1.00 a1
"Intel Bay Trail TXE" rev 0x0c at pci0 dev 26 function 0 not configured        
azalia0 at pci0 dev 27 function 0 "Intel Bay Trail HD Audio" rev 0x0c: msi      
azalia0: codecs: Realtek/0x0887, Intel/0x2882, using Realtek/0x0887            
audio0 at azalia0                                                              
ppb0 at pci0 dev 28 function 0 "Intel Bay Trail PCIE" rev 0x0c: msi            
pci1 at ppb0 bus 1                                                              
ppb1 at pci0 dev 28 function 1 "Intel Bay Trail PCIE" rev 0x0c: msi            
pci2 at ppb1 bus 2                                                              
athn0 at pci2 dev 0 function 0 "Atheros AR9300" rev 0x01: apic 1 int 17        
uvm_fault(0xffffffff81858d20, 0xffff800130868ffc, 0, 1) -> e                    
kernel: page fault trap, code=0                                                
Stopped at      x86_bus_space_mem_read_4+0x13:  movl    0(%rsi),%eax            
ddb{0}> trace                                                                  
x86_bus_space_mem_read_4(ffff800030869000,fffffffc,13,ffff8000001d1000,10,fffff
fff81a053f0) at x86_bus_space_mem_read_4+0x13                                  
ar9003_read_eep_word(ffff8000001d1000,7ffff7ff,ffffffff81a0548e,800,7ffff7ff,18
) at ar9003_read_eep_word+0x36                                                  
ar9003_read_eep_data(ffff8000001d1000,fffff590,ffff8000001c4800,5aa,5a,fffff590
) at ar9003_read_eep_data+0x91                                                  
ar9003_read_rom(ffff8000001d1000,ffffffff81a055a0,ffff8000001d1000,ffff80000019
d500,ffffffff817ff700,0) at ar9003_read_rom+0xe8                                
ar9003_attach(ffff8000001d1000,0,ffff8000001d1000,0,0,3) at ar9003_attach+0x1b8
                                                                               
athn_attach(ffff8000001d1000,1001110a80020000,ffffffff81a05770,ffff80000019d500
,ffffffff817ff700,ffff8000001d1000) at athn_attach+0x4e2                        
athn_pci_attach(ffff80000019d500,ffff8000001d1000,ffffffff81a05770,ffff8000001d
1000,ffff8000001d1000,ffff8000001d1024) at athn_pci_attach+0x20e                
config_attach(ffff80000019d500,ffffffff817f93f8,ffffffff81a05770,ffffffff81378c
30,ffff80000019d500,0) at config_attach+0x1d3                                  
pci_probe_device(ffff80000019d500,80020000,0,0,0,0) at pci_probe_device+0x48e  
pci_enumerate_bus(ffff80000019d500,0,0,ffff8000001d0400,ffffffff81a059b0,ffff80
00001d0400) at pci_enumerate_bus+0x106                                          
config_attach(ffff8000001d0400,ffffffff817f86d8,ffffffff81a059b0,ffffffff813c75
e0,ffff8000001d0448,ffff8000001d0400) at config_attach+0x1d3                    
ppbattach(ffff8000000b8a00,ffff8000001d0400,ffffffff81a05b60,ffff8000001d0400,f
fffffff81a05b60,ffff8000000b8a00) at ppbattach+0x3a2                            
config_attach(ffff8000000b8a00,ffffffff817f8eb8,ffffffff81a05b60,ffffffff81378c
30,ffff8000000b8a00,0) at config_attach+0x1d3                                  
pci_probe_device(ffff8000000b8a00,8000e100,0,0,1c,0) at pci_probe_device+0x48e  
pci_enumerate_bus(ffff8000000b8a00,0,0,ffff80000001b100,ffffffff81a05d70,ffff80
000001b100) at pci_enumerate_bus+0x106                                          
config_attach(ffff80000001b100,ffffffff817f86d8,ffffffff81a05d70,ffffffff8135dc
40,0,0) at config_attach+0x1d3                                                  
mainbus_attach(0,ffff80000001b100,0,0,ffff80000001b100,ffff80000001b124) at mai
nbus_attach+0x19d                                                              
config_attach(0,ffffffff817f83c8,0,0,2,1) at config_attach+0x1d3                
cpu_configure(0,ffffffff817f79b8,ffffffff81302f1b,ffffffff81a05ee0,0,ffffffff81
7f83c8) at cpu_configure+0x1b                                                  
main(e,0,79cf2c30,ffffffff81a00008,e5d8637c373b6157,e5d8637c373b6157) at main+0
x466                                                                            
end trace frame: 0x0, count: -20                                                
ddb{0}>

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: athn: fix ar9380 receive code

Stefan Sperling-5
On Wed, May 24, 2017 at 10:11:21AM +0800, Kevin Lo wrote:
> My AR9380 adapter arrived, but I hit a kernel panic on amd64:

Which PCI product ID does this card have?

> athn0 at pci2 dev 0 function 0 "Atheros AR9300" rev 0x01: apic 1 int 17        
> uvm_fault(0xffffffff81858d20, 0xffff800130868ffc, 0, 1) -> e                    
> kernel: page fault trap, code=0                                                
> Stopped at      x86_bus_space_mem_read_4+0x13:  movl    0(%rsi),%eax            
> ddb{0}> trace                                                                  
> x86_bus_space_mem_read_4(ffff800030869000,fffffffc,13,ffff8000001d1000,10,fffff
> fff81a053f0) at x86_bus_space_mem_read_4+0x13                                  
> ar9003_read_eep_word(ffff8000001d1000,7ffff7ff,ffffffff81a0548e,800,7ffff7ff,18
> ) at ar9003_read_eep_word+0x36                                                  
> ar9003_read_eep_data(ffff8000001d1000,fffff590,ffff8000001c4800,5aa,5a,fffff590
> ) at ar9003_read_eep_data+0x91                                                  
> ar9003_read_rom(ffff8000001d1000,ffffffff81a055a0,ffff8000001d1000,ffff80000019
> d500,ffffffff817ff700,0) at ar9003_read_rom+0xe8                                
> ar9003_attach(ffff8000001d1000,0,ffff8000001d1000,0,0,3) at ar9003_attach+0x1b8

I'll check and compare what the driver does for my card here.

There are many different models. Some models don't even have an EEPROM.

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: athn: fix ar9380 receive code

Kevin Lo
On Thu, May 25, 2017 at 05:38:59PM +0200, Stefan Sperling wrote:
>
> On Wed, May 24, 2017 at 10:11:21AM +0800, Kevin Lo wrote:
> > My AR9380 adapter arrived, but I hit a kernel panic on amd64:
>
> Which PCI product ID does this card have?

The product ID is 0x0030.

# pcidump -v 2:0:0
 2:0:0: Atheros AR9300
        0x0000: Vendor ID: 168c Product ID: 0030
        0x0004: Command: 0007 Status: 0010
        0x0008: Class: 02 Subclass: 80 Interface: 00 Revision: 01
        0x000c: BIST: 00 Header Type: 00 Latency Timer: 00 Cache Line Size: 10
        0x0010: BAR mem 64bit addr: 0x0000000090800000/0x00020000
        0x0018: BAR empty (00000000)
        0x001c: BAR empty (00000000)
        0x0020: BAR empty (00000000)
        0x0024: BAR empty (00000000)
        0x0028: Cardbus CIS: 00000000
        0x002c: Subsystem Vendor ID: 168c Product ID: 3110
        0x0030: Expansion ROM Base Address: 90820000
        0x0038: 00000000
        0x003c: Interrupt Pin: 01 Line: 0a Min Gnt: 00 Max Lat: 00
        0x0040: Capability 0x01: Power Management
                State: D0
        0x0050: Capability 0x05: Message Signalled Interrupts (MSI)
        0x0070: Capability 0x10: PCI Express
                Link Speed: 2.5 / 2.5 GT/s Link Width: x1 / x1
        0x0100: Enhanced Capability 0x01: Advanced Error Reporting
        0x0140: Enhanced Capability 0x02: Virtual Channel Capability
        0x0300: Enhanced Capability 0x03: Device Serial Number

> > athn0 at pci2 dev 0 function 0 "Atheros AR9300" rev 0x01: apic 1 int 17        
> > uvm_fault(0xffffffff81858d20, 0xffff800130868ffc, 0, 1) -> e                    
> > kernel: page fault trap, code=0                                                
> > Stopped at      x86_bus_space_mem_read_4+0x13:  movl    0(%rsi),%eax            
> > ddb{0}> trace                                                                  
> > x86_bus_space_mem_read_4(ffff800030869000,fffffffc,13,ffff8000001d1000,10,fffff
> > fff81a053f0) at x86_bus_space_mem_read_4+0x13                                  
> > ar9003_read_eep_word(ffff8000001d1000,7ffff7ff,ffffffff81a0548e,800,7ffff7ff,18
> > ) at ar9003_read_eep_word+0x36                                                  
> > ar9003_read_eep_data(ffff8000001d1000,fffff590,ffff8000001c4800,5aa,5a,fffff590
> > ) at ar9003_read_eep_data+0x91                                                  
> > ar9003_read_rom(ffff8000001d1000,ffffffff81a055a0,ffff8000001d1000,ffff80000019
> > d500,ffffffff817ff700,0) at ar9003_read_rom+0xe8                                
> > ar9003_attach(ffff8000001d1000,0,ffff8000001d1000,0,0,3) at ar9003_attach+0x1b8
>
> I'll check and compare what the driver does for my card here.
>
> There are many different models. Some models don't even have an EEPROM.

I see, thank you.

Loading...