2019-10-15 09:15:06 |
Juerg Haefliger |
description |
After updating the firmware to the latest version from github.com/raspberry/firmware, the NIC on a PI 3+ running Bionic is no longer recognized/initialized. In fact, no USB devices are discovered at all.
[ 3.528034] irq 41: nobody cared (try booting with the "irqpoll" option)
[ 3.536895] CPU: 2 PID: 0 Comm: swapper/2 Not tainted 4.15.18-bionic8 #12
[ 3.545826] Hardware name: Raspberry Pi 3 Model B Plus Rev 1.3 (DT)
[ 3.554271] Call trace:
[ 3.558792] dump_backtrace+0x0/0x1e0
[ 3.564576] show_stack+0x24/0x30
[ 3.569991] dump_stack+0xbc/0xf4
[ 3.575376] __report_bad_irq+0x3c/0xf8
[ 3.581295] note_interrupt+0x2d8/0x328
[ 3.587208] handle_irq_event_percpu+0x68/0x98
[ 3.593691] handle_irq_event+0x50/0x80
[ 3.599588] handle_level_irq+0xc4/0x150
[ 3.605559] generic_handle_irq+0x34/0x50
[ 3.611596] bcm2836_chained_handle_irq+0x4c/0x68
[ 3.618342] generic_handle_irq+0x34/0x50
[ 3.624368] __handle_domain_irq+0x68/0xc0
[ 3.630482] bcm2836_arm_irqchip_handle_irq+0x74/0xe0
[ 3.637574] el1_irq+0xec/0x198
[ 3.642700] arch_cpu_idle+0x34/0x1e8
[ 3.648377] default_idle_call+0x28/0x44
[ 3.654304] do_idle+0x180/0x1f8
[ 3.659472] cpu_startup_entry+0x28/0x30
[ 3.665368] secondary_start_kernel+0x128/0x138
[ 3.671866] handlers:
[ 3.676012] [<0000000069f2db41>] dwc_otg_common_irq
[ 3.682840] [<000000001adf5720>] dwc_otg_pcd_irq
[ 3.689374] [<0000000039428d36>] usb_hcd_irq
[ 3.695541] Disabling IRQ #41
[ 6.814911] usb 1-1: device descriptor read/64, error -110
[ 22.242909] Indeed it is in host mode hprt0 = 00001101
[ 22.434928] usb 1-1: device descriptor read/64, error -110
[ 22.575695] Indeed it is in host mode hprt0 = 00001101
[ 22.774865] usb 1-1: new high-speed USB device number 3 using dwc_otg
[ 27.874889] Indeed it is in host mode hprt0 = 00001101
[ 28.066866] usb 1-1: device descriptor read/64, error -110
[ 43.490915] Indeed it is in host mode hprt0 = 00001101
[ 43.682842] usb 1-1: device descriptor read/64, error -110
[ 43.794933] usb usb1-port1: attempt power cycle |
[Impact]
After updating the firmware to the latest version from github.com/raspberry/firmware, the NIC on a PI 3B+ running Bionic is no longer recognized/initialized. In fact, no USB devices are discovered at all.
[ 3.528034] irq 41: nobody cared (try booting with the "irqpoll" option)
[ 3.536895] CPU: 2 PID: 0 Comm: swapper/2 Not tainted 4.15.18-bionic8 #12
[ 3.545826] Hardware name: Raspberry Pi 3 Model B Plus Rev 1.3 (DT)
[ 3.554271] Call trace:
[ 3.558792] dump_backtrace+0x0/0x1e0
[ 3.564576] show_stack+0x24/0x30
[ 3.569991] dump_stack+0xbc/0xf4
[ 3.575376] __report_bad_irq+0x3c/0xf8
[ 3.581295] note_interrupt+0x2d8/0x328
[ 3.587208] handle_irq_event_percpu+0x68/0x98
[ 3.593691] handle_irq_event+0x50/0x80
[ 3.599588] handle_level_irq+0xc4/0x150
[ 3.605559] generic_handle_irq+0x34/0x50
[ 3.611596] bcm2836_chained_handle_irq+0x4c/0x68
[ 3.618342] generic_handle_irq+0x34/0x50
[ 3.624368] __handle_domain_irq+0x68/0xc0
[ 3.630482] bcm2836_arm_irqchip_handle_irq+0x74/0xe0
[ 3.637574] el1_irq+0xec/0x198
[ 3.642700] arch_cpu_idle+0x34/0x1e8
[ 3.648377] default_idle_call+0x28/0x44
[ 3.654304] do_idle+0x180/0x1f8
[ 3.659472] cpu_startup_entry+0x28/0x30
[ 3.665368] secondary_start_kernel+0x128/0x138
[ 3.671866] handlers:
[ 3.676012] [<0000000069f2db41>] dwc_otg_common_irq
[ 3.682840] [<000000001adf5720>] dwc_otg_pcd_irq
[ 3.689374] [<0000000039428d36>] usb_hcd_irq
[ 3.695541] Disabling IRQ #41
[ 6.814911] usb 1-1: device descriptor read/64, error -110
[ 22.242909] Indeed it is in host mode hprt0 = 00001101
[ 22.434928] usb 1-1: device descriptor read/64, error -110
[ 22.575695] Indeed it is in host mode hprt0 = 00001101
[ 22.774865] usb 1-1: new high-speed USB device number 3 using dwc_otg
[ 27.874889] Indeed it is in host mode hprt0 = 00001101
[ 28.066866] usb 1-1: device descriptor read/64, error -110
[ 43.490915] Indeed it is in host mode hprt0 = 00001101
[ 43.682842] usb 1-1: device descriptor read/64, error -110
[ 43.794933] usb usb1-port1: attempt power cycle
[Test Case]
Pull latest firmware from github.com/raspberry/firmware, compile LAN78xx module into the kernel, boot on a PI 3B+.
[Fix]
Backport commit d903e18191d3 ("usb: dwc_otg: Clean up interrupt claiming code") from upstream raspberry/linux rpi-4.19.y.
[Regression Potential]
Low. Modifications are isolated to the dwc_otg driver. Patches are cherry picks or simple backports from upstream rpi-4.19.y. |
|