From owner-freebsd-i386@FreeBSD.ORG Sun Aug 12 22:10:03 2012 Return-Path: Delivered-To: freebsd-i386@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 01CFC106566C for ; Sun, 12 Aug 2012 22:10:03 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 7B7288FC0A for ; Sun, 12 Aug 2012 22:10:02 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q7CMA26s080237 for ; Sun, 12 Aug 2012 22:10:02 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q7CMA2xC080236; Sun, 12 Aug 2012 22:10:02 GMT (envelope-from gnats) Resent-Date: Sun, 12 Aug 2012 22:10:02 GMT Resent-Message-Id: <201208122210.q7CMA2xC080236@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-i386@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Yuval Prag Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 23970106564A for ; Sun, 12 Aug 2012 22:08:22 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from red.freebsd.org (red.freebsd.org [IPv6:2001:4f8:fff6::22]) by mx1.freebsd.org (Postfix) with ESMTP id 02CB48FC08 for ; Sun, 12 Aug 2012 22:08:22 +0000 (UTC) Received: from red.freebsd.org (localhost [127.0.0.1]) by red.freebsd.org (8.14.4/8.14.4) with ESMTP id q7CM8L85060671 for ; Sun, 12 Aug 2012 22:08:21 GMT (envelope-from nobody@red.freebsd.org) Received: (from nobody@localhost) by red.freebsd.org (8.14.4/8.14.4/Submit) id q7CM8LuA060670; Sun, 12 Aug 2012 22:08:21 GMT (envelope-from nobody) Message-Id: <201208122208.q7CM8LuA060670@red.freebsd.org> Date: Sun, 12 Aug 2012 22:08:21 GMT From: Yuval Prag To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Cc: Subject: i386/170573: Intel 2200BG iwi NIC hangs with need multicast callback and firmware error X-BeenThere: freebsd-i386@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: I386-specific issues for FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Aug 2012 22:10:03 -0000 >Number: 170573 >Category: i386 >Synopsis: Intel 2200BG iwi NIC hangs with need multicast callback and firmware error >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-i386 >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Aug 12 22:10:02 UTC 2012 >Closed-Date: >Last-Modified: >Originator: Yuval Prag >Release: FreeBSD 8.3-RELEASE >Organization: - >Environment: FreeBSD .scu.edu 8.3-RELEASE FreeBSD 8.3-RELEASE #3: Sun Jul 29 12:09:04 PDT 2012 root@.scu.edu:/usr/src/sys/i386/compile/GENERIC i386 on ASUS M3Np Intel centrino(TM) (ICH4) notebook. >Description: Intel PRO/Wireless 2200BG NIC hangs after initial network is associated ifconfig show: iwi0: flags=8843 metric 0 mtu 2290 ether 00:0e:35:58:d4:23 media: IEEE 802.11 Wireless Ethernet autoselect mode 11g status: associated wlan0: flags=8843 metric 0 mtu 1500 ether 00:0e:35:58:d4:23 inet 172.16.19.211 netmask 0xfffffc00 broadcast 172.16.19.255 media: IEEE 802.11 Wireless Ethernet autoselect mode 11g status: associated ssid SCUOrientation channel 6 (2437 MHz 11g) bssid e8:04:62:0b:9d:c5 country US authmode OPEN privacy OFF txpower 0 bmiss 24 scanvalid 60 protmode CTS wme bintval 102 ping to the router works with intermittent failures in the form of "sento: Network is down" and than it hangs usually after the 15th packet send... a restart the NIC device with "/etc/rc.d/netif restart" will cause the system to reboot! the the NIC firmware and driver version driver 1.72 firmware 3.1(from the installation ISO dvd. dmesg output : opyright (c) 1992-2012 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 8.3-RELEASE #3: Sun Jul 29 12:09:04 PDT 2012 yprag1@.scu.edu:/usr/src/sys/i386/compile/GENERIC i386 can't re-use a leaf (ipw)! // from /boot/loader.conf reloaders... can't re-use a leaf (iwi)! module_register: module pci/ipw already exists! Module pci/ipw failed to register: 17 module_register: module pci/iwi already exists! Module pci/iwi failed to register: 17 Timecounter "i8254" frequency 1193182 Hz quality 0 CPU: Intel(R) Pentium(R) M processor 1.50GHz (600.02-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0x6d6 Family = 6 Model = d Stepping = 6 Features=0xafe9fbbf Features2=0x180 real memory = 1073741824 (1024 MB) avail memory = 998502400 (952 MB) ACPI APIC Table: ioapic0: Changing APIC ID to 1 ioapic0 irqs 0-23 on motherboard ipw_bss: You need to read the LICENSE file in /usr/share/doc/legal/intel_ipw/. ipw_bss: If you agree with the license, set legal.intel_ipw.license_ack=1 in /boot/load er.conf. module_register_init: MOD_LOAD (ipw_bss_fw, 0xc0687190, 0) error 1 ipw_ibss: You need to read the LICENSE file in /usr/share/doc/legal/intel_ipw/. ipw_ibss: If you agree with the license, set legal.intel_ipw.license_ack=1 in /boot/loa der.conf. module_register_init: MOD_LOAD (ipw_ibss_fw, 0xc0687250, 0) error 1 ipw_monitor: You need to read the LICENSE file in /usr/share/doc/legal/intel_ipw/. ipw_monitor: If you agree with the license, set legal.intel_ipw.license_ack=1 in /boot/ loader.conf. module_register_init: MOD_LOAD (ipw_monitor_fw, 0xc0687310, 0) error 1 ispfw: registered firmware ispfw: registered firmware ispfw: registered firmware ispfw: registered firmware ispfw: registered firmware acpi_ec0: port 0x62,0x66 on acpi0 pcib0: port 0xcf8-0xcff on acpi0 pci0: on pcib0 pci0: at device 0.1 (no driver attached) pci0: at device 0.3 (no driver attached) vgapci0: port 0xdc00-0xdc07 mem 0xf0000000-0xf7ffffff,0xfeb00000-0xfeb7ffff irq 16 at device 2.0 on pci0 agp0: on vgapci0 agp0: aperture size is 128M, detected 32636k stolen memory vgapci1: mem 0xe8000000-0xefffffff, 0xfea80000-0xfeafffff at de vice 2.1 on pci0 uhci0: port 0xd480-0xd49f irq 16 at device 29.0 on pci0 uhci0: [ITHREAD] uhci0: LegSup = 0x2f00 usbus0: on uhci0 uhci1: port 0xd800-0xd81f irq 19 at device 29.1 on pci0 uhci1: [ITHREAD] uhci1: LegSup = 0x2f00 usbus1: on uhci1 uhci2: port 0xd880-0xd89f irq 18 at device 29.2 on pci0 uhci2: [ITHREAD] uhci2: LegSup = 0x2f00 usbus2: on uhci2 ehci0: mem 0xfebff800-0xfebffbff irq 23 at device 29.7 on pci0 ehci0: [ITHREAD] usbus3: EHCI version 1.0 usbus3: on ehci0 pcib1: at device 30.0 on pci0 pci1: on pcib1 iwi0: mem 0xfe8fd000-0xfe8fdfff irq 18 at device 4.0 on pci1 iwi0: [ITHREAD] cbb0: at device 5.0 on pci1 cardbus0: on cbb0 pccard0: <16-bit PCCard bus> on cbb0 cbb0: [FILTER] fwohci0: mem 0xfe8ff000-0xfe8ff7ff irq 16 at device 5.1 on pci1 fwohci0: [ITHREAD] fwohci0: OHCI version 1.0 (ROM=1) fwohci0: No. of Isochronous channels is 4. fwohci0: EUI64 00:e0:18:00:03:1e:09:af fwohci0: Phy 1394a available S400, 2 ports. fwohci0: Link S400, max_rec 2048 bytes. firewire0: on fwohci0 fwe0: on firewire0 if_fwe0: Fake Ethernet address: 02:e0:18:1e:09:af fwe0: Ethernet address: 02:e0:18:1e:09:af fwip0: on firewire0 fwip0: Firewire address: 00:e0:18:00:03:1e:09:af @ 0xfffe00000000, S400, maxrec 2048 sbp0: on firewire0 dcons_crom0: on firewire0 dcons_crom0: bus_addr 0x14ac000 fwohci0: Initiate bus reset fwohci0: fwohci_intr_core: BUS reset fwohci0: fwohci_intr_core: node_id=0x00000000, SelfID Count=1, CYCLEMASTER mode fxp0: port 0xcc00-0xcc3f mem 0xfe8fe000-0xfe8fefff irq 20 at device 8.0 on pci1 miibus0: on fxp0 inphy0: PHY 1 on miibus0 inphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto, auto-flow fxp0: Ethernet address: 00:11:2f:58:1d:63 fxp0: [ITHREAD] isab0: at device 31.0 on pci0 isa0: on isab0 atapci0: port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xffa0-0xffaf at device 31. 1 on pci0 ata0: at channel 0 on atapci0 ata0: [ITHREAD] ata1: at channel 1 on atapci0 ata1: [ITHREAD] pcm0: port 0xe000-0xe0ff,0xe100-0xe13f at device 31.5 on pci0 pcm0: [ITHREAD] pcm0: pci0: at device 31.6 (no driver attached) acpi_button0: on acpi0 acpi_lid0: on acpi0 acpi_tz0: on acpi0 acpi_acad0: on acpi0 battery0: on acpi0 battery1: on acpi0 atrtc0: port 0x70-0x71 irq 8 on acpi0 atkbdc0: port 0x60,0x64 irq 1 on acpi0 atkbd0: irq 1 on atkbdc0 kbd0 at atkbd0 atkbd0: [GIANT-LOCKED] atkbd0: [ITHREAD] psm0: irq 12 on atkbdc0 psm0: [GIANT-LOCKED] psm0: [ITHREAD] psm0: model Generic PS/2 mouse, device ID 0 ppc0: port 0x378-0x37f,0x778-0x77f irq 7 drq 3 on acpi0 ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/8 bytes threshold ppc0: [ITHREAD] ppbus0: on ppc0 plip0: on ppbus0 plip0: [ITHREAD] lpt0: [ITHREAD] lpt0: Interrupt-driven port ppi0: on ppbus0 pmtimer0 on isa0 orm0: at iomem 0xc0000-0xccfff,0xcd000-0xce7ff 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 uart1: <16550 or compatible> at port 0x2f8-0x2ff irq 3 on isa0 uart1: [FILTER] est0: on cpu0 p4tcc0: on cpu0 Timecounter "TSC" frequency 600024231 Hz quality 800 Timecounters tick every 1.000 msec firewire0: 1 nodes, maxhop <= 0 cable IRM irm(0) (me) firewire0: bus manager 0 usbus0: 12Mbps Full Speed USB v1.0 usbus1: 12Mbps Full Speed USB v1.0 usbus2: 12Mbps Full Speed USB v1.0 usbus3: 480Mbps High Speed USB v2.0 ugen0.1: at usbus0 uhub0: on usbus0 ugen1.1: at usbus1 uhub1: on usbus1 ugen2.1: at usbus2 uhub2: on usbus2 ugen3.1: at usbus3 uhub3: on usbus3 ad0: 38204MB at ata0-master UDMA100 uhub0: 2 ports with 2 removable, self powered uhub1: 2 ports with 2 removable, self powered uhub2: 2 ports with 2 removable, self powered acd0: DVDR at ata1-master UDMA33 uhub3: 6 ports with 6 removable, self powered Trying to mount root from ufs:/dev/ad0s1a wlan0: Ethernet address: 00:0e:35:58:d4:23 iwi0: need multicast update callback iwi0: need multicast update callback iwi0: need multicast update callback iwi0: firmware error >How-To-Repeat: ping the router and or try to /etc/rc.d/netif restart" will cause the system to reboot! >Fix: Patch attached with submission follows: Copyright (c) 1992-2012 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 8.3-RELEASE #3: Sun Jul 29 12:09:04 PDT 2012 yprag1@.scu.edu:/usr/src/sys/i386/compile/GENERIC i386 can't re-use a leaf (ipw)! can't re-use a leaf (iwi)! module_register: module pci/ipw already exists! Module pci/ipw failed to register: 17 module_register: module pci/iwi already exists! Module pci/iwi failed to register: 17 Timecounter "i8254" frequency 1193182 Hz quality 0 CPU: Intel(R) Pentium(R) M processor 1.50GHz (600.02-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0x6d6 Family = 6 Model = d Stepping = 6 Features=0xafe9fbbf Features2=0x180 real memory = 1073741824 (1024 MB) avail memory = 998502400 (952 MB) ACPI APIC Table: ioapic0: Changing APIC ID to 1 ioapic0 irqs 0-23 on motherboard ipw_bss: You need to read the LICENSE file in /usr/share/doc/legal/intel_ipw/. ipw_bss: If you agree with the license, set legal.intel_ipw.license_ack=1 in /boot/loader.conf. module_register_init: MOD_LOAD (ipw_bss_fw, 0xc0687190, 0) error 1 ipw_ibss: You need to read the LICENSE file in /usr/share/doc/legal/intel_ipw/. ipw_ibss: If you agree with the license, set legal.intel_ipw.license_ack=1 in /boot/loader.conf. module_register_init: MOD_LOAD (ipw_ibss_fw, 0xc0687250, 0) error 1 ipw_monitor: You need to read the LICENSE file in /usr/share/doc/legal/intel_ipw/. ipw_monitor: If you agree with the license, set legal.intel_ipw.license_ack=1 in /boot/loader.conf. module_register_init: MOD_LOAD (ipw_monitor_fw, 0xc0687310, 0) error 1 ispfw: registered firmware ispfw: registered firmware ispfw: registered firmware ispfw: registered firmware ispfw: registered firmware ispfw: registered firmware ispfw: registered firmware ispfw: registered firmware ispfw: registered firmware ispfw: registered firmware ispfw: registered firmware ispfw: registered firmware ispfw: registered firmware ispfw: registered firmware kbd1 at kbdmux0 acpi0: on motherboard acpi0: [ITHREAD] acpi0: Power Button (fixed) acpi0: reservation of 0, a0000 (3) failed acpi0: reservation of 100000, 3df00000 (3) failed Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000 acpi_timer0: <24-bit timer at 3.579545MHz> port 0xe408-0xe40b on acpi0 cpu0: on acpi0 acpi_ec0: port 0x62,0x66 on acpi0 pcib0: port 0xcf8-0xcff on acpi0 pci0: on pcib0 pci0: at device 0.1 (no driver attached) pci0: at device 0.3 (no driver attached) vgapci0: port 0xdc00-0xdc07 mem 0xf0000000-0xf7ffffff,0xfeb00000-0xfeb7ffff irq 16 at device 2.0 on pci0 agp0: on vgapci0 agp0: aperture size is 128M, detected 32636k stolen memory vgapci1: mem 0xe8000000-0xefffffff,0xfea80000-0xfeafffff at device 2.1 on pci0 uhci0: port 0xd480-0xd49f irq 16 at device 29.0 on pci0 uhci0: [ITHREAD] uhci0: LegSup = 0x2f00 usbus0: on uhci0 uhci1: port 0xd800-0xd81f irq 19 at device 29.1 on pci0 uhci1: [ITHREAD] uhci1: LegSup = 0x2f00 usbus1: on uhci1 uhci2: port 0xd880-0xd89f irq 18 at device 29.2 on pci0 uhci2: [ITHREAD] uhci2: LegSup = 0x2f00 usbus2: on uhci2 ehci0: mem 0xfebff800-0xfebffbff irq 23 at device 29.7 on pci0 ehci0: [ITHREAD] usbus3: EHCI version 1.0 usbus3: on ehci0 pcib1: at device 30.0 on pci0 pci1: on pcib1 iwi0: mem 0xfe8fd000-0xfe8fdfff irq 18 at device 4.0 on pci1 iwi0: [ITHREAD] cbb0: at device 5.0 on pci1 cardbus0: on cbb0 pccard0: <16-bit PCCard bus> on cbb0 cbb0: [FILTER] fwohci0: mem 0xfe8ff000-0xfe8ff7ff irq 16 at device 5.1 on pci1 fwohci0: [ITHREAD] fwohci0: OHCI version 1.0 (ROM=1) fwohci0: No. of Isochronous channels is 4. fwohci0: EUI64 00:e0:18:00:03:1e:09:af fwohci0: Phy 1394a available S400, 2 ports. fwohci0: Link S400, max_rec 2048 bytes. firewire0: on fwohci0 fwe0: on firewire0 if_fwe0: Fake Ethernet address: 02:e0:18:1e:09:af fwe0: Ethernet address: 02:e0:18:1e:09:af fwip0: on firewire0 fwip0: Firewire address: 00:e0:18:00:03:1e:09:af @ 0xfffe00000000, S400, maxrec 2048 sbp0: on firewire0 dcons_crom0: on firewire0 dcons_crom0: bus_addr 0x14ac000 fwohci0: Initiate bus reset fwohci0: fwohci_intr_core: BUS reset fwohci0: fwohci_intr_core: node_id=0x00000000, SelfID Count=1, CYCLEMASTER mode fxp0: port 0xcc00-0xcc3f mem 0xfe8fe000-0xfe8fefff irq 20 at device 8.0 on pci1 miibus0: on fxp0 inphy0: PHY 1 on miibus0 inphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto, auto-flow fxp0: Ethernet address: 00:11:2f:58:1d:63 fxp0: [ITHREAD] isab0: at device 31.0 on pci0 isa0: on isab0 atapci0: port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xffa0-0xffaf at device 31.1 on pci0 ata0: at channel 0 on atapci0 ata0: [ITHREAD] ata1: at channel 1 on atapci0 ata1: [ITHREAD] pcm0: port 0xe000-0xe0ff,0xe100-0xe13f at device 31.5 on pci0 pcm0: [ITHREAD] pcm0: pci0: at device 31.6 (no driver attached) acpi_button0: on acpi0 acpi_lid0: on acpi0 acpi_tz0: on acpi0 acpi_acad0: on acpi0 battery0: on acpi0 battery1: on acpi0 atrtc0: port 0x70-0x71 irq 8 on acpi0 atkbdc0: port 0x60,0x64 irq 1 on acpi0 atkbd0: irq 1 on atkbdc0 kbd0 at atkbd0 atkbd0: [GIANT-LOCKED] atkbd0: [ITHREAD] psm0: irq 12 on atkbdc0 psm0: [GIANT-LOCKED] psm0: [ITHREAD] psm0: model Generic PS/2 mouse, device ID 0 ppc0: port 0x378-0x37f,0x778-0x77f irq 7 drq 3 on acpi0 ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/8 bytes threshold ppc0: [ITHREAD] ppbus0: on ppc0 plip0: on ppbus0 plip0: [ITHREAD] lpt0: on ppbus0 lpt0: [ITHREAD] lpt0: Interrupt-driven port ppi0: on ppbus0 pmtimer0 on isa0 orm0: at iomem 0xc0000-0xccfff,0xcd000-0xce7ff 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 uart1: <16550 or compatible> at port 0x2f8-0x2ff irq 3 on isa0 uart1: [FILTER] est0: on cpu0 p4tcc0: on cpu0 Timecounter "TSC" frequency 600024231 Hz quality 800 Timecounters tick every 1.000 msec firewire0: 1 nodes, maxhop <= 0 cable IRM irm(0) (me) firewire0: bus manager 0 usbus0: 12Mbps Full Speed USB v1.0 usbus1: 12Mbps Full Speed USB v1.0 usbus2: 12Mbps Full Speed USB v1.0 usbus3: 480Mbps High Speed USB v2.0 ugen0.1: at usbus0 uhub0: on usbus0 ugen1.1: at usbus1 uhub1: on usbus1 ugen2.1: at usbus2 uhub2: on usbus2 ugen3.1: at usbus3 uhub3: on usbus3 ad0: 38204MB at ata0-master UDMA100 uhub0: 2 ports with 2 removable, self powered uhub1: 2 ports with 2 removable, self powered uhub2: 2 ports with 2 removable, self powered acd0: DVDR at ata1-master UDMA33 uhub3: 6 ports with 6 removable, self powered Trying to mount root from ufs:/dev/ad0s1a battery0: critically low charge! wlan0: Ethernet address: 00:0e:35:58:d4:23 iwi0: need multicast update callback iwi0: need multicast update callback iwi0: need multicast update callback iwi0: firmware error >Release-Note: >Audit-Trail: >Unformatted: From owner-freebsd-i386@FreeBSD.ORG Mon Aug 13 11:07:09 2012 Return-Path: Delivered-To: freebsd-i386@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 675F41065672 for ; Mon, 13 Aug 2012 11:07:09 +0000 (UTC) (envelope-from owner-bugmaster@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 516428FC16 for ; Mon, 13 Aug 2012 11:07:09 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q7DB793D007116 for ; Mon, 13 Aug 2012 11:07:09 GMT (envelope-from owner-bugmaster@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q7DB78s0007114 for freebsd-i386@FreeBSD.org; Mon, 13 Aug 2012 11:07:08 GMT (envelope-from owner-bugmaster@FreeBSD.org) Date: Mon, 13 Aug 2012 11:07:08 GMT Message-Id: <201208131107.q7DB78s0007114@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: gnats set sender to owner-bugmaster@FreeBSD.org using -f From: FreeBSD bugmaster To: freebsd-i386@FreeBSD.org Cc: Subject: Current problem reports assigned to freebsd-i386@FreeBSD.org X-BeenThere: freebsd-i386@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: I386-specific issues for FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Aug 2012 11:07:09 -0000 Note: to view an individual PR, use: http://www.freebsd.org/cgi/query-pr.cgi?pr=(number). The following is a listing of current problems submitted by FreeBSD users. These represent problem reports covering all versions including experimental development code and obsolete releases. S Tracker Resp. Description -------------------------------------------------------------------------------- o i386/170573 i386 Intel 2200BG iwi NIC hangs with need multicast callbac f i386/170482 i386 Installing world fails trying to copy loader.sym to lo o i386/170356 i386 Installing freebsd on Hyper-V server 2008 R2 o i386/169888 i386 [install] 9.0 i386 will not install on a Dell Dimensio o i386/169455 i386 [boot] BTX loader panics on Opteron3280 o i386/167670 i386 [boot] Laptop won't boot from FreeBSD iso, but will fr o i386/165906 i386 [panic] cannot install FreeBSD 9.0 on Dell PowerEdge 1 o i386/165561 i386 [hang] K8N890M-M Boot Hang o i386/165452 i386 [boot] FreeBSD's system installer stops when setting u o i386/165434 i386 [boot] Install fail Error 19 o i386/158653 i386 installing PC-BSD 9 Current with legacy USB Keyboard d o i386/158200 i386 wifi doesn't work on Acer AO751h, maybe WMI needs to b o i386/156229 i386 [hang] Server IBM x3400 is hangs with option SMP in Ke o i386/155695 i386 AMD Vision ultimate notebook HP Pavilion DV6 3109ER ov o i386/154578 i386 [boot] BTX Loader hangs > 1,5 min after listing BIOS d o i386/151122 i386 [boot] BTX 1.02 crashes on boot o i386/150766 i386 Dell Vostro 3700 siffle sous FreeBSD / Dell Vostro 370 o i386/149647 i386 [panic] Dell Inspiron 530 (FX09) panic at boot with 8. o i386/148848 i386 [hang] Load freezing at boot on HP Mini 311 o i386/148624 i386 PERC H200 Controller on Dell R610 Not recognized o i386/148509 i386 [boot] [patch] Improvements to i386/boot2's comments o i386/147458 i386 [boot] FreeBSD 8 can't boot from dvd, unless dvd is ex o i386/146446 i386 [install] FreeBSD 8.0 installation hangs at an early s o i386/146221 i386 [boot] incompatibility of the BTX with toshiba tecra R o i386/145718 i386 [est] [patch] fix freq calculation from MSR for CPUs w o i386/145079 i386 [boot] BTX halted on P3 server f i386/144956 i386 [boot] Early minute-plus delay in boot on Intel Nehale o i386/143587 i386 [boot] [hang] BTX 1.02 freezes upon assigning Bios C d o i386/142946 i386 [boot] Can't boot installation DVD. BTX halted o i386/142421 i386 [ata] optical drives not found o i386/142190 i386 [boot] BTX Loader issue on Gigabyte Motherboard o i386/142108 i386 [panic] vm_fault: fault on nofault entry, addr: c32a40 o i386/141675 i386 [boot] memory and BTX halted on Sunfire X4170 o i386/141470 i386 [boot] BTX halted immediatly on selecting any of the b o i386/141468 i386 [boot] FreeBSD 8.0 boot manager can cause disk not pro o i386/140655 i386 [panic] Lenovo X300: fatal trap 12 after /sbin/halt -p o i386/140645 i386 [irq] High INTERRUPT rate on CPU 0 o i386/140448 i386 [boot] BTX loader hangs after displaying BIOS drives o i386/140268 i386 [install] 8.0-RC* does not install on MSI MS-7255 [reg o i386/139999 i386 [panic] random freeze and crash o i386/139743 i386 [ichsmb] [patch] ichsmb driver doesn't detects SMB bus o i386/139115 i386 [cpufreq] low cpu frequency reported [regression] o i386/138948 i386 [twa] [regression] da0: Fi o i386/138126 i386 [panic] Kernel panic trap 12 on bigger load o i386/133727 i386 chars [[[[[[[[[[[[[ occur during install process (sett o i386/132230 i386 [boot] [reboot] 7.1-RELEASE /boot/loader non-functiona o i386/131426 i386 hald makes cdrom fail o i386/130110 i386 [boot] BTX-Halted - booting with SAS/SATA Controller o i386/129550 i386 [pae] [kqueue] crash with PAE kernel o i386/127374 i386 Suspend/Resume with Keystroke only once on Thinkpad T4 o i386/127343 i386 [hang] System locks -- simular to PR 123729 o i386/127337 i386 [boot] FreeBSD 7.1/i386 BTX boot problem on Pavilion d o i386/126666 i386 [boot] [hang] boot failure for nForce 630i / GeForce 7 o i386/125592 i386 [hang] FreeBSD 7 server in hang o i386/124633 i386 [boot] [panic] 7.0 does not boot from CD o i386/124124 i386 [boot] [panic] Page fault while booting livefs iso of o i386/123990 i386 [boot] BTX halted on Thinkpad x60s o i386/79091 i386 [i386] [patch] Small optimization for i386/support.s 58 problems total. From owner-freebsd-i386@FreeBSD.ORG Fri Aug 17 14:50:03 2012 Return-Path: Delivered-To: freebsd-i386@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8B7E9106564A for ; Fri, 17 Aug 2012 14:50:03 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 55EAF8FC0A for ; Fri, 17 Aug 2012 14:50:03 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q7HEo3tB057372 for ; Fri, 17 Aug 2012 14:50:03 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q7HEo3Hj057371; Fri, 17 Aug 2012 14:50:03 GMT (envelope-from gnats) Resent-Date: Fri, 17 Aug 2012 14:50:03 GMT Resent-Message-Id: <201208171450.q7HEo3Hj057371@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-i386@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Ian Lepore Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 76CC51065673 for ; Fri, 17 Aug 2012 14:41:16 +0000 (UTC) (envelope-from ilepore@damnhippie.dyndns.org) Received: from qmta13.emeryville.ca.mail.comcast.net (qmta13.emeryville.ca.mail.comcast.net [76.96.27.243]) by mx1.freebsd.org (Postfix) with ESMTP id 570158FC0A for ; Fri, 17 Aug 2012 14:41:16 +0000 (UTC) Received: from omta24.emeryville.ca.mail.comcast.net ([76.96.30.92]) by qmta13.emeryville.ca.mail.comcast.net with comcast id nqJe1j0041zF43QADqhAml; Fri, 17 Aug 2012 14:41:10 +0000 Received: from damnhippie.dyndns.org ([24.8.232.202]) by omta24.emeryville.ca.mail.comcast.net with comcast id nqh91j00A4NgCEG8kqh9BX; Fri, 17 Aug 2012 14:41:10 +0000 Received: from revolution.hippie.lan (revolution.hippie.lan [172.22.42.240]) by damnhippie.dyndns.org (8.14.3/8.14.3) with ESMTP id q7HEf71w018137 for ; Fri, 17 Aug 2012 08:41:07 -0600 (MDT) (envelope-from ilepore@damnhippie.dyndns.org) Received: (from ilepore@localhost) by revolution.hippie.lan (8.14.5/8.14.4/Submit) id q7HEf7IG015410; Fri, 17 Aug 2012 08:41:07 -0600 (MDT) (envelope-from ilepore) Message-Id: <201208171441.q7HEf7IG015410@revolution.hippie.lan> Date: Fri, 17 Aug 2012 08:41:07 -0600 (MDT) From: Ian Lepore To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: Subject: i386/170705: [patch] AT realtime clock support routines fail on some RTC hardware. X-BeenThere: freebsd-i386@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Ian Lepore List-Id: I386-specific issues for FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Aug 2012 14:50:03 -0000 >Number: 170705 >Category: i386 >Synopsis: [patch] AT realtime clock support routines fail on some RTC hardware. >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-i386 >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri Aug 17 14:50:02 UTC 2012 >Closed-Date: >Last-Modified: >Originator: Ian Lepore >Release: FreeBSD 10.0-CURRENT >Organization: Symmetricom, Inc. >Environment: 10.0-CURRENT FreeBSD 10.0-CURRENT #2 r239193M: Mon Aug 13 11:45:29 MDT 2012 >Description: On some RTC hardware, the RTC interrupt handler (rtcintr() in x86/isa/clock.c) can get stuck in its loop waiting for the RTCIR_PERIOD status bit to become de-asserted in the hardware register. To read RTC hardware registers you first set the index register at port 0x70 to select the register to read, then you read the value from port 0x71. On most hardware you can write to the index register once, then issue multiple subsequent reads to port 0x71 to continuously read new values from the selected register. At some point, the atrtc.c code was enhanced to avoid the expensive outb(0x70,) if it would re-select the same index as last time. It appears that on some hardware, the value in the selected register is latched at the time you select it with a write to 0x70, and then any number of subsequent reads of 0x71 will keep returning the same latched value forever. This is known to happen on systems based on the AMD Geode 500 and CS5536 companion chipset, used on a variety of single-board computers, including the Soekris net5501 series. The atrtc code also contains a delay (implemented by a dummy read of port 0x84) after each access to ports 0x70-71, which is expensive (about 1uS per read) and is not required by modern hardware. The attached patch eliminates this extra IO unless it is specifically enabled with hint.atrtc.0.use_iodelay=1. Finally, the attached patch adds a new routine, atrtc_nmi_enable(), which can be used by drivers which need to enable nmi interrupts. Without this routine, it's possible that a driver directly manipulating the nmi enable bit will conflict with the atrtc driver reading and writing the same port to change rtc index register. There was some mailing-list discussion of this in January 2012, when I first ran into the problem on an industrial single-board computer, and again in August 2012 when the attached patch was shown to fix a problem on a Soekris system. http://lists.freebsd.org/pipermail/freebsd-hackers/2012-January/037217.html http://lists.freebsd.org/pipermail/freebsd-current/2012-August/035868.html >How-To-Repeat: >Fix: Here is the patch for -current and 9. I can provide a patch to 8-stable as well; it's essentially the same patch with small context differences. I've tested this using -current on several systems, recent and old hardware, including manually bumping up the quality score for the rtc event timer to force it to get used, and it seems to work without trouble (and of course I've been testing the same patch at work in 8.2 for a while on a bunch of different hardware). --- atrtc.diff begins here --- Index: sys/isa/rtc.h =================================================================== RCS file: /local/base/FreeBSD-CVS/src/sys/isa/rtc.h,v retrieving revision 1.16.2.1 diff -u -p -r1.16.2.1 rtc.h --- sys/isa/rtc.h 23 Sep 2011 00:51:37 -0000 1.16.2.1 +++ sys/isa/rtc.h 9 Jan 2012 22:04:12 -0000 @@ -117,6 +117,7 @@ extern int atrtcclock_disable; int rtcin(int reg); void atrtc_restore(void); void writertc(int reg, u_char val); +void atrtc_nmi_enable(int enable); #endif #endif /* _I386_ISA_RTC_H_ */ Index: sys/x86/isa/atrtc.c =================================================================== RCS file: /local/base/FreeBSD-CVS/src/sys/x86/isa/atrtc.c,v retrieving revision 1.13.2.1 diff -u -p -r1.13.2.1 atrtc.c --- sys/x86/isa/atrtc.c 23 Sep 2011 00:51:37 -0000 1.13.2.1 +++ sys/x86/isa/atrtc.c 9 Jan 2012 22:04:12 -0000 @@ -55,28 +55,59 @@ __FBSDID("$FreeBSD: src/sys/x86/isa/atrt #define RTC_LOCK mtx_lock_spin(&clock_lock) #define RTC_UNLOCK mtx_unlock_spin(&clock_lock) +/* atrtcclock_disable is set to 1 by apm_attach() or by hint.atrtc.0.clock=0 */ int atrtcclock_disable = 0; -static int rtc_reg = -1; -static u_char rtc_statusa = RTCSA_DIVIDER | RTCSA_NOPROF; -static u_char rtc_statusb = RTCSB_24HR; +static int use_iodelay = 0; /* set from hint.atrtc.0.use_iodelay */ + +#define RTC_REINDEX_REQUIRED 0xffU +#define NMI_ENABLE_BIT 0x80U + +static u_char nmi_enable; +static u_char rtc_reg = RTC_REINDEX_REQUIRED; +static u_char rtc_statusa = RTCSA_DIVIDER | RTCSA_NOPROF; +static u_char rtc_statusb = RTCSB_24HR; + +/* + * Delay after writing to IO_RTC[+1] registers. Modern hardware doesn't + * require this expensive delay, so it's a tuneable that's disabled by default. + */ +static __inline void +rtc_iodelay(void) +{ + if (use_iodelay) + inb(0x84); +} /* * RTC support routines + * + * Most rtc chipsets let you write a value into the index register and then each + * read of the IO register obtains a new value from the indexed location. Others + * behave as if they latch the indexed value when you write to the index, and + * repeated reads keep returning the same value until you write to the index + * register again. atrtc_start() probes for this behavior and leaves rtc_reg + * set to RTC_REINDEX_REQUIRED if reads keep returning the same value. */ +static __inline void +rtcindex(u_char reg) +{ + if (rtc_reg != reg) { + if (rtc_reg != RTC_REINDEX_REQUIRED) + rtc_reg = reg; + outb(IO_RTC, reg | nmi_enable); + rtc_iodelay(); + } +} + int rtcin(int reg) { u_char val; RTC_LOCK; - if (rtc_reg != reg) { - inb(0x84); - outb(IO_RTC, reg); - rtc_reg = reg; - inb(0x84); - } + rtcindex(reg); val = inb(IO_RTC + 1); RTC_UNLOCK; return (val); @@ -87,14 +118,9 @@ writertc(int reg, u_char val) { RTC_LOCK; - if (rtc_reg != reg) { - inb(0x84); - outb(IO_RTC, reg); - rtc_reg = reg; - inb(0x84); - } + rtcindex(reg); outb(IO_RTC + 1, val); - inb(0x84); + rtc_iodelay(); RTC_UNLOCK; } @@ -104,12 +130,31 @@ readrtc(int port) return(bcd2bin(rtcin(port))); } +/* + * At start, probe read-without-reindex behavior. Reading RTC_INTR clears it; + * read until it has a non-zero value, then read it again without re-writing the + * index register. If 2nd read returns a different value it's safe to cache the + * current index with this chipset; enable by changing rtc_reg to current index. + */ static void atrtc_start(void) { + int status; - writertc(RTC_STATUSA, rtc_statusa); + writertc(RTC_STATUSA, RTCSA_DIVIDER | RTCSA_8192); writertc(RTC_STATUSB, RTCSB_24HR); + + RTC_LOCK; + do { + rtcindex(RTC_INTR); + status = inb(IO_RTC+1); + } while (status == 0); + + if (status != inb(IO_RTC+1)) + rtc_reg = RTC_INTR; + RTC_UNLOCK; + + writertc(RTC_STATUSA, RTCSA_DIVIDER | RTCSA_NOPROF); } static void @@ -139,6 +184,17 @@ atrtc_disable_intr(void) } void +atrtc_nmi_enable(int enable) +{ + /* Must not write to 0x70 without a following read or write of 0x71 on + * some chipsets, so do a read. Also, must access a register other than + * the current rtc_reg to force rtcin to push a change out to 0x70. + */ + nmi_enable = enable ? NMI_ENABLE_BIT : 0x00; + rtcin((rtc_reg == RTC_STATUSA) ? RTC_STATUSB : RTC_STATUSA); +} + +void atrtc_restore(void) { @@ -249,6 +305,7 @@ atrtc_attach(device_t dev) IO_RTC, IO_RTC + 1, 2, RF_ACTIVE); if (sc->port_res == NULL) device_printf(dev, "Warning: Couldn't map I/O.\n"); + resource_int_value("atrtc", 0, "use_iodelay", &use_iodelay); atrtc_start(); clock_register(dev, 1000000); bzero(&sc->et, sizeof(struct eventtimer)); --- atrtc.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted: