tbsdtv / linux_media

TBS linux open source drivers
https://github.com/tbsdtv/linux_media/wiki
Other
174 stars 80 forks source link

TBS6209 drivers on ARM Unable to handle kernel paging request at virtual address #204

Open xlazom00 opened 4 years ago

xlazom00 commented 4 years ago

Linux 5.7 on ARM64 on khadas VIM3 I get this problem when application want to init drivers

[   10.249253] Unable to handle kernel paging request at virtual address 0000000900000098
[   10.253852] Mem abort info:
[   10.256588]   ESR = 0x96000004
[   10.259629]   EC = 0x25: DABT (current EL), IL = 32 bits
[   10.264880]   SET = 0, FnV = 0
[   10.267898]   EA = 0, S1PTW = 0
[   10.271002] Data abort info:
[   10.273850]   ISV = 0, ISS = 0x00000004
[   10.277643]   CM = 0, WnR = 0
[   10.280570] user pgtable: 4k pages, 48-bit VAs, pgdp=000000004a9aa000
[   10.286961] [0000000900000098] pgd=0000000000000000
[   10.291792] Internal error: Oops: 96000004 [#1] SMP
[   10.296608] Modules linked in: zram zsmalloc si2157(O) si2183(O) tbsecp3(O) hci_uart btqca tas2101(O) btsdio btbcm videobuf2_vmalloc(O) bluetooth videobuf2_memops(O) videobuf2_common(O) panfrost ao_cec_g12a ecdh_generic ecc gpu_sched brcmfmac brcmutil cfg80211 rfkill ip_tables x_tables btrfs blake2b_generic xor xor_neon zstd_compress zlib_deflate raid6_pq libcrc32c gpio_pca953x rtc_hym8563 gpio_keys_polled
[   10.336753] CPU: 1 PID: 2252 Comm: kdvb-ad-0-fe-0 Tainted: G           O      5.7.0 #0.9.1
[   10.344942] Hardware name: Khadas VIM3 (DT)
[   10.349084] pstate: 40000005 (nZcv daif -PAN -UAO)
[   10.353835] pc : si2183_init+0x34/0x618 [si2183]
[   10.358404] lr : dvb_frontend_init+0x28/0xb0
[   10.362623] sp : ffff800014753d00
[   10.365902] x29: ffff800014753d00 x28: 0000000000000000
[   10.371162] x27: ffff000045a60738 x26: ffff000074e40b28
[   10.376425] x25: ffff8000123a9000 x24: 0000000900000000
[   10.381685] x23: ffff8000124ccc30 x22: ffff000074c6ac00
[   10.386946] x21: ffff000074964100 x20: ffff000074964100
[   10.392207] x19: ffff000074e40800 x18: 0000000000000000
[   10.397468] x17: 0000000000000000 x16: 0000000000000000
[   10.402730] x15: 0000000000000000 x14: 0000000000000122
[   10.407991] x13: 0000000000000122 x12: 0000000000000001
[   10.413252] x11: 0000000000000001 x10: 00000000000008c0
[   10.418513] x9 : ffff800014753d90 x8 : ffff000074964a20
[   10.423775] x7 : 0000000000000400 x6 : 0000000000000001
[   10.429036] x5 : 0000000000000001 x4 : 0000000000000001
[   10.434297] x3 : ffff0000749647cc x2 : ffff0000749647cc
[   10.439558] x1 : 0000000000000000 x0 : ffff000074964530
[   10.444820] Call trace:
[   10.447241]  si2183_init+0x34/0x618 [si2183]
[   10.451465]  dvb_frontend_init+0x28/0xb0
[   10.455345]  dvb_frontend_thread+0x70/0x630
[   10.459486]  kthread+0x120/0x128
[   10.462677]  ret_from_fork+0x10/0x18
[   10.466214] Code: f9419e78 f9400001 f9004fe1 d2800001 (f9404f17)
[   10.472252] ---[ end trace c9ac52dd6dd46eda ]---

this is how PCIE are initialized

[    1.632404] meson-pcie fc000000.pcie: host bridge /soc/pcie@fc000000 ranges:
[    1.637209] meson-pcie fc000000.pcie:       IO 0x00fc600000..0x00fc6fffff -> 0x0000000000
[    1.645311] meson-pcie fc000000.pcie:      MEM 0x00fc700000..0x00fdffffff -> 0x00fc700000
[    1.658361] meson-pcie fc000000.pcie: Link up
[    1.658454] meson-pcie fc000000.pcie: PCI host bridge to bus 0000:00
[    1.664069] pci_bus 0000:00: root bus resource [bus 00-ff]
[    1.669454] pci_bus 0000:00: root bus resource [io  0x0000-0xfffff]
[    1.669457] pci_bus 0000:00: root bus resource [mem 0xfc700000-0xfdffffff]
[    1.680598] pci 0000:00:00.0: [16c3:abcd] type 01 class 0x060400
[    1.691911] pci 0000:00:00.0: reg 0x38: [mem 0x00000000-0x0000ffff pref]
[    1.703738] pci 0000:00:00.0: supports D1
[    1.716202] pci 0000:00:00.0: PME# supported from D0 D1 D3hot D3cold
[    1.718012] pci 0000:01:00.0: [544d:6178] type 00 class 0x048000
[    1.739761] pci 0000:01:00.0: reg 0x10: [mem 0xfffc0000-0xffffffff]
[    1.746061] pci 0000:01:00.0: Upstream bridge's Max Payload Size set to 128 (was 256, max 256)
[    1.754422] pci 0000:01:00.0: Max Payload Size set to 128 (was 128, max 128)
[    1.788507] pci 0000:00:00.0: BAR 8: assigned [mem 0xfc700000-0xfc7fffff]
[    1.789645] pci 0000:00:00.0: BAR 6: assigned [mem 0xfc800000-0xfc80ffff pref]
[    1.796805] pci 0000:01:00.0: BAR 0: assigned [mem 0xfc700000-0xfc73ffff]
[    1.803543] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[    1.808706] pci 0000:00:00.0:   bridge window [mem 0xfc700000-0xfc7fffff]
[    1.815635] pcieport 0000:00:00.0: PME: Signaling with IRQ 33
[    1.821412] pcieport 0000:00:00.0: AER: enabled with IRQ 33