AR9331 chipset has XactErr when working with USB 1.1 devices

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



New small and portable routers from TP-LINK  (TL-MR3020 and TL-MR3040)
incorporate this Atheros chipset.
On Linux  3.3.8  (and earlier kernels like 3.2.5)   we are finding
data transfer issues with USB 1.1 devices.

The device (a Samsung BlackJack phone working as a 3G modem) can pass
data to the Internet initially but as
pages are opened these Xact errors show up and the USB port does not
pass any data after that.
Since the stock TP-LINK firmware (Linux 2.6.31) on these devices is
being used with 3G modems world wide -presumably this problem does not
appear with 2.0 devices - though I haven't verified it myself.
Also if a USB 2.0 passive hub is used in the middle - the problem goes
away   - I guess because the chipset will be doing USB 2.0  and the
hub will be doing the translation to USB 1.1. - leading me to believe
that it is an issue with USB 1.1 data transfers with this chipset.

Similar issues have been reported on the openwrt forum - see
https://forum.openwrt.org/viewtopic.php?id=39956

Reading through the linux-usb forum it appears that such errors are
very difficult to fix since they are tied to the hardware
implementation. But posing this question anyway...

Ashok



Relevant snippet  of dmesg below (with USB DEBUG enabled in the kernel
build)  is:

Linux version 3.3.8 (rao@asus) (gcc version 4.6.4 20121001
(prerelease) (Linaro GCC 4.6-2012.10) ) #1 Sun Nov 4 12:33:27 EST 2012
[    0.000000] MyLoader: sysp=fa89c804, boardp=69cd3b24, parts=31a09c82
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU revision is: 00019374 (MIPS 24Kc)
[    0.000000] SoC: Atheros AR9330 rev 1
[    0.000000] Clocks: CPU:400.000MHz, DDR:400.000MHz, AHB:200.000MHz,
Ref:25.000MHz

   30.450000] usb 1-1: matched this device!
[   31.060000] ehci-platform ehci-platform: detected XactErr len 0/128 retry 1
[   36.440000] usb 1-1: unlink qh32-0e01/81b7d100 start 1 [1/2 us]
[   36.450000] usb usb1: clear tt buffer port 1, a2 ep2 t80808d80
[   36.450000] usb usb1: clear tt buffer port 1, a2 ep2 t80808d80
[   36.480000] usb usb1: clear tt buffer port 1, a2 ep2 t80808d80
[   36.480000] usb usb1: clear tt buffer port 1, a2 ep2 t80808d80
[   36.490000] usb usb1: clear tt buffer port 1, a2 ep2 t80808d80
[   36.500000] usb usb1: clear tt buffer port 1, a2 ep2 t80808d80
[   36.500000] usb usb1: clear tt buffer port 1, a2 ep2 t80808d80
[   36.520000] usb usb1: clear tt buffer port 1, a2 ep2 t80808d80
[   36.610000] ehci-platform ehci-platform: reused qh 81b7d100 schedule
[   36.610000] usb 1-1: link qh32-0e01/81b7d100 start 1 [1/2 us]
[   38.220000] usb 1-1: unlink qh32-0e01/81b7d100 start 1 [1/2 us]
[   38.230000] usb usb1: clear tt buffer port 1, a2 ep2 t00808d80
[   38.230000] usb usb1: clear tt buffer port 1, a2 ep2 t00808d80
[   38.240000] usb usb1: clear tt buffer port 1, a2 ep2 t00808d80
[   38.250000] usb usb1: clear tt buffer port 1, a2 ep2 t00808d80
[   38.380000] ehci-platform ehci-platform: reused qh 81b7d100 schedule
[   38.380000] usb 1-1: link qh32-0e01/81b7d100 start 1 [1/2 us]
[  164.940000] ehci-platform ehci-platform: detected XactErr len 0/128 retry 1
[  180.840000] ehci-platform ehci-platform: detected XactErr len 0/181 retry 1
[  204.980000] ehci-platform ehci-platform: detected XactErr len 0/128 retry 1


FULL dmesg:

root@OpenWrt:~# dmesg
[    0.000000] Linux version 3.3.8 (rao@asus) (gcc version 4.6.4
20121001 (prerelease) (Linaro GCC 4.6-2012.10) ) #1 Sun Nov 4 12:33:27
EST 2012
[    0.000000] MyLoader: sysp=fa89c804, boardp=69cd3b24, parts=31a09c82
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU revision is: 00019374 (MIPS 24Kc)
[    0.000000] SoC: Atheros AR9330 rev 1
[    0.000000] Clocks: CPU:400.000MHz, DDR:400.000MHz, AHB:200.000MHz,
Ref:25.000MHz
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 02000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Zone PFN ranges:
[    0.000000]   Normal   0x00000000 -> 0x00002000
[    0.000000] Movable zone start PFN for each node
[    0.000000] Early memory PFN ranges
[    0.000000]     0: 0x00000000 -> 0x00002000
[    0.000000] On node 0 totalpages: 8192
[    0.000000] free_area_init_node: node 0, pgdat 802ce100,
node_mem_map 81000000
[    0.000000]   Normal zone: 64 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 8128 pages, LIFO batch:0
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.
Total pages: 8128
[    0.000000] Kernel command line:  board=TL-MR3040
console=ttyATH0,115200 rootfstype=squashfs,jffs2 noinitrd
[    0.000000] PID hash table entries: 128 (order: -3, 512 bytes)
[    0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[    0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases,
linesize 32 bytes
[    0.000000] Writing ErrCtl register=00000000
[    0.000000] Readback ErrCtl register=00000000
[    0.000000] Memory: 29148k/32768k available (2086k kernel code,
3620k reserved, 403k data, 208k init, 0k highmem)
[    0.000000] SLUB: Genslabs=9, HWalign=32, Order=0-3, MinObjects=0,
CPUs=1, Nodes=1
[    0.000000] NR_IRQS:51
[    0.000000] Calibrating delay loop... 265.42 BogoMIPS (lpj=1327104)
[    0.080000] pid_max: default: 32768 minimum: 301
[    0.080000] Mount-cache hash table entries: 512
[    0.090000] NET: Registered protocol family 16
[    0.090000] gpiochip_add: registered GPIOs 0 to 29 on device: ath79
[    0.100000] MIPS: machine is TP-LINK TL-MR3040
[    0.350000] bio: create slab <bio-0> at 0
[    0.360000] Switching to clocksource MIPS
[    0.360000] NET: Registered protocol family 2
[    0.370000] IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.370000] TCP established hash table entries: 1024 (order: 1, 8192 bytes)
[    0.370000] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    0.380000] TCP: Hash tables configured (established 1024 bind 1024)
[    0.390000] TCP reno registered
[    0.390000] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.400000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.400000] NET: Registered protocol family 1
[    0.410000] PCI: CLS 0 bytes, default 32
[    0.430000] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.430000] JFFS2 version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME)
(CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.440000] msgmni has been set to 56
[    0.440000] io scheduler noop registered
[    0.450000] io scheduler deadline registered (default)
[    0.450000] Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
[    0.460000] ar933x-uart: ttyATH0 at MMIO 0x18020000 (irq = 11) is a
AR933X UART
[    0.460000] console [ttyATH0] enabled, bootconsole disabled
[    0.480000] m25p80 spi0.0: found s25sl032a, expected m25p80
[    0.480000] m25p80 spi0.0: s25sl032a (4096 Kbytes)
[    0.490000] 5 tp-link partitions found on MTD device spi0.0
[    0.490000] Creating 5 MTD partitions on "spi0.0":
[    0.500000] 0x000000000000-0x000000020000 : "u-boot"
[    0.510000] 0x000000020000-0x0000000fea9c : "kernel"
[    0.510000] mtd: partition "kernel" must either start or end on
erase block boundary or be smaller than an erase block -- forcing
read-only
[    0.520000] 0x0000000fea9c-0x0000003f0000 : "rootfs"
[    0.530000] mtd: partition "rootfs" must either start or end on
erase block boundary or be smaller than an erase block -- forcing
read-only
[    0.540000] mtd: partition "rootfs" set to be root filesystem
[    0.550000] mtd: partition "rootfs_data" created automatically,
ofs=300000, len=F0000
[    0.550000] 0x000000300000-0x0000003f0000 : "rootfs_data"
[    0.560000] 0x0000003f0000-0x000000400000 : "art"
[    0.570000] 0x000000020000-0x0000003f0000 : "firmware"
[    0.590000] ag71xx_mdio: probed
[    0.590000] eth0: Atheros AG71xx at 0xb9000000, irq 4
[    1.150000] ag71xx ag71xx.0: eth0: connected to PHY at
ag71xx-mdio.1:00 [uid=004dd041, driver=Generic PHY]
[    1.160000] TCP cubic registered
[    1.160000] NET: Registered protocol family 17
[    1.160000] 8021q: 802.1Q VLAN Support v1.8
[    1.170000] VFS: Mounted root (squashfs filesystem) readonly on device 31:2.
[    1.180000] Freeing unused kernel memory: 208k freed
[    3.310000] Registered led device: tp-link:green:3g
[    3.310000] Registered led device: tp-link:green:wlan
[    3.310000] Registered led device: tp-link:green:lan
[    6.150000] eth0: link up (100Mbps/Full duplex)
[    6.610000] JFFS2 notice: (406) jffs2_build_xattr_subsystem:
complete building xattr subsystem, 1 of xdatum (0 unchecked, 0 orphan)
and 16 of xref (0 dead, 4 orphan) found.
[    6.720000] eth0: link down
[    8.460000] Compat-drivers backport release:
compat-drivers-2012-09-04-2-gddac993
[    8.460000] Backport based on wireless-testing.git master-2012-09-07
[    8.470000] compat.git: wireless-testing.git
[    8.520000] cfg80211: Calling CRDA to update world regulatory domain
[    8.520000] cfg80211: World regulatory domain updated:
[    8.530000] cfg80211:   (start_freq - end_freq @ bandwidth),
(max_antenna_gain, max_eirp)
[    8.530000] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz),
(300 mBi, 2000 mBm)
[    8.540000] cfg80211:   (2457000 KHz - 2482000 KHz @ 20000 KHz),
(300 mBi, 2000 mBm)
[    8.550000] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz),
(300 mBi, 2000 mBm)
[    8.560000] cfg80211:   (5170000 KHz - 5250000 KHz @ 40000 KHz),
(300 mBi, 2000 mBm)
[    8.560000] cfg80211:   (5735000 KHz - 5835000 KHz @ 40000 KHz),
(300 mBi, 2000 mBm)
[    8.810000] usbcore: registered new interface driver usbfs
[    8.820000] usbcore: registered new interface driver hub
[    8.820000] usbcore: registered new device driver usb
[    9.390000] ath: EEPROM regdomain: 0x0
[    9.390000] ath: EEPROM indicates default country code should be used
[    9.390000] ath: doing EEPROM country->regdmn map search
[    9.390000] ath: country maps to regdmn code: 0x3a
[    9.390000] ath: Country alpha2 being used: US
[    9.390000] ath: Regpair used: 0x3a
[    9.390000] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[    9.400000] Registered led device: ath9k-phy0
[    9.400000] ieee80211 phy0: Atheros AR9330 Rev:1 mem=0xb8100000, irq=2
[    9.400000] cfg80211: Calling CRDA for country: US
[    9.410000] cfg80211: Regulatory domain changed to country: US
[    9.410000] cfg80211:   (start_freq - end_freq @ bandwidth),
(max_antenna_gain, max_eirp)
[    9.420000] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz),
(300 mBi, 2700 mBm)
[    9.430000] cfg80211:   (5170000 KHz - 5250000 KHz @ 40000 KHz),
(300 mBi, 1700 mBm)
[    9.440000] cfg80211:   (5250000 KHz - 5330000 KHz @ 40000 KHz),
(300 mBi, 2000 mBm)
[    9.440000] cfg80211:   (5490000 KHz - 5600000 KHz @ 40000 KHz),
(300 mBi, 2000 mBm)
[    9.450000] cfg80211:   (5650000 KHz - 5710000 KHz @ 40000 KHz),
(300 mBi, 2000 mBm)
[    9.460000] cfg80211:   (5735000 KHz - 5835000 KHz @ 40000 KHz),
(300 mBi, 3000 mBm)
[    9.520000] PPP generic driver version 2.4.2
[    9.680000] ip_tables: (C) 2000-2006 Netfilter Core Team
[    9.840000] NET: Registered protocol family 24
[    9.860000] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    9.870000] ehci_hcd: block sizes: qh 64 qtd 96 itd 160 sitd 96
[    9.870000] ehci-platform ehci-platform: Generic Platform EHCI Controller
[    9.870000] drivers/usb/core/inode.c: creating file 'devices'
[    9.870000] drivers/usb/core/inode.c: creating file '001'
[    9.870000] ehci-platform ehci-platform: new USB bus registered,
assigned bus number 1
[    9.880000] ehci-platform ehci-platform: reset hcs_params 0x10011
dbg=0 ind cc=0 pcc=0 ordered ports=1
[    9.880000] ehci-platform ehci-platform: reset hcc_params 0006
thresh 0 uframes 256/512/1024 park
[    9.880000] ehci-platform ehci-platform: park 0
[    9.880000] ehci-platform ehci-platform: reset command 0080002
(park)=0 ithresh=8 period=1024 Reset HALT
[    9.880000] ehci-platform ehci-platform: ...powerdown ports...
[    9.910000] ehci-platform ehci-platform: irq 3, io mem 0x1b000000
[    9.910000] ehci-platform ehci-platform: init command 0010005
(park)=0 ithresh=1 period=512 RUN
[    9.930000] ehci-platform ehci-platform: USB 2.0 started, EHCI 1.00
[    9.930000] usb usb1: default language 0x0409
[    9.930000] usb usb1: udev 1, busnum 1, minor = 0
[    9.930000] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    9.940000] usb usb1: New USB device strings: Mfr=3, Product=2,
SerialNumber=1
[    9.940000] usb usb1: Product: Generic Platform EHCI Controller
[    9.950000] usb usb1: Manufacturer: Linux 3.3.8 ehci_hcd
[    9.960000] usb usb1: SerialNumber: ehci-platform
[    9.960000] usb usb1: usb_probe_device
[    9.960000] usb usb1: configuration #1 chosen from 1 choice
[    9.960000] usb usb1: adding 1-0:1.0 (config #1, interface 0)
[    9.960000] hub 1-0:1.0: usb_probe_interface
[    9.960000] hub 1-0:1.0: usb_probe_interface - got id
[    9.960000] hub 1-0:1.0: USB hub found
[    9.960000] hub 1-0:1.0: 1 port detected
[    9.970000] hub 1-0:1.0: standalone hub
[    9.970000] hub 1-0:1.0: individual port power switching
[    9.970000] hub 1-0:1.0: individual port over-current protection
[    9.970000] hub 1-0:1.0: Single TT
[    9.970000] hub 1-0:1.0: TT requires at most 8 FS bit times (666 ns)
[    9.970000] hub 1-0:1.0: power on to power good time: 20ms
[    9.970000] hub 1-0:1.0: local power source is good
[    9.970000] hub 1-0:1.0: enabling power on all ports
[    9.970000] drivers/usb/core/inode.c: creating file '001'
[    9.990000] nf_conntrack version 0.5.0 (458 buckets, 1832 max)
[   10.130000] ehci-platform ehci-platform: GetStatus port:1 status
10001803 8  ACK POWER sig=j CSC CONNECT
[   10.130000] hub 1-0:1.0: port 1: status 0101 change 0001
[   10.230000] hub 1-0:1.0: state 7 ports 1 chg 0002 evt 0000
[   10.230000] hub 1-0:1.0: port 1, status 0101, change 0000, 12 Mb/s
[   10.330000] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[   10.340000] ohci_hcd: block sizes: ed 64 td 64
[   10.350000] usb 1-1: new full-speed USB device number 2 using ehci-platform
[   10.530000] usbcore: registered new interface driver cdc_acm
[   10.530000] cdc_acm: USB Abstract Control Model driver for USB
modems and ISDN adapters
[   10.570000] usb 1-1: skipped 4 descriptors after interface
[   10.570000] usb 1-1: default language 0x0409
[   10.570000] usb 1-1: udev 2, busnum 1, minor = 1
[   10.570000] usb 1-1: New USB device found, idVendor=04e8, idProduct=6640
[   10.580000] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[   10.580000] usb 1-1: Product: SAMSUNG CDMA Technologies
[   10.590000] usb 1-1: Manufacturer: SAMSUNG Electronics Co.,Ltd.
[   10.600000] usb 1-1: usb_probe_device
[   10.600000] usb 1-1: configuration #1 chosen from 1 choice
[   10.600000] usb 1-1: adding 1-1:1.0 (config #1, interface 0)
[   10.600000] cdc_acm 1-1:1.0: usb_probe_interface
[   10.600000] cdc_acm 1-1:1.0: usb_probe_interface - got id
[   10.600000] cdc_acm 1-1:1.0: ttyACM0: USB ACM device
[   10.600000] usb 1-1: adding 1-1:1.1 (config #1, interface 1)
[   10.600000] usb 1-1: adding 1-1:1.2 (config #1, interface 2)
[   10.600000] drivers/usb/core/inode.c: creating file '002'
[   10.600000] hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0002
[   13.790000] device eth0 entered promiscuous mode
[   14.190000] usb 1-1: link qh32-0e01/81b7d100 start 1 [1/2 us]
[   14.500000] eth0: link up (100Mbps/Full duplex)
[   14.500000] br-lan: port 1(eth0) entered forwarding state
[   14.510000] br-lan: port 1(eth0) entered forwarding state
[   15.830000] usb 1-1: unlink qh32-0e01/81b7d100 start 1 [1/2 us]
[   15.840000] usb usb1: clear tt buffer port 1, a2 ep2 t80808d80
[   16.460000] ehci-platform ehci-platform: reused qh 81b7d100 schedule
[   16.460000] usb 1-1: link qh32-0e01/81b7d100 start 1 [1/2 us]
[   16.510000] br-lan: port 1(eth0) entered forwarding state
[   17.530000] device wlan0 entered promiscuous mode
[   17.540000] ehci-platform ehci-platform: detected XactErr len 0/128 retry 1
[   17.680000] ehci-platform ehci-platform: detected XactErr len 0/128 retry 2
[   17.690000] br-lan: port 2(wlan0) entered forwarding state
[   17.690000] br-lan: port 2(wlan0) entered forwarding state
[   19.690000] br-lan: port 2(wlan0) entered forwarding state
[   30.440000] usb usb1: check for name 1-1 ...
[   30.440000] usb 1-1: check for name 1-1 ...
[   30.450000] usb 1-1: matched this device!
[   31.060000] ehci-platform ehci-platform: detected XactErr len 0/128 retry 1
[   36.440000] usb 1-1: unlink qh32-0e01/81b7d100 start 1 [1/2 us]
[   36.450000] usb usb1: clear tt buffer port 1, a2 ep2 t80808d80
[   36.450000] usb usb1: clear tt buffer port 1, a2 ep2 t80808d80
[   36.480000] usb usb1: clear tt buffer port 1, a2 ep2 t80808d80
[   36.480000] usb usb1: clear tt buffer port 1, a2 ep2 t80808d80
[   36.490000] usb usb1: clear tt buffer port 1, a2 ep2 t80808d80
[   36.500000] usb usb1: clear tt buffer port 1, a2 ep2 t80808d80
[   36.500000] usb usb1: clear tt buffer port 1, a2 ep2 t80808d80
[   36.520000] usb usb1: clear tt buffer port 1, a2 ep2 t80808d80
[   36.610000] ehci-platform ehci-platform: reused qh 81b7d100 schedule
[   36.610000] usb 1-1: link qh32-0e01/81b7d100 start 1 [1/2 us]
[   38.220000] usb 1-1: unlink qh32-0e01/81b7d100 start 1 [1/2 us]
[   38.230000] usb usb1: clear tt buffer port 1, a2 ep2 t00808d80
[   38.230000] usb usb1: clear tt buffer port 1, a2 ep2 t00808d80
[   38.240000] usb usb1: clear tt buffer port 1, a2 ep2 t00808d80
[   38.250000] usb usb1: clear tt buffer port 1, a2 ep2 t00808d80
[   38.380000] ehci-platform ehci-platform: reused qh 81b7d100 schedule
[   38.380000] usb 1-1: link qh32-0e01/81b7d100 start 1 [1/2 us]
[  164.940000] ehci-platform ehci-platform: detected XactErr len 0/128 retry 1
[  180.840000] ehci-platform ehci-platform: detected XactErr len 0/181 retry 1
[  204.980000] ehci-platform ehci-platform: detected XactErr len 0/128 retry 1
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux