etnaviv oops on imx6dl/2G, works fine on imx6s/512M

Michal Vokáč michal.vokac at ysoft.com
Wed Jul 18 12:29:01 UTC 2018


Ahoj,

I encountered an error in etnaviv driver on one of my two very similar SBCs.
They have the same board design but slightly different HW configuration.
SW configuration/setup is the same for both. Including kernel configuration.

1. is based on i.MX6S, single core, 512MB RAM, parallel LCD.
2. is based on i.MX6DL, dual core, 2GB RAM, HDMI display.

System No.1 boots OK. I can run kmscube and HW acceleration works.
System No.2 does not boot until I disable etnaviv driver in the kernel.

When digging deeper where the problem might be I found those two threads
[1],[2]. None of these apply to me. CMA is enabled and I do not specify
fixed CMA regions in DT.

I get the same results on v4.18-rc2 and on v4.18-rc5.

Relevant parts of boot log:

[    0.000000] Memory: 1984044K/2097152K available (11264K kernel code, 738K rwdata, 2672K rodata, 1024K init, 426K bss, 113108K reserved, 0K cma-reserved, 262144K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xf0800000 - 0xff800000   ( 240 MB)
[    0.000000]     lowmem  : 0x80000000 - 0xf0000000   (1792 MB)
[    0.000000]     pkmap   : 0x7fe00000 - 0x80000000   (   2 MB)
[    0.000000]       .text : 0x(ptrval) - 0x(ptrval)   (12256 kB)
[    0.000000]       .init : 0x(ptrval) - 0x(ptrval)   (1024 kB)
[    0.000000]       .data : 0x(ptrval) - 0x(ptrval)   ( 739 kB)
[    0.000000]        .bss : 0x(ptrval) - 0x(ptrval)   ( 427 kB)

[... snip ...]

[    8.973561] etnaviv etnaviv: bound 130000.gpu (ops gpu_ops)
[    8.979464] etnaviv etnaviv: bound 134000.gpu (ops gpu_ops)
[    8.985105] etnaviv-gpu 130000.gpu: model: GC880, revision: 5106
[    8.997639] etnaviv-gpu 130000.gpu: command buffer outside valid memory window
[    9.005465] etnaviv-gpu 134000.gpu: model: GC320, revision: 5007
[    9.018325] etnaviv-gpu 134000.gpu: command buffer outside valid memory window
[    9.026767] [drm] Initialized etnaviv 1.2.0 20151214 for etnaviv on minor 0
[    9.035510] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    9.042138] [drm] No driver support for vblank timestamp query.
[    9.048363] imx-drm display-subsystem: bound imx-ipuv3-crtc.2 (ops ipu_crtc_ops)
[    9.055948] imx-drm display-subsystem: bound imx-ipuv3-crtc.3 (ops ipu_crtc_ops)
[    9.063409] [drm] Cannot find any crtc or sizes
[    9.068354] [drm] Initialized imx-drm 1.0.0 20120507 for display-subsystem on minor 1
[    9.076283] imx-ipuv3 2400000.ipu: IPUv3H probed

[... snip ...]

[    9.215731] Unable to handle kernel paging request at virtual address f0c01ff4
[    9.234977] pgd = (ptrval)
[    9.237694] [f0c01ff4] *pgd=7c944811, *pte=00000000, *ppte=00000000
[    9.244028] Internal error: Oops: 807 [#1] PREEMPT SMP ARM
[    9.249530] CPU: 1 PID: 35 Comm: kworker/1:1 Not tainted 4.18.0-rc5-00011-g750c9aa-dirty #2
[    9.263533] Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
[    9.263555] Workqueue: pm pm_runtime_work
[    9.276113] PC is at etnaviv_buffer_end+0x290/0x2e8
[    9.276124] LR is at 0xf0c02000
[    9.285960] pc : [<805d4e50>]    lr : [<f0c02000>]    psr: 80000013
[    9.285965] sp : ec4bbdb0  ip : f0c02000  fp : ec4bbdcc
[    9.285970] r10: 00000000  r9 : ec220800  r8 : ec92e000
[    9.285975] r7 : 00000002  r6 : f0c02000  r5 : fffffff0  r4 : eca11c10
[    9.285983] r3 : 00000034  r2 : f0c01ff0  r1 : 10000000  r0 : fca40000
[    9.294001] Flags: Nzcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
[    9.294007] Control: 10c5387d  Table: 1000404a  DAC: 00000051
[    9.294013] Process kworker/1:1 (pid: 35, stack limit = 0x(ptrval))
[    9.294020] Stack: (0xec4bbdb0 to 0xec4bc000)
[    9.294029] bda0:                                     eca11c10 eca11c1c 252538f9 00000002
[    9.309515] bdc0: ec4bbde4 ec4bbdd0 805dc7d8 805d4bcc ec208c10 ec92e198 ec4bbdf4 ec4bbde8
[    9.319963] bde0: 805fcb2c 805dc780 ec4bbe2c ec4bbdf8 80609f38 805fcafc ec128080 ec167340
[    9.333018] be00: ec4bbe84 ec208c10 00000000 ec208c88 80609e80 00000008 00000000 81103d00
[    9.333028] be20: ec4bbe64 ec4bbe30 805febc8 80609e8c ec128000 eedd7280 ec167340 ec208c10
[    9.333039] be40: 80609e80 81103d00 00000000 00000008 00000000 81103d00 ec4bbe84 ec4bbe68
[    9.345657] be60: 805fed04 805feb04 ec208c10 80609e80 81103d00 00000000 ec4bbedc ec4bbe88
[    9.345667] be80: 805ffb74 805fece0 81106548 8016eeb4 ffffe000 0000000a ec4bbec4 ec4bbea8
[    9.345678] bea0: 80154030 80174120 ec208c88 93cd5b28 eedd6e00 ec208cc4 ec208c88 eedd6e00
[    9.357689] bec0: eedd9200 00000000 811b3e50 00000000 ec4bbef4 ec4bbee0 806003e0 805ffa2c
[    9.357698] bee0: ec208cc4 ec216d80 ec4bbf34 ec4bbef8 80142080 80600368 80154030 80174120
[    9.357710] bf00: eedd6e00 eedd6e00 eedd6e00 ec216d80 eedd6e00 ec216d94 eedd6e18 ffffe000
[    9.370243] bf20: 00000008 81103d00 ec4bbf74 ec4bbf38 80142450 80141e7c 80b7bc04 80de6d64
[    9.370252] bf40: 811b37ba eedd6e00 8014882c ec3b7dc0 ec214300 00000000 ec4ba000 ec216d80
[    9.370262] bf60: 801423f4 ec169e84 ec4bbfac ec4bbf78 80148b60 80142400 ec3b7ddc ec3b7ddc
[    9.384706] bf80: 00000000 ec214300 801489f4 00000000 00000000 00000000 00000000 00000000
[    9.384720] bfa0: 00000000 ec4bbfb0 801010e8 80148a00 00000000 00000000 00000000 00000000
[    9.398470] bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    9.398479] bfe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[    9.398508] [<805d4e50>] (etnaviv_buffer_end) from [<805dc7d8>] (etnaviv_gpu_rpm_suspend+0x64/0x8c)
[    9.412593] [<805dc7d8>] (etnaviv_gpu_rpm_suspend) from [<805fcb2c>] (pm_generic_runtime_suspend+0x3c/0x48)
[    9.428952] [<805fcb2c>] (pm_generic_runtime_suspend) from [<80609f38>] (genpd_runtime_suspend+0xb8/0x26c)
[    9.428968] [<80609f38>] (genpd_runtime_suspend) from [<805febc8>] (__rpm_callback+0xd0/0x1dc)
[    9.442973] [<805febc8>] (__rpm_callback) from [<805fed04>] (rpm_callback+0x30/0x90)
[    9.442985] [<805fed04>] (rpm_callback) from [<805ffb74>] (rpm_suspend+0x154/0x6c4)
[    9.442998] [<805ffb74>] (rpm_suspend) from [<806003e0>] (pm_runtime_work+0x84/0xa0)
[    9.459353] [<806003e0>] (pm_runtime_work) from [<80142080>] (process_one_work+0x210/0x584)
[    9.459367] [<80142080>] (process_one_work) from [<80142450>] (worker_thread+0x5c/0x5a8)
[    9.476068] [<80142450>] (worker_thread) from [<80148b60>] (kthread+0x16c/0x174)
[    9.476080] [<80148b60>] (kthread) from [<801010e8>] (ret_from_fork+0x14/0x2c)
[    9.476088] Exception stack(0xec4bbfb0 to 0xec4bbff8)
[    9.492440] bfa0:                                     00000000 00000000 00000000 00000000
[    9.506537] bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    9.506544] bfe0: 00000000 00000000 00000000 00000000 00000013 00000000
[    9.506556] Code: e5946144 e2833004 e0862005 e584314c (e5820004)
[    9.522969] ---[ end trace 0c5910ecf0b034f8 ]---
[    9.548650] Unable to handle kernel paging request at virtual address f0e43ff4
[    9.562131] pgd = (ptrval)
[    9.579448] [f0e43ff4] *pgd=7cdff811
[    9.596554] , *pte=00000000
[    9.612046] , *ppte=00000000
[    9.641974] Internal error: Oops: 807 [#2] PREEMPT SMP ARM
[    9.655812] CPU: 1 PID: 18 Comm: kworker/1:0 Tainted: G      D           4.18.0-rc5-00011-g750c9aa-dirty #2
[    9.655816] Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
[    9.655837] Workqueue: pm pm_runtime_work
[    9.686025] PC is at etnaviv_buffer_end+0x290/0x2e8
[    9.686035] LR is at 0xf0e44000
[    9.698309] pc : [<805d4e50>]    lr : [<f0e44000>]    psr: 80000113
[    9.713875] sp : ec169db0  ip : f0e44000  fp : ec169dcc
[    9.713881] r10: 00000000  r9 : ec220b00  r8 : ec92e000
[    9.713886] r7 : 00000002  r6 : f0e44000  r5 : fffffff0  r4 : eca12010
[    9.713892] r3 : 00000034  r2 : f0e43ff0  r1 : 10000000  r0 : fcd00000
[    9.713901] Flags: Nzcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
[    9.729470] Control: 10c5387d  Table: 1000404a  DAC: 00000051
[    9.729477] Process kworker/1:0 (pid: 18, stack limit = 0x(ptrval))
[    9.729482] Stack: (0xec169db0 to 0xec16a000)
[    9.729491] 9da0:                                     eca12010 eca1201c 38fd2c6b 00000002
[    9.742203] 9dc0: ec169de4 ec169dd0 805dc7d8 805d4bcc ec208e10 ec92e198 ec169df4 ec169de8
[    9.752821] 9de0: 805fcb2c 805dc780 ec169e2c ec169df8 80609f38 805fcafc ec169e34 ec169e08
[    9.752830] 9e00: 80161a18 ec208e10 00000000 ec208e88 80609e80 00000008 00000000 81103d00
[    9.752840] 9e20: ec169e64 ec169e30 805febc8 80609e8c 801535b0 80161950 ec96f2c0 ec208e10
[    9.767457] 9e40: 80609e80 81103d00 00000000 00000008 00000000 81103d00 ec169e84 ec169e68
[    9.767467] 9e60: 805fed04 805feb04 ec208e10 80609e80 81103d00 00000000 ec169edc ec169e88
[    9.767476] 9e80: 805ffb74 805fece0 81106548 8016eeb4 ffffe000 0000000a ec169ec4 ec169ea8
[    9.777577] 9ea0: 80154030 80174120 ec208e88 93cd5b28 eedd6e00 ec208ec4 ec208e88 eedd6e00
[    9.788547] 9ec0: eedd9200 00000000 811b3e50 00000000 ec169ef4 ec169ee0 806003e0 805ffa2c
[    9.797695] 9ee0: ec208ec4 ec0ef680 ec169f34 ec169ef8 80142080 80600368 eedd6e00 eedd6e00
[    9.806061] 9f00: eedd6e18 eedd6e18 eedd6e44 ec0ef680 eedd6e00 ec0ef694 eedd6e18 ffffe000
[    9.821371] 9f20: 00000008 81103d00 ec169f74 ec169f38 80142450 80141e7c 80b7bc04 80de6d64
[    9.832340] 9f40: 811b37ba eedd6e00 8014882c ec0fd580 ec0fd500 00000000 ec168000 ec0ef680
[    9.848606] 9f60: 801423f4 ec11dd7c ec169fac ec169f78 80148b60 80142400 ec0fd59c ec0fd59c
[    9.848616] 9f80: 00000000 ec0fd500 801489f4 00000000 00000000 00000000 00000000 00000000
[    9.848626] 9fa0: 00000000 ec169fb0 801010e8 80148a00 00000000 00000000 00000000 00000000
[    9.858464] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    9.868915] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[    9.877991] [<805d4e50>] (etnaviv_buffer_end) from [<805dc7d8>] (etnaviv_gpu_rpm_suspend+0x64/0x8c)
[    9.878009] [<805dc7d8>] (etnaviv_gpu_rpm_suspend) from [<805fcb2c>] (pm_generic_runtime_suspend+0x3c/0x48)
[    9.890021] [<805fcb2c>] (pm_generic_runtime_suspend) from [<80609f38>] (genpd_runtime_suspend+0xb8/0x26c)
[    9.900468] [<80609f38>] (genpd_runtime_suspend) from [<805febc8>] (__rpm_callback+0xd0/0x1dc)
[    9.913520] [<805febc8>] (__rpm_callback) from [<805fed04>] (rpm_callback+0x30/0x90)
[    9.913532] [<805fed04>] (rpm_callback) from [<805ffb74>] (rpm_suspend+0x154/0x6c4)
[    9.913544] [<805ffb74>] (rpm_suspend) from [<806003e0>] (pm_runtime_work+0x84/0xa0)
[    9.927988] [<806003e0>] (pm_runtime_work) from [<80142080>] (process_one_work+0x210/0x584)
[    9.928005] [<80142080>] (process_one_work) from [<80142450>] (worker_thread+0x5c/0x5a8)
[    9.940023] [<80142450>] (worker_thread) from [<80148b60>] (kthread+0x16c/0x174)
[    9.952553] [<80148b60>] (kthread) from [<801010e8>] (ret_from_fork+0x14/0x2c)
[    9.966639] Exception stack(0xec169fb0 to 0xec169ff8)
[    9.966647] 9fa0:                                     00000000 00000000 00000000 00000000
[    9.966658] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    9.981800] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[    9.998159] Code: e5946144 e2833004 e0862005 e584314c (e5820004)
[    9.998213] ---[ end trace 0c5910ecf0b034f9 ]---

The system does not make it to the login promt but it seems kernel is running
as I see a LED with a heart-beat trigger flashing.

Any idea what might be wrong? How to further debug this?

Thanks in advance,
Michal

[1] https://lists.freedesktop.org/archives/etnaviv/2017-November/001242.html
[2] https://lists.freedesktop.org/archives/dri-devel/2017-July/145934.html


More information about the etnaviv mailing list