From owner-freebsd-current@FreeBSD.ORG Sun Jun 15 15:59:48 2003 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 618) id 4E9DD37B404; Sun, 15 Jun 2003 15:59:48 -0700 (PDT) To: current@freebsd.org Date: Sun, 15 Jun 2003 15:59:48 -0700 (PDT) X-Mailer: ELM [version 2.4ME+ PL54 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Message-Id: <20030615225948.4E9DD37B404@hub.freebsd.org> From: wpaul@FreeBSD.ORG (Bill Paul) cc: ticso@cicely9.cicely.de Subject: Possible EHCI bugs X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Jun 2003 22:59:48 -0000 I was recently contacted by an individual at Transmeta who was trying to use FreeBSD current with a board containing an EHCI USB controller and encountered some problems with it. He original intent was to use FreeBSD's USB 2.0 support and the if_axe driver to help debug a problem with said hardware combination with another OS which shall remain nameless. Along the way, he discovered the following: - The USB_ATTACH() routine in if_axe.c would lead to a panic because uaa->iface was NULL. I consider this a bit peculiar because a) with my own test setup (my laptop, with UHCI controller), uaa->iface is always populated, and b) uaa->iface is set to something during the USB_PROBE() routine (it must be, otherwise the probe would fail). I worked around this by grabbing the interface handle using usbd_device2interface_handle(), but having the EHCI driver behave inconsistently with respect to the UHCI and OHCI driver seems a bit counterintuitive. - The system panics under load. In this case, the load was induced by running bonnie on an NFS filesystem mount over the axe0 interface. Below is the console output with stack trace: stray irq 7 Copyright (c) 1992-2003 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 5.1-CURRENT #3: Fri Jun 13 00:40:59 PDT 2003 root@freebsd-maddox.transmeta.com:/usr/src/sys/i386/compile/EHCI Preloaded elf kernel "/boot/kernel/kernel" at 0xc0722000. Preloaded elf module "/boot/kernel/acpi.ko" at 0xc0722294. Timecounter "i8254" frequency 1193182 Hz Timecounter "TSC" frequency 800032593 Hz CPU: Transmeta Proprietary/Confidential-NDA Required (800.03-MHz 686-class CPU) Origin = "GenuineTMx86" Id = 0xf24 real memory = 233766912 (222 MB) avail memory = 219463680 (209 MB) npx0: on motherboard npx0: INT 16 interface acpi0: on motherboard pcibios: BIOS version 2.10 Using $PIR table, 12 entries at 0xc00fdf00 ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT acpi0: power button is handled as a fixed feature programming model. acpi0: sleep button is handled as a fixed feature programming model. Timecounter "ACPI-safe" frequency 3579545 Hz ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT acpi_timer0: <32-bit timer at 3.579545MHz> port 0x8008-0x800b on acpi0 acpi_cpu0: on acpi0 acpi_tz0: on acpi0 acpi_button0: on acpi0 pcib0: port 0xcf8-0xcff on acpi0 pci0: on pcib0 pcib0: slot 4 INTA is routed to irq 11 pcib0: slot 14 INTB is routed to irq 10 pcib0: slot 15 INTA is routed to irq 11 pcib0: slot 15 INTB is routed to irq 10 pcib0: slot 15 INTD is routed to irq 7 pcib1: at device 1.0 on pci0 pci1: on pcib1 pcib1: slot 0 INTA is routed to irq 11 pci1: at device 0.0 (no driver attached) pcib2: at device 2.0 on pci0 pci2: on pcib2 isab0: at device 3.0 on pci0 isa0: on isab0 pci0: at device 3.1 (no driver attached) pci0: at device 4.0 (no driver attached) atapci0: port 0x80a0-0x80af,0x374-0x377,0x170-0x17f,0x3f4-0x3f7,0x1f0-0x1ff at device 14.0 on pci0 ata0: at 0x1f0 irq 14 on atapci0 ata1: at 0x170 irq 15 on atapci0 pci0: at device 14.1 (no driver attached) ohci0: mem 0xe0000-0xe0fff irq 11 at device 15.0 on pci0 usb0: OHCI version 1.0, legacy support usb0: SMM does not respond, resetting usb0: on ohci0 usb0: USB revision 1.0 uhub0: AcerLabs OHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub0: 2 ports with 2 removable, self powered uhub0: device problem, disabling port 2 ohci1: mem 0xe8002000-0xe8002fff irq 10 at device 15.1 on pci0 usb1: OHCI version 1.0, legacy support usb1: on ohci1 usb1: USB revision 1.0 uhub1: AcerLabs OHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub1: 2 ports with 2 removable, self powered ehci0: mem 0xe8003400-0xe80034ff irq 7 at device 15.3 on pci0 ehci_pci_attach: companion usb0 ehci_pci_attach: companion usb1 usb2: EHCI version 1.0 usb2: companion controllers, 2 ports each: usb0 usb1 usb2: on ehci0 usb2: USB revision 2.0 uhub2: AcerLabs EHCI root hub, class 9/0, rev 2.00/1.00, addr 1 uhub2: 6 ports with 6 removable, self powered ### axe_attach: uaa->iface = 0xc2281360, uaa->device = 0xc22dec00 ### axe_attach: sc->axe_iface = 0xc22813a0 ### axe_attach: id = 0xc22dcb89 axe0: D-Link 10/100 ethernet adapter, rev 2.00/0.01, addr 2 axe0: phyIDs: 0xe0 0x4 axe0: Ethernet address: 00:40:05:8f:50:73 axe0: phy readreg: phy: 0x0 reg: 0x1 val: 0x7809 axe0: phy readreg: phy: 0x0 reg: 0x1 val: 0x780d axe0: phy readreg: phy: 0x0 reg: 0x2 val: 0x40 axe0: phy readreg: phy: 0x0 reg: 0x3 val: 0x61e4 miibus0: on axe0 bmtphy0: on miibus0 axe0: phy readreg: phy: 0x0 reg: 0x0 val: 0x3000 axe0: phy readreg: phy: 0x0 reg: 0x1 val: 0x7809 bmtphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.AC__._STA] (Node 0xc227d4c0), AE_AML_REGION_LIMIT acpi_acad0: on acpi0 ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-1287: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT ACPI-0175: *** Error: Method execution failed [\_SB_.PCI0.BATT._STA] (Node 0xc227d400), AE_AML_REGION_LIMIT acpi_cmbat0: on acpi0 atkbdc0: port 0x64,0x60 irq 1 on acpi0 atkbd0: flags 0x1 irq 1 on atkbdc0 kbd0 at atkbd0 psm0: irq 12 on atkbdc0 psm0: model Generic PS/2 mouse, device ID 0 sio0 port 0x3f8-0x3ff irq 4 on acpi0 sio0: type 16550A, console ppc0 port 0x278-0x27f irq 5 on acpi0 ppc0: Generic chipset (EPP/NIBBLE) in COMPATIBLE mode ppbus0: on ppc0 plip0: on ppbus0 lpt0: on ppbus0 lpt0: Interrupt-driven port ppi0: on ppbus0 fdc0: port 0x3f7,0x3f0-0x3f5 irq 6 drq 2 on acpi0 fdc0: FIFO enabled, 8 bytes threshold fd0: <1440-KB 3.5" drive> on fdc0 drive 0 orm0: