From owner-freebsd-usb@FreeBSD.ORG Tue Mar 18 04:07:59 2014 Return-Path: Delivered-To: freebsd-usb@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 2FD77E2 for ; Tue, 18 Mar 2014 04:07:59 +0000 (UTC) Received: from ns1.allunix.ru (mail.allunix.ru [85.118.230.76]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 57CF43C5 for ; Tue, 18 Mar 2014 04:07:57 +0000 (UTC) Received: from gamer (clips.allunix.ru [85.118.230.78] (may be forged)) by ns1.allunix.ru (8.14.4/8.14.4) with ESMTP id s2I4stpY056988; Tue, 18 Mar 2014 10:54:56 +0600 (NOVT) (envelope-from admin@allunix.ru) X-AntiVirus: Checked by Dr.Web [version: 8.0.7.07121, engine: 8.3.0.10280, virus records: 5046644, updated: 18.03.2014] Message-ID: <5327C687.1020202@allunix.ru> Date: Tue, 18 Mar 2014 11:07:35 +0700 From: Admin User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0 MIME-Version: 1.0 To: Warner Losh , Hans Petter Selasky Subject: Re: VIA Cardbus USB References: <5322AE1E.6020407@allunix.ru> <5322B2E0.7090905@bitfrost.no> <5322B907.6070506@allunix.ru> <5322BFEA.2030507@bitfrost.no> <9AC6995B-7134-40DC-BCC1-25D99EC4D022@gmail.com> In-Reply-To: <9AC6995B-7134-40DC-BCC1-25D99EC4D022@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Cc: freebsd-usb@freebsd.org X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Mar 2014 04:07:59 -0000 17.03.2014 3:27, Warner Losh пишет: > On Mar 14, 2014, at 2:38 AM, Hans Petter Selasky 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 >>>>> >>>>> >>>>> Features2=0x2001 >>>>> AMD Features=0xea500800 >>>>> AMD Features2=0x1f >>>>> real memory = 3221225472 (3072 MB) >>>>> avail memory = 2743922688 (2616 MB) >>>>> Event timer "LAPIC" quality 400 >>>>> ACPI APIC Table: >>>>> 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 irqs 0-23 on motherboard >>>>> kbd1 at kbdmux0 >>>>> random: initialized >>>>> acpi0: on motherboard >>>>> acpi0: Power Button (fixed) >>>>> acpi0: reservation of 0, 1000 (3) failed >>>>> cpu0: on acpi0 >>>>> cpu1: on acpi0 >>>>> atrtc0: port 0x70-0x71 irq 8 on acpi0 >>>>> Event timer "RTC" frequency 32768 Hz quality 0 >>>>> attimer0: 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: port 0x62,0x66 on acpi0 >>>>> acpi_lid0: on acpi0 >>>>> acpi_button0: on acpi0 >>>>> acpi_button1: on acpi0 >>>>> pcib0: port 0xcf8-0xcff on acpi0 >>>>> pci0: on pcib0 >>>>> pcib1: at device 1.0 on pci0 >>>>> pci1: on pcib1 >>>>> vgapci0: port 0x9000-0x90ff mem >>>>> 0xc8000000-0xcfffffff,0xc0100000-0xc010ffff irq 17 at device 5.0 on pci1 >>>>> vgapci0: Boot video device >>>>> pcib2: 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: on pcib2 >>>>> pcib3: 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: on pcib3 >>>>> pci0: at device 20.0 (no driver attached) >>>>> atapci0: port >>>>> 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0x8410-0x841f irq 16 at device 20.1 >>>>> on pci0 >>>>> ata0: at channel 0 on atapci0 >>>>> ata1: at channel 1 on atapci0 >>>>> hdac0: mem 0xc0000000-0xc0003fff irq 16 at >>>>> device 20.2 on pci0 >>>>> hdac0: Device stuck in reset >>>>> isab0: at device 20.3 on pci0 >>>>> isa0: on isab0 >>>>> pcib4: at device 20.4 on pci0 >>>>> pci6: on pcib4 >>>>> rl0: port 0xa000-0xa0ff mem >>>>> 0xc0210000-0xc02100ff irq 21 at device 1.0 on pci6 >>>>> miibus0: on rl0 >>>>> rlphy0: PHY 0 on miibus0 >>>>> rlphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto >>>>> rl0: Ethernet address: 00:16:d4:55:3d:e8 >>>>> ath0: 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: mem 0xc0211000-0xc0211fff irq 20 at device >>>>> 4.0 on pci6 >>>>> cardbus0: on cbb0 >>>>> pccard0: <16-bit PCCard bus> on cbb0 >>>>> pci6: at device 4.1 (no driver attached) >>>>> sdhci_pci0: mem 0xc0210800-0xc02108ff irq 23 at device >>>>> 4.2 on pci6 >>>>> sdhci_pci0: 1 slot(s) allocated >>>>> pci6: at device 4.3 (no driver attached) >>>>> sdhci_pci1: at device 4.4 on pci6 >>>>> sdhci_pci1: 1 slot(s) allocated >>>>> acpi_tz0: on acpi0 >>>>> atkbdc0: port 0x60,0x64 irq 1 on acpi0 >>>>> atkbd0: irq 1 on atkbdc0 >>>>> kbd0 at atkbd0 >>>>> atkbd0: [GIANT-LOCKED] >>>>> psm0: irq 12 on atkbdc0 >>>>> psm0: [GIANT-LOCKED] >>>>> psm0: model Generic PS/2 mouse, device ID 0 >>>>> battery0: on acpi0 >>>>> acpi_acad0: on acpi0 >>>>> pmtimer0 on isa0 >>>>> orm0: at iomem 0xc0000-0xcefff,0xcf000-0xcffff pnpid >>>>> ORM0000 on isa0 >>>>> sc0: at flags 0x100 on isa0 >>>>> sc0: VGA <16 virtual consoles, flags=0x300> >>>>> vga0: at port 0x3c0-0x3df iomem 0xa0000-0xbffff on >>>>> isa0 >>>>> ppc0: parallel port not found. >>>>> powernow0: on cpu0 >>>>> powernow1: on cpu1 >>>>> Timecounters tick every 1.000 msec >>>>> random: unblocking device. >>>>> cardbus0: Expecting link target, got 0xff >>>>> cardbus0: Expecting link target, got 0xff >>>>> uhci0: port 0xa100-0xa11f irq 20 at device >>>>> 0.0 on cardbus0 >>>>> ada0 at ata0 bus 0 scbus0 target 0 lun 0 >>>>> ada0: 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: 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: port 0xa120-0xa13f irq 20 at device >>>>> 0.1 on cardbus0 >>>>> ugen0.1: at usbus0 >>>>> uhub0: 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: mem 0xc0212000-0xc02120ff irq 20 >>>>> at device 0.2 on cardbus0 >>>>> ehci0: VIA-quirk applied >>>>> usbus2: EHCI version 1.0 >>>>> ugen1.1: at usbus1 >>>>> uhub1: 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: at usbus2 >>>>> uhub2: 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.