17.03.2014 3:27, Warner Losh пишет:
On Mar 14, 2014, at 2:38 AM, Hans Petter Selasky <h...@bitfrost.no> wrote:

On 03/14/14 09:08, Admin wrote:
14.03.2014 14:42, Hans Petter Selasky пишет:
On 03/14/14 08:22, Admin wrote:
Hello all.

I have a two-port PCMCIA USB 2.0 card exactly like this:

http://i01.i.aliimg.com/wsphoto/v0/371216405/PCMCIA-to-font-b-USB-b-font-font-b-2-0-b-font-font-b-Cardbus.jpg



It works in Linux for my USB mouse and keyboard, so now I am trying to
use it in FreeBSD.

This is how it is detected by pciconf -lv:

uhci0@pci0:7:0:0: class=0x0c0300 card=0x30381106 chip=0x30381106
rev=0x61 hdr=0x00
vendor = 'VIA Technologies, Inc.'
device = 'VT82xxxxx UHCI USB 1.1 Controller'
class = serial bus
subclass = USB
uhci1@pci0:7:0:1: class=0x0c0300 card=0x30381106 chip=0x30381106
rev=0x61 hdr=0x00
vendor = 'VIA Technologies, Inc.'
device = 'VT82xxxxx UHCI USB 1.1 Controller'
class = serial bus
subclass = USB
ehci0@pci0:7:0:2: class=0x0c0320 card=0x31041106 chip=0x31041106
rev=0x63 hdr=0x00
vendor = 'VIA Technologies, Inc.'
device = 'USB 2.0'
class = serial bus
subclass = USB

And this is what I see during boot:

Copyright (c) 1992-2013 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 10.0-RC3 #2: Wed Feb 12 16:18:02 NOVT 2014
root@AcerAspire:/usr/obj/usr/src/sys/GENERIC i386
FreeBSD clang version 3.3 (tags/RELEASE_33/final 183502) 20130610
CPU: AMD Turion(tm) 64 X2 Mobile Technology TL-50 (1596.04-MHz 686-class
CPU)
Origin = "AuthenticAMD" Id = 0x40f82 Family = 0xf Model = 0x48
Stepping = 2
Features=0x178bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2,HTT>


Features2=0x2001<SSE3,CX16>
AMD Features=0xea500800<SYSCALL,NX,MMX+,FFXSR,RDTSCP,LM,3DNow!+,3DNow!>
AMD Features2=0x1f<LAHF,CMP,SVM,ExtAPIC,CR8>
real memory = 3221225472 (3072 MB)
avail memory = 2743922688 (2616 MB)
Event timer "LAPIC" quality 400
ACPI APIC Table: <PTLTD APIC >
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
FreeBSD/SMP: 1 package(s) x 2 core(s)
cpu0 (BSP): APIC ID: 0
cpu1 (AP): APIC ID: 1
MADT: Forcing active-low polarity and level trigger for SCI
ioapic0 <Version 2.1> irqs 0-23 on motherboard
kbd1 at kbdmux0
random: <Software, Yarrow> initialized
acpi0: <PTLTD RSDT> on motherboard
acpi0: Power Button (fixed)
acpi0: reservation of 0, 1000 (3) failed
cpu0: <ACPI CPU> on acpi0
cpu1: <ACPI CPU> on acpi0
atrtc0: <AT realtime clock> port 0x70-0x71 irq 8 on acpi0
Event timer "RTC" frequency 32768 Hz quality 0
attimer0: <AT timer> port 0x40-0x43 irq 0 on acpi0
Timecounter "i8254" frequency 1193182 Hz quality 0
attimer0: Can't map interrupt.
Timecounter "ACPI-fast" frequency 3579545 Hz quality 900
acpi_timer0: <32-bit timer at 3.579545MHz> port 0x8008-0x800b on acpi0
acpi_ec0: <Embedded Controller: GPE 0x10> port 0x62,0x66 on acpi0
acpi_lid0: <Control Method Lid Switch> on acpi0
acpi_button0: <Power Button> on acpi0
acpi_button1: <Sleep Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
pcib1: <ACPI PCI-PCI bridge> at device 1.0 on pci0
pci1: <ACPI PCI bus> on pcib1
vgapci0: <VGA-compatible display> port 0x9000-0x90ff mem
0xc8000000-0xcfffffff,0xc0100000-0xc010ffff irq 17 at device 5.0 on pci1
vgapci0: Boot video device
pcib2: <ACPI PCI-PCI bridge> at device 4.0 on pci0
pcib2: failed to allocate initial I/O port window: 0-0xfff
pcib2: failed to allocate initial memory window: 0-0xfffff
pcib2: failed to allocate initial prefetch window: 0-0xfffff
pci2: <ACPI PCI bus> on pcib2
pcib3: <ACPI PCI-PCI bridge> at device 5.0 on pci0
pcib3: failed to allocate initial I/O port window: 0-0xfff
pcib3: failed to allocate initial memory window: 0-0xfffff
pci4: <ACPI PCI bus> on pcib3
pci0: <serial bus, SMBus> at device 20.0 (no driver attached)
atapci0: <ATI IXP400 UDMA133 controller> port
0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0x8410-0x841f irq 16 at device 20.1
on pci0
ata0: <ATA channel> at channel 0 on atapci0
ata1: <ATA channel> at channel 1 on atapci0
hdac0: <ATI SB450 HDA Controller> mem 0xc0000000-0xc0003fff irq 16 at
device 20.2 on pci0
hdac0: Device stuck in reset
isab0: <PCI-ISA bridge> at device 20.3 on pci0
isa0: <ISA bus> on isab0
pcib4: <ACPI PCI-PCI bridge> at device 20.4 on pci0
pci6: <ACPI PCI bus> on pcib4
rl0: <RealTek 8139 10/100BaseTX> port 0xa000-0xa0ff mem
0xc0210000-0xc02100ff irq 21 at device 1.0 on pci6
miibus0: <MII bus> on rl0
rlphy0: <RealTek internal media interface> PHY 0 on miibus0
rlphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
rl0: Ethernet address: 00:16:d4:55:3d:e8
ath0: <Atheros 2413> mem 0xc0200000-0xc020ffff irq 22 at device 2.0
on pci6
ath0: AR2413 mac 7.8 RF2413 phy 4.5
ath0: 2GHz radio: 0x0000; 5GHz radio: 0x0056
cbb0: <PCI-CardBus Bridge> mem 0xc0211000-0xc0211fff irq 20 at device
4.0 on pci6
cardbus0: <CardBus bus> on cbb0
pccard0: <16-bit PCCard bus> on cbb0
pci6: <memory, flash> at device 4.1 (no driver attached)
sdhci_pci0: <ENE CB712 SD> mem 0xc0210800-0xc02108ff irq 23 at device
4.2 on pci6
sdhci_pci0: 1 slot(s) allocated
pci6: <memory, flash> at device 4.3 (no driver attached)
sdhci_pci1: <ENE CB712 SD 2> at device 4.4 on pci6
sdhci_pci1: 1 slot(s) allocated
acpi_tz0: <Thermal Zone> on acpi0
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: model Generic PS/2 mouse, device ID 0
battery0: <ACPI Control Method Battery> on acpi0
acpi_acad0: <AC Adapter> on acpi0
pmtimer0 on isa0
orm0: <ISA Option ROMs> at iomem 0xc0000-0xcefff,0xcf000-0xcffff pnpid
ORM0000 on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on
isa0
ppc0: parallel port not found.
powernow0: <PowerNow! K8> on cpu0
powernow1: <PowerNow! K8> on cpu1
Timecounters tick every 1.000 msec
random: unblocking device.
cardbus0: Expecting link target, got 0xff
cardbus0: Expecting link target, got 0xff
uhci0: <VIA 83C572 USB controller> port 0xa100-0xa11f irq 20 at device
0.0 on cardbus0
ada0 at ata0 bus 0 scbus0 target 0 lun 0
ada0: <ST98823A 3.06> ATA-6 device
ada0: Serial Number 5PK2AD2Y
ada0: 100.000MB/s transfers (UDMA5, PIO 8192bytes)
ada0: 76319MB (156301488 512 byte sectors: 16H 63S/T 16383C)
ada0: Previously was known as ad0
cd0 at ata0 bus 0 scbus0 target 1 lun 0
cd0: <PIONEER DVD-RW DVR-K16RS 1.35> Removable CD-ROM SCSI-0 device
cd0: Serial Number FIDL384431WL
cd0: 33.300MB/s transfers (UDMA2, ATAPI 12bytes, PIO 65534bytes)
cd0: cd present [1131986 x 2048 byte records]
SMP: AP CPU #1 Launched!
usbus0: controller did not reset
usbus0 on uhci0
usbus0: 12Mbps Full Speed USB v1.0
cardbus0: Expecting link target, got 0xff
cardbus0: Expecting link target, got 0xff
uhci1: <VIA 83C572 USB controller> port 0xa120-0xa13f irq 20 at device
0.1 on cardbus0
ugen0.1: <VIA> at usbus0
uhub0: <VIA UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0
usbus1: controller did not reset
usbus1 on uhci1
usbus1: 12Mbps Full Speed USB v1.0
cardbus0: Expecting link target, got 0xff
cardbus0: Expecting link target, got 0xff
ehci0: <VIA VT6202 USB 2.0 controller> mem 0xc0212000-0xc02120ff irq 20
at device 0.2 on cardbus0
ehci0: VIA-quirk applied
usbus2: EHCI version 1.0
ugen1.1: <VIA> at usbus1
uhub1: <VIA UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus1
uhci_interrupt: resume detect
uhci_interrupt: host system error
uhci_interrupt: host controller process error
uhci_interrupt: resume detect
uhci_interrupt: host system error
uhci_interrupt: host controller process error
usbus2 on ehci0
usbus2: 480Mbps High Speed USB v2.0
ugen2.1: <VIA> at usbus2
uhub2: <VIA EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus2
uhub0: 2 ports with 2 removable, self powered
uhub1: 2 ports with 2 removable, self powered
uhub_reattach_port: port 1 reset failed, error=USB_ERR_TIMEOUT
uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling port 1
uhub_reattach_port: port 1 reset failed, error=USB_ERR_TIMEOUT
uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling port 1
uhub2: 4 ports with 4 removable, self powered
uhci_interrupt: resume detect
uhci_interrupt: host system error
uhci_interrupt: host controller process error
uhci_interrupt: resume detect
uhci_interrupt: host system error
uhci_interrupt: host controller process error
uhub_reattach_port: port 1 reset failed, error=USB_ERR_TIMEOUT
uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling port 1
uhub_reattach_port: port 1 reset failed, error=USB_ERR_TIMEOUT
uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling port 1
uhci_interrupt: resume detect
uhci_interrupt: host system error
uhci_interrupt: host controller process error
uhci_interrupt: resume detect
uhci_interrupt: host system error
uhci_interrupt: host controller process error
uhub_reattach_port: port 1 reset failed, error=USB_ERR_TIMEOUT
uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling port 1
Trying to mount root from ufs:/dev/ada0p2 [rw]...
uhub_reattach_port: port 1 reset failed, error=USB_ERR_TIMEOUT
uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling port 1
uhub_reattach_port: port 1 reset failed, error=USB_ERR_TIMEOUT
uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling port 1
uhub_reattach_port: port 1 reset failed, error=USB_ERR_TIMEOUT
uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling port 1
uhub_reattach_port: port 1 reset failed, error=USB_ERR_TIMEOUT
uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling port 1
wlan0: Ethernet address: 00:16:cf:89:cf:e0
uhub_reattach_port: port 1 reset failed, error=USB_ERR_TIMEOUT
uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling port 1
uhub_reattach_port: port 1 reset failed, error=USB_ERR_TIMEOUT
uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling port 1
uhub_reattach_port: port 1 reset failed, error=USB_ERR_TIMEOUT
uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling port 1
uhub_reattach_port: port 1 reset failed, error=USB_ERR_TIMEOUT
uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling port 1
uhub_reattach_port: port 1 reset failed, error=USB_ERR_TIMEOUT
uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling port 1
uhub_reattach_port: port 1 reset failed, error=USB_ERR_TIMEOUT
uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling port 1
uhub_reattach_port: port 1 reset failed, error=USB_ERR_TIMEOUT
uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling port 1
uhub_reattach_port: port 1 reset failed, error=USB_ERR_TIMEOUT
uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling port 1
uhub_reattach_port: port 1 reset failed, error=USB_ERR_TIMEOUT
uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling port 1
uhub_reattach_port: port 1 reset failed, error=USB_ERR_TIMEOUT
uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling port 1
uhub_reattach_port: port 1 reset failed, error=USB_ERR_TIMEOUT
uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling port 1
uhub_reattach_port: port 1 reset failed, error=USB_ERR_TIMEOUT
uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling port 1
uhub_reattach_port: port 1 reset failed, error=USB_ERR_TIMEOUT
uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling port 1
uhub_reattach_port: port 1 reset failed, error=USB_ERR_TIMEOUT
uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling port 1
uhub_reattach_port: port 1 reset failed, error=USB_ERR_TIMEOUT
uhub_reattach_port: device problem (USB_ERR_TIMEOUT), disabling port 1


I see that when nothing is plugged in those USB ports on the card.

When I plug something in (like keyboard and mouse), it is not detected
and does not work.

usbconfig just hangs, not reacting to ctrl+c until I unplug the card.
Then it unhags and states the right EHCI device.

Where should I start looking?
Hi,

This might sound like an IRQ problem, that the device is not
generating any interrupts. You can fake interrupts by using a
timer/callout to see if that is the real problem.

--
Thanks for the reply!
I thought of that, yes, but... do I have to hack a scheduler or something?
I'm not shure how this could be done.


Hi,

Just hack a callout that is calling the ehci_interrupt() function every 1ms. 
See for example the xhci driver which has already got such a feature.
Any updates?

Warner


First of all I must confess that I didn't realize at first that this maillist, as I assume now, is mostly for developers, which I certainly am not. Not even a programmer. Just a user, somewhat experienced (using FreeBSD for almost everything since 2003), but hacking a kernel is above my competence. I tried some tricks like compiling kernel without USB2.0 support to see if it only effects ehci and not ohci for example, but I guess this may seem pretty stupid to this community. That obviously didn't work, so at this point I just gave up and continued to use Linux in that machine instead. Maybe a little backstory can explain what I'm really trying to do:

I have a notebook Acer Aspire 5100. A pretty old one and best known for it's unreliable southbridge. The symptoms of it burning down are almost the same for everyone: notebook gets a burned hole in the chasis in the left lower corner under the keyboard, USB stops working, keyboard and touchpad stop responding. And yes, I have all of them. Yet notebook can still work almost flawlessly after that, you just can't type anything in or plug the USB-device. That means you can't, for exmple, enter BIOS and change boot priority, etc. So when I run it's preinstalled Windows - I can't do anything. When I run Linux LiveCD - I also can't do anything, I just can't pass the first step in Kubuntu's graphical setup. So here is what I did - I took out HDD and installed a FreeBSD on it using another computer, and then I inserted the HDD back into the notebook. So the BIOS still is inaccessible due to no response on F2 and the FreeBSD boot menu is also unskipable due to no reaction on Enter, so I have to wait all 10 seconds before the kernel is loaded.

But when the kernel is loaded, the keyboard magically starts responding. When the system is loaded I can use it fully. The keyboard just works. And what I want to know is how? The touchpad and USB are still dead, no USB controllers are detected in dmesg or usbconfig, but the keyboard is detected normally as atkbd0 and it just works. And FreeBSD is the only OS that sees and reacts to this notebook's keyboard. I just wonder how this is possible? The southbridge is dead without a doubt, and all other systems totally agree with this.

Yet I have to have a mouse to make this old notebook somewhat usefull, So, as I've said, I grabbed that PCMCIA USB card and tried plugging mouse into it. In Linux that totally hepled, mouse and keyboard connected to this USB adapter just work and I can use Linux. But using external keyboard (since Linux does not detect a built-in one) makes this notebook not usable as a portable device. That's why I want to use FreeBSD with a built-in keyboard, which works, and a mouse connected to this PCMCIA-To-USB adapter, which does not work.

That's my story. But I'm just not familiar with C language to figure out what should I do.
_______________________________________________
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"

Reply via email to