Quantcast
Channel: Raspberry Pi Forums
Viewing all articles
Browse latest Browse all 4474

Device Tree • 5th sc16is752 causes kernel error

$
0
0
I have 5 of the Serial Expansion HATs from Waveshare. I have set the resistors on each of them to a uniquie interrupt and i2c address. When I add all the dtoverlays (either on the command line or via config.txt) I get the following kernel error:

Code:

[  174.948620] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000040[  174.957640] Mem abort info:[  174.960522]   ESR = 0x0000000096000005[  174.964417]   EC = 0x25: DABT (current EL), IL = 32 bits[  174.969953]   SET = 0, FnV = 0[  174.973272]   EA = 0, S1PTW = 0[  174.976552]   FSC = 0x05: level 1 translation fault[  174.981921] Data abort info:[  174.984898]   ISV = 0, ISS = 0x00000005, ISS2 = 0x00000000[  174.990516]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0[  174.995694]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0[  175.001135] user pgtable: 4k pages, 39-bit VAs, pgdp=00000000430c6000[  175.007704] [0000000000000040] pgd=0000000000000000, p4d=0000000000000000, pud=0000000000000000[  175.016901] Internal error: Oops: 0000000096000005 [#1] PREEMPT SMP[  175.023301] Modules linked in: sc16is7xx regmap_spi regmap_i2c cmac algif_hash aes_arm64 aes_generic algif_skcipher af_alg bnep vc4 snd_soc_hdmi_codec drm_display_helper cec drm_dma_helper brcmfmac_wcc hci_uart drm_kms_helper btbcm bluetooth brcmfmac binfmt_misc brcmutil snd_soc_core v3d cfg80211 gpu_sched ecdh_generic drm_shmem_helper ecc bcm2835_codec(C) libaes snd_compress rfkill bcm2835_v4l2(C) rpivid_hevc(C) bcm2835_isp(C) snd_bcm2835(C) raspberrypi_hwmon bcm2835_mmal_vchiq(C) snd_pcm_dmaengine v4l2_mem2mem videobuf2_dma_contig videobuf2_vmalloc snd_pcm videobuf2_memops i2c_brcmstb videobuf2_v4l2 i2c_bcm2835 videodev vc_sm_cma(C) snd_timer raspberrypi_gpiomem videobuf2_common mc snd nvmem_rmem uio_pdrv_genirq uio i2c_dev drm fuse dm_mod drm_panel_orientation_quirks backlight ip_tables x_tables ipv6[  175.095657] CPU: 0 PID: 743 Comm: kworker/u9:3 Tainted: G         C         6.6.21-v8+ #1743[  175.104219] Hardware name: Raspberry Pi 4 Model B Rev 1.5 (DT)[  175.110132] Workqueue: events_unbound deferred_probe_work_func[  175.116055] pstate: 00000005 (nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)[  175.123115] pc : serial_core_unregister_port+0x58/0x2b0[  175.128413] lr : serial_ctrl_unregister_port+0x18/0x30[  175.133620] sp : ffffffc080f3b980[  175.136975] x29: ffffffc080f3b980 x28: 0000000000000000 x27: ffffff8042b66080[  175.144216] x26: ffffffe885884010 x25: 61c8864680b583eb x24: ffffff8042b66660[  175.151456] x23: ffffffe885887b08 x22: 0000000000000000 x21: ffffffe8a3f9efe0[  175.158695] x20: ffffffe8a38d1068 x19: 0000000000000000 x18: 0000000000000000[  175.165933] x17: 0000000000000000 x16: ffffffe8a3032178 x15: 0000000000000000[  175.173172] x14: 0000000000000000 x13: 0000000000000000 x12: 0000000000000000[  175.180410] x11: 0000000000000040 x10: 0000000000001a30 x9 : ffffffe8a30320c0[  175.187650] x8 : ffffff8040ff76d0 x7 : 0000000000000000 x6 : 0000000020800004[  175.194889] x5 : 0000000000000000 x4 : 00000000000000fe x3 : 00000000000000ff[  175.202128] x2 : ffffffe885884880 x1 : ffffff8042b66660 x0 : ffffffe8a3f9f0f8[  175.209367] Call trace:[  175.211841]  serial_core_unregister_port+0x58/0x2b0[  175.216785]  serial_ctrl_unregister_port+0x18/0x30[  175.221641]  uart_remove_one_port+0x18/0x30[  175.225879]  sc16is7xx_probe+0x584/0x8f0 [sc16is7xx][  175.230921]  sc16is7xx_i2c_probe+0xfc/0x158 [sc16is7xx][  175.236222]  i2c_device_probe+0x148/0x298[  175.240286]  really_probe+0x118/0x288[  175.243995]  __driver_probe_device+0x80/0x138[  175.248410]  driver_probe_device+0x44/0x118[  175.252649]  __device_attach_driver+0xc0/0x108[  175.257153]  bus_for_each_drv+0x90/0xf0[  175.261038]  __device_attach+0xf4/0x190[  175.264924]  device_initial_probe+0x1c/0x30[  175.269163]  bus_probe_device+0xb4/0xc0[  175.273049]  deferred_probe_work_func+0x90/0xd0[  175.277641]  process_scheduled_works+0x17c/0x3e0[  175.282321]  worker_thread+0x16c/0x320[  175.286118]  kthread+0x120/0x138[  175.289387]  ret_from_fork+0x10/0x20[  175.293012] Code: a90573fb 910462a0 a955f033 b940a036 (f9402397) [  175.299190] ---[ end trace 0000000000000000 ]---
It doesn't matter which order I add the overlays, the last one added always causes the error. Each of the boards work well individually or up to four of them simultaneously.

The commands I use to load the overlays are:

Code:

sudo dtoverlay sc16is752-i2c int_pin=24 addr=0x48sudo dtoverlay sc16is752-i2c int_pin=23 addr=0x49sudo dtoverlay sc16is752-i2c int_pin=22 addr=0x4asudo dtoverlay sc16is752-i2c int_pin=21 addr=0x4bsudo dtoverlay sc16is752-i2c int_pin=20 addr=0x4c
and the entries in config.txt look like this (currently commented out so I can load the overlays on the command line):

Code:

#dtoverlay=sc16is752-i2c,int_pin=20,addr=0x4c#dtoverlay=sc16is752-i2c,int_pin=21,addr=0x4b#dtoverlay=sc16is752-i2c,int_pin=22,addr=0x4a#dtoverlay=sc16is752-i2c,int_pin=23,addr=0x49#dtoverlay=sc16is752-i2c,int_pin=24,addr=0x48
Any help would be greatly appreciated.

Statistics: Posted by pmelange — Thu Mar 14, 2024 4:45 pm — Replies 1 — Views 13



Viewing all articles
Browse latest Browse all 4474

Trending Articles