BG96 dwc2 kernel panic Raspberry pi

Hello,

Using the dwc2 usb controller driver and the BG96 modem we have been encountering kernel panic and general instability.

Has anyone else encounted this problem and what solutions have worked. We are trying to switch to the dwc_OTG driver but are having no luck getting it working.

See attached kernel panic.

[ 1111.191872] 8<— cut here —
[ 1111.195030] Unable to handle kernel paging request at virtual address 881345dc
[ 1111.202416] pgd = 546a9ef3
[ 1111.205288] [881345dc] *pgd=80000000006003, *pmd=00000000
[ 1111.210897] Internal error: Oops: a06 [#1] SMP ARM
[ 1111.215763] Modules linked in: qmi_wwan cdc_wdm option usb_wwan usbserial cmac algif_hash algif_skcipher af_alg spidev vc4 brcmfmac brcmutil cec v3d gpu_sched drm_kms_helper cfg80211 raspberrypi_hwmon drm dwc2 i2c_brcmstb bcm2835_unicam v4l2_dv_timings roles v4l2_fwnode bcm2835_v4l2(C) i2c_bcm2835 drm_panel_orientation_quirks bcm2835_codec(C) spi_bcm2835 bcm2835_isp(C) videobuf2_vmalloc bcm2835_mmal_vchiq(C) v4l2_mem2mem videobuf2_dma_contig videobuf2_memops videobuf2_v4l2 videobuf2_common snd_soc_core videodev snd_compress vc_sm_cma(C) rpivid_mem snd_pcm_dmaengine mc snd_pcm snd_timer snd syscopyarea sysfillrect sysimgblt fb_sys_fops backlight uio_pdrv_genirq uio sch_fq_codel rfcomm i2c_dev hci_uart btbcm bnep bluetooth ecdh_generic ecc rfkill fuse ip_tables x_tables ipv6 aes_arm_bs crypto_simd cryptd dm_crypt dm_mod overlay
[ 1111.290591] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G C 5.10.110-local #1
[ 1111.298714] Hardware name: BCM2711
[ 1111.302174] PC is at memcpy+0x50/0x330
[ 1111.305978] LR is at 0xe9157343
[ 1111.309167] pc : [] lr : [] psr: 20000113
[ 1111.315528] sp : c1201d2c ip : aeddbe05 fp : c1201d5c
[ 1111.320830] r10: c1200000 r9 : 00000000 r8 : 30e1229c
[ 1111.326135] r7 : 6fbc910a r6 : 1822b312 r5 : 4ffc117d r4 : 00400000
[ 1111.332759] r3 : d2050045 r2 : 00000514 r1 : c4051820 r0 : 881345dc
[ 1111.339386] Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
[ 1111.346630] Control: 30c5383d Table: 03fc0e40 DAC: fffffffd
[ 1111.352463] Process swapper/0 (pid: 0, stack limit = 0x6f8b8714)
[ 1111.358561] Stack: (0xc1201d2c to 0xc1202000)
[ 1111.362985] 1d20: 881345dc 00000000 00000000 c342e730 881345dc
[ 1111.371288] 1d40: c4142900 bf32e550 c4142900 c342e600 c1201d74 c1201d60 bf32e590 bf32e500
[ 1111.379592] 1d60: c4142900 c342e600 c1201d94 c1201d78 c091b264 bf32e578 c1201d9c 00000000
[ 1111.387896] 1d80: c342e728 c342e724 c1201dcc c1201d98 c091b5c4 c091b218 c1201dcc c1201d9c
[ 1111.396198] 1da0: c1201d9c 01dee0dd c1203098 c342e730 00000000 c342e734 ded062e0 00000006
[ 1111.404501] 1dc0: c1201df4 c1201dd0 c0228074 c091b510 c1203098 00000007 00000006 00000100
[ 1111.412804] 1de0: 00000040 c1200000 c1201e04 c1201df8 c0228144 c0227ffc c1201e74 c1201e08
[ 1111.421106] 1e00: c0201530 c0228128 c085cf2c c0780068 09bc04d2 00000001 00200002 c0c02144
[ 1111.429409] 1e20: c1203d00 00013ce0 c108b2d8 0000000a c1096680 c120509c c108b350 c133e1d4
[ 1111.437712] 1e40: c1203080 c1201e08 00000084 ffffe000 00000000 00000000 00000001 c1810800
[ 1111.446014] 1e60: c1200000 30c5387d c1201e8c c1201e78 c0227e84 c02013b4 c1095d90 00000000
[ 1111.454317] 1e80: c1201eb4 c1201e90 c02899e8 c0227dc0 c1205b74 f0802000 c1095d9c f080200c
[ 1111.462620] 1ea0: c1201ee0 c1200000 c1201edc c1201eb8 c0201394 c0289964 c020851c 60000013
[ 1111.470923] 1ec0: ffffffff c1201f14 c133da0f c1200000 c1201f3c c1201ee0 c0200afc c0201314
[ 1111.479226] 1ee0: 0421cc9a 00000000 0421cc9c c021b520 c1200000 00000000 c120509c c12050e4
[ 1111.487529] 1f00: c133da0f c0e1c748 30c5387d c1201f3c c1201f40 c1201f30 c0208518 c020851c
[ 1111.495831] 1f20: 60000013 ffffffff c029d8bc 00000000 c1201f4c c1201f40 c0bc31d4 c02084e0
[ 1111.504134] 1f40: c1201f74 c1201f50 c025b050 c0bc31a0 000000d9 c1205040 c1054a60 00000000
[ 1111.512436] 1f60: dffffb40 c1054a60 c1201f84 c1201f78 c025b390 c025af54 c1201f9c c1201f88
[ 1111.520738] 1f80: c0bbc124 c025b374 c1356068 c1205040 c1201fac c1201fa0 c1000c24 c0bbc074
[ 1111.529041] 1fa0: c1201ff4 c1201fb0 c1001208 c1000c18 ffffffff ffffffff 00000000 c10007c0
[ 1111.537344] 1fc0: 00000000 c1054a60 01dbeab3 00000000 c10004b0 00000000 30c0387d 00000000
[ 1111.545647] 1fe0: 02600000 410fd083 00000000 c1201ff8 00000000 c1000cac 00000000 00000000
[ 1111.553945] Backtrace:
[ 1111.556527] [] (dwc2_free_dma_aligned_buffer [dwc2]) from [] (dwc2_unmap_urb_for_dma+0x24/0x28 [dwc2])
[ 1111.567737] r5:c342e600 r4:c4142900
[ 1111.571414] [] (dwc2_unmap_urb_for_dma [dwc2]) from [] (__usb_hcd_giveback_urb+0x58/0x140)
[ 1111.581565] r5:c342e600 r4:c4142900
[ 1111.585200] [] (__usb_hcd_giveback_urb) from [] (usb_giveback_urb_bh+0xc0/0x134)
[ 1111.594472] r7:c342e724 r6:c342e728 r5:00000000 r4:c1201d9c
[ 1111.600226] [] (usb_giveback_urb_bh) from [] (tasklet_action_common.constprop.0+0x84/0x12c)
[ 1111.610467] r8:00000006 r7:ded062e0 r6:c342e734 r5:00000000 r4:c342e730
[ 1111.617277] [] (tasklet_action_common.constprop.0) from [] (tasklet_action+0x28/0x30)
[ 1111.626990] r9:c1200000 r8:00000040 r7:00000100 r6:00000006 r5:00000007 r4:c1203098
[ 1111.634857] [] (tasklet_action) from [] (__do_softirq+0x188/0x488)
[ 1111.642898] [] (__do_softirq) from [] (irq_exit+0xd0/0x128)
[ 1111.650319] r10:30c5387d r9:c1200000 r8:c1810800 r7:00000001 r6:00000000 r5:00000000
[ 1111.658265] r4:ffffe000
[ 1111.660845] [] (irq_exit) from [] (__handle_domain_irq+0x90/0xe0)
[ 1111.668792] r5:00000000 r4:c1095d90
[ 1111.672426] [] (__handle_domain_irq) from [] (gic_handle_irq+0x8c/0xa0)
[ 1111.680906] r9:c1200000 r8:c1201ee0 r7:f080200c r6:c1095d9c r5:f0802000 r4:c1205b74
[ 1111.688770] [] (gic_handle_irq) from [] (__irq_svc+0x5c/0x7c)
[ 1111.696364] Exception stack(0xc1201ee0 to 0xc1201f28)
[ 1111.701495] 1ee0: 0421cc9a 00000000 0421cc9c c021b520 c1200000 00000000 c120509c c12050e4
[ 1111.709799] 1f00: c133da0f c0e1c748 30c5387d c1201f3c c1201f40 c1201f30 c0208518 c020851c
[ 1111.718099] 1f20: 60000013 ffffffff
[ 1111.721643] r9:c1200000 r8:c133da0f r7:c1201f14 r6:ffffffff r5:60000013 r4:c020851c
[ 1111.729513] [] (arch_cpu_idle) from [] (default_idle_call+0x40/0x118)
[ 1111.737819] [] (default_idle_call) from [] (do_idle+0x108/0x168)
[ 1111.745684] [] (do_idle) from [] (cpu_startup_entry+0x28/0x30)
[ 1111.753370] r9:c1054a60 r8:dffffb40 r7:00000000 r6:c1054a60 r5:c1205040 r4:000000d9
[ 1111.761234] [] (cpu_startup_entry) from [] (rest_init+0xbc/0xc4)
[ 1111.769099] [] (rest_init) from [] (arch_call_rest_init+0x18/0x1c)
[ 1111.777134] r5:c1205040 r4:c1356068
[ 1111.780766] [] (arch_call_rest_init) from [] (start_kernel+0x568/0x5a8)
[ 1111.789244] [] (start_kernel) from [<00000000>] (0x0)
[ 1111.795256] Code: f5d1f05c f5d1f07c e8b151f8 e2522020 (e8a051f8)
[ 1111.801575] —[ end trace 71e58e355a3ddf1c ]—
[ 1111.806350] Kernel panic - not syncing: Fatal exception in interrupt
[ 1111.812813] CPU2: stopping
[ 1111.815570] CPU: 2 PID: 0 Comm: swapper/2 Tainted: G D C 5.10.110-local #1
[ 1111.823693] Hardware name: BCM2711
[ 1111.827145] Backtrace:
[ 1111.829649] [] (dump_backtrace) from [] (show_stack+0x20/0x24)
[ 1111.837338] r7:ffffffff r6:00000000 r5:60000193 r4:c12e6f98
[ 1111.843091] [] (show_stack) from [] (dump_stack+0xc4/0xf0)
[ 1111.850430] [] (dump_stack) from [] (do_handle_IPI+0x308/0x340)
[ 1111.858205] r9:c1958000 r8:c1810800 r7:00000001 r6:1dca3000 r5:00000002 r4:c1356390
[ 1111.866071] [] (do_handle_IPI) from [] (ipi_handler+0x28/0x30)
[ 1111.873757] r9:c1958000 r8:c1810800 r7:00000001 r6:1dca3000 r5:c1804cc0 r4:00000014
[ 1111.881623] [] (ipi_handler) from [] (handle_percpu_devid_fasteoi_ipi+0x80/0x154)
[ 1111.890987] [] (handle_percpu_devid_fasteoi_ipi) from [] (__handle_domain_irq+0x8c/0xe0)
[ 1111.900963] r7:00000001 r6:00000000 r5:00000000 r4:c1095d90
[ 1111.906712] [] (__handle_domain_irq) from [] (gic_handle_irq+0x8c/0xa0)
[ 1111.915191] r9:c1958000 r8:c1959f38 r7:f080200c r6:c1095d9c r5:f0802000 r4:c1205b74
[ 1111.923054] [] (gic_handle_irq) from [] (__irq_svc+0x5c/0x7c)
[ 1111.930649] Exception stack(0xc1959f38 to 0xc1959f80)
[ 1111.935777] 9f20: 00271d86 00000000
[ 1111.944080] 9f40: 00271d88 c021b520 c1958000 00000002 c120509c c12050e4 c133da0f c0e1c748
[ 1111.952383] 9f60: 00000000 c1959f94 c1959f98 c1959f88 c0208518 c020851c 60000013 ffffffff
[ 1111.960687] r9:c1958000 r8:c133da0f r7:c1959f6c r6:ffffffff r5:60000013 r4:c020851c
[ 1111.968556] [] (arch_cpu_idle) from [] (default_idle_call+0x40/0x118)
[ 1111.976861] [] (default_idle_call) from [] (do_idle+0x108/0x168)
[ 1111.984725] [] (do_idle) from [] (cpu_startup_entry+0x28/0x30)
[ 1111.992412] r9:410fd083 r8:00007000 r7:c1959ff8 r6:30c0387d r5:00000002 r4:00000092
[ 1112.000277] [] (cpu_startup_entry) from [] (secondary_start_kernel+0x170/0x17c)
[ 1112.009463] [] (secondary_start_kernel) from [<002018d0>] (0x2018d0)
[ 1112.016794] r5:00000000 r4:018edd40
[ 1112.020424] CPU1: stopping
[ 1112.023179] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G D C 5.10.110-local #1
[ 1112.031303] Hardware name: BCM2711
[ 1112.034754] Backtrace:
[ 1112.037254] [] (dump_backtrace) from [] (show_stack+0x20/0x24)
[ 1112.044942] r7:ffffffff r6:00000000 r5:60000193 r4:c12e6f98
[ 1112.050694] [] (show_stack) from [] (dump_stack+0xc4/0xf0)
[ 1112.058034] [] (dump_stack) from [] (do_handle_IPI+0x308/0x340)
[ 1112.065810] r9:c1956000 r8:c1810800 r7:00000001 r6:1dc8f000 r5:00000001 r4:c1356390
[ 1112.073676] [] (do_handle_IPI) from [] (ipi_handler+0x28/0x30)
[ 1112.081363] r9:c1956000 r8:c1810800 r7:00000001 r6:1dc8f000 r5:c1804cc0 r4:00000014
[ 1112.089228] [] (ipi_handler) from [] (handle_percpu_devid_fasteoi_ipi+0x80/0x154)
[ 1112.098592] [] (handle_percpu_devid_fasteoi_ipi) from [] (__handle_domain_irq+0x8c/0xe0)
[ 1112.108569] r7:00000001 r6:00000000 r5:00000000 r4:c1095d90
[ 1112.114319] [] (__handle_domain_irq) from [] (gic_handle_irq+0x8c/0xa0)
[ 1112.122798] r9:c1956000 r8:c1957f38 r7:f080200c r6:c1095d9c r5:f0802000 r4:c1205b74
[ 1112.130660] [] (gic_handle_irq) from [] (__irq_svc+0x5c/0x7c)
[ 1112.138255] Exception stack(0xc1957f38 to 0xc1957f80)
[ 1112.143383] 7f20: 003d120a 00000000
[ 1112.151686] 7f40: 003d120c c021b520 c1956000 00000001 c120509c c12050e4 c133da0f c0e1c748
[ 1112.159989] 7f60: 00000000 c1957f94 c1957f98 c1957f88 c0208518 c020851c 60000013 ffffffff
[ 1112.168293] r9:c1956000 r8:c133da0f r7:c1957f6c r6:ffffffff r5:60000013 r4:c020851c
[ 1112.176161] [] (arch_cpu_idle) from [] (default_idle_call+0x40/0x118)
[ 1112.184466] [] (default_idle_call) from [] (do_idle+0x108/0x168)
[ 1112.192329] [] (do_idle) from [] (cpu_startup_entry+0x28/0x30)
[ 1112.200016] r9:410fd083 r8:00007000 r7:c1957ff8 r6:30c0387d r5:00000001 r4:00000092
[ 1112.207881] [] (cpu_startup_entry) from [] (secondary_start_kernel+0x170/0x17c)
[ 1112.217067] [] (secondary_start_kernel) from [<002018d0>] (0x2018d0)
[ 1112.224397] r5:00000000 r4:018edd40
[ 1112.228027] CPU3: stopping
[ 1112.230781] CPU: 3 PID: 0 Comm: swapper/3 Tainted: G D C 5.10.110-local #1
[ 1112.238906] Hardware name: BCM2711
[ 1112.242357] Backtrace:
[ 1112.244856] [] (dump_backtrace) from [] (show_stack+0x20/0x24)
[ 1112.252543] r7:ffffffff r6:00000000 r5:60000193 r4:c12e6f98
[ 1112.258294] [] (show_stack) from [] (dump_stack+0xc4/0xf0)
[ 1112.265633] [] (dump_stack) from [] (do_handle_IPI+0x308/0x340)
[ 1112.273407] r9:c195a000 r8:c1810800 r7:00000001 r6:1dcb7000 r5:00000003 r4:c1356390
[ 1112.281273] [] (do_handle_IPI) from [] (ipi_handler+0x28/0x30)
[ 1112.288960] r9:c195a000 r8:c1810800 r7:00000001 r6:1dcb7000 r5:c1804cc0 r4:00000014
[ 1112.296825] [] (ipi_handler) from [] (handle_percpu_devid_fasteoi_ipi+0x80/0x154)
[ 1112.306188] [] (handle_percpu_devid_fasteoi_ipi) from [] (__handle_domain_irq+0x8c/0xe0)
[ 1112.316165] r7:00000001 r6:00000000 r5:00000000 r4:c1095d90
[ 1112.321916] [] (__handle_domain_irq) from [] (gic_handle_irq+0x8c/0xa0)
[ 1112.330395] r9:c195a000 r8:c195bf38 r7:f080200c r6:c1095d9c r5:f0802000 r4:c1205b74
[ 1112.338259] [] (gic_handle_irq) from [] (__irq_svc+0x5c/0x7c)
[ 1112.345853] Exception stack(0xc195bf38 to 0xc195bf80)
[ 1112.350981] bf20: 001d5d3a 00000000
[ 1112.359285] bf40: 001d5d3c c021b520 c195a000 00000003 c120509c c12050e4 c133da0f c0e1c748
[ 1112.367588] bf60: 00000000 c195bf94 c195bf98 c195bf88 c0208518 c020851c 60000013 ffffffff
[ 1112.375892] r9:c195a000 r8:c133da0f r7:c195bf6c r6:ffffffff r5:60000013 r4:c020851c
[ 1112.383761] [] (arch_cpu_idle) from [] (default_idle_call+0x40/0x118)
[ 1112.392067] [] (default_idle_call) from [] (do_idle+0x108/0x168)
[ 1112.399931] [] (do_idle) from [] (cpu_startup_entry+0x28/0x30)
[ 1112.407617] r9:410fd083 r8:00007000 r7:c195bff8 r6:30c0387d r5:00000003 r4:00000092
[ 1112.415482] [] (cpu_startup_entry) from [] (secondary_start_kernel+0x170/0x17c)
[ 1112.424668] [] (secondary_start_kernel) from [<002018d0>] (0x2018d0)
[ 1112.431999] r5:00000000 r4:018edd40
[ 1112.435647] —[ end Kernel panic - not syncing: Fatal exception in interrupt ]—

Thank you