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

Re: [Xen-users] USB2.0 in Windows7 GPLPV Guest



Finally found the problem and was able to solve it!


The hint actually was that my usb2.0 devices show up on the normal USB
controller and not on the usb3.0 if i plug them in the usb3 port.. I
then read a few background infos about how USB works and apparently
USB controller are kind of stacked so an OHCI controller (USB1) may
contain a EHCI controller (USB2) may contain a xHCI controller (USB3)
and if a divice doesn't work with one, it is passed down to the
underlaying, slower one. This way i figured my initial problem is that
my usb devices don't reach the EHCI controller and were only served by
the OHCI one..

Checked lspci:

# lspci
00:00.0 Host bridge: Advanced Micro Devices [AMD] nee ATI RD890
Northbridge only single slot PCI-e GFX Hydra part (rev 02)
00:00.2 IOMMU: Advanced Micro Devices [AMD] nee ATI RD990 I/O Memory
Management Unit (IOMMU)
00:02.0 PCI bridge: Advanced Micro Devices [AMD] nee ATI RD890 PCI to
PCI bridge (PCI express gpp port B)
00:04.0 PCI bridge: Advanced Micro Devices [AMD] nee ATI RD890 PCI to
PCI bridge (PCI express gpp port D)
00:06.0 PCI bridge: Advanced Micro Devices [AMD] nee ATI RD890 PCI to
PCI bridge (PCI express gpp port F)
00:07.0 PCI bridge: Advanced Micro Devices [AMD] nee ATI RD890 PCI to
PCI bridge (PCI express gpp port G)
00:0b.0 PCI bridge: Advanced Micro Devices [AMD] nee ATI RD890 PCI to
PCI bridge (NB-SB link)
00:11.0 SATA controller: Advanced Micro Devices [AMD] nee ATI
SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] (rev 40)
00:12.0 USB controller: Advanced Micro Devices [AMD] nee ATI
SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:12.2 USB controller: Advanced Micro Devices [AMD] nee ATI
SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:13.0 USB controller: Advanced Micro Devices [AMD] nee ATI
SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:13.2 USB controller: Advanced Micro Devices [AMD] nee ATI
SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:14.0 SMBus: Advanced Micro Devices [AMD] nee ATI SBx00 SMBus
Controller (rev 41)
00:14.1 IDE interface: Advanced Micro Devices [AMD] nee ATI
SB7x0/SB8x0/SB9x0 IDE Controller (rev 40)
00:14.2 Audio device: Advanced Micro Devices [AMD] nee ATI SBx00
Azalia (Intel HDA) (rev 40)
00:14.3 ISA bridge: Advanced Micro Devices [AMD] nee ATI
SB7x0/SB8x0/SB9x0 LPC host controller (rev 40)
00:14.4 PCI bridge: Advanced Micro Devices [AMD] nee ATI SBx00 PCI to
PCI Bridge (rev 40)
00:14.5 USB controller: Advanced Micro Devices [AMD] nee ATI
SB7x0/SB8x0/SB9x0 USB OHCI2 Controller
00:16.0 USB controller: Advanced Micro Devices [AMD] nee ATI
SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:16.2 USB controller: Advanced Micro Devices [AMD] nee ATI
SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:18.0 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor
HyperTransport Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor
Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor
DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor
Miscellaneous Control
00:18.4 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor
Link Control
02:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee
ATI Cedar PRO [Radeon HD 5450]
02:00.1 Audio device: Advanced Micro Devices [AMD] nee ATI Cedar HDMI
Audio [Radeon HD 5400/6300 Series]
03:00.0 USB controller: NEC Corporation uPD720200 USB 3.0 Host
Controller (rev 03)
04:00.0 Ethernet controller: Marvell Technology Group Ltd. Yukon
Optima 88E8059 [PCIe Gigabit Ethernet Controller with AVB] (rev 11)
05:00.0 SATA controller: JMicron Technology Corp. JMB363 SATA/IDE
Controller (rev 03)
05:00.1 IDE interface: JMicron Technology Corp. JMB363 SATA/IDE
Controller (rev 03)
06:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee
ATI Juniper [Radeon HD 5700 Series]
06:00.1 Audio device: Advanced Micro Devices [AMD] nee ATI Juniper
HDMI Audio [Radeon HD 5700 Series]

-> EHCIs are on 12.2, 13,2 and 16,2

Then I found out that I'm not actually passing them to my domU because
despite I hide them at boot like the rest, they never actually show up
on xm pci-list-assignable-devices. I then tried to pci-attach them
anyway and came across the "non-page-aligned MMIO BAR" error. Thats
why they didn't show up in the first place.

So i added "pciback.permissive
'pci=resource_alignment=00:12.2;00:13.2;00:16.2'" to my kernel config
which finally did the trick.. EHCI controller show up as assignable
devices and when assigned give me USB2.0 speed (arount 18MB/s like
you).

P.S.: if anyone has the same problem and wants to resource_align
multiple devices, put the argument in single quotes like above.
Otherwise the kernel will only interprete the first argument of
pci=resource_alignment and ignore the rest because it treats the ; as
a split operator and thinks the rest is a whole new argument resulting
in dmesg messages that your devices aren't arguments.

_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxx
http://lists.xen.org/xen-users


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.