[REGRESSION] GM20B probe fails after commit 2541626cfb79

Ben Skeggs skeggsb at gmail.com
Wed Jan 18 01:28:49 UTC 2023


On Mon, 16 Jan 2023 at 22:27, Diogo Ivo <diogo.ivo at tecnico.ulisboa.pt> wrote:
>
> On Mon, Jan 16, 2023 at 07:45:05AM +1000, David Airlie wrote:
> > On Thu, Dec 29, 2022 at 12:58 AM Diogo Ivo <diogo.ivo at tecnico.ulisboa.pt> wrote:
> > As a quick check can you try changing
> >
> > drivers/gpu/drm/nouveau/nvkm/core/firmware.c:nvkm_firmware_mem_target
> > from NVKM_MEM_TARGET_HOST to NVKM_MEM_TARGET_NCOH ?
>
> Hello!
>
> Applying this change breaks probing in a different way, with a
> bad PC=0x0. From a quick look at nvkm_falcon_load_dmem it looks like this
> could happen due to the .load_dmem() callback not being properly
> initialized. This is the kernel log I got:
In addition to Dave's change, can you try changing the
nvkm_falcon_load_dmem() call in gm20b_pmu_init() to:

nvkm_falcon_pio_wr(falcon, (u8 *)&args, 0, 0, DMEM, addr_args,
sizeof(args), 0, false);

Ben.

>
> [    2.010601] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000
> [    2.019436] Mem abort info:
> [    2.022273]   ESR = 0x0000000086000005
> [    2.026066]   EC = 0x21: IABT (current EL), IL = 32 bits
> [    2.031429]   SET = 0, FnV = 0
> [    2.034528]   EA = 0, S1PTW = 0
> [    2.037694]   FSC = 0x05: level 1 translation fault
> [    2.042572] [0000000000000000] user address but active_mm is swapper
> [    2.048961] Internal error: Oops: 0000000086000005 [#1] SMP
> [    2.054529] Modules linked in:
> [    2.057582] CPU: 0 PID: 36 Comm: kworker/u8:1 Not tainted 6.2.0-rc3+ #2
> [    2.064190] Hardware name: Google Pixel C (DT)
> [    2.068628] Workqueue: events_unbound deferred_probe_work_func
> [    2.074463] pstate: 40000005 (nZcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
> [    2.081417] pc : 0x0
> [    2.083600] lr : nvkm_falcon_load_dmem+0x58/0x80
> [    2.088218] sp : ffffffc009ddb6f0
> [    2.091526] x29: ffffffc009ddb6f0 x28: ffffff808028a008 x27: ffffff8081e43c38
> [    2.098658] x26: 00000000000000ff x25: ffffff808028a0a0 x24: 0000000000000000
> [    2.105788] x23: ffffff8080c328f8 x22: 000000000000002c x21: 0000000000005fd4
> [    2.112917] x20: ffffffc009ddb76c x19: ffffff8080c328b8 x18: 0000000000000000
> [    2.120047] x17: 2e74696e695f646f x16: 6874656d5f77732f x15: 0000000000000000
> [    2.127176] x14: 0000000002f546c2 x13: 0000000000000000 x12: 00000000000001ce
> [    2.134306] x11: 0000000000000001 x10: 0000000000000a90 x9 : ffffffc009ddb600
> [    2.141436] x8 : ffffff80803d19f0 x7 : ffffff80bf971180 x6 : 00000000000001b9
> [    2.148565] x5 : 0000000000000000 x4 : 0000000000000000 x3 : 000000000000002c
> [    2.155693] x2 : 0000000000005fd4 x1 : ffffffc009ddb76c x0 : ffffff8080c328b8
> [    2.162822] Call trace:
> [    2.165264]  0x0
> [    2.167099]  gm20b_pmu_init+0x78/0xb4
> [    2.170762]  nvkm_pmu_init+0x20/0x34
> [    2.174334]  nvkm_subdev_init_+0x60/0x12c
> [    2.178339]  nvkm_subdev_init+0x60/0xa0
> [    2.182171]  nvkm_device_init+0x14c/0x2a0
> [    2.186178]  nvkm_udevice_init+0x60/0x9c
> [    2.190097]  nvkm_object_init+0x48/0x1b0
> [    2.194013]  nvkm_ioctl_new+0x168/0x254
> [    2.197843]  nvkm_ioctl+0xd0/0x220
> [    2.201239]  nvkm_client_ioctl+0x10/0x1c
> [    2.205160]  nvif_object_ctor+0xf4/0x22c
> [    2.209079]  nvif_device_ctor+0x28/0x70
> [    2.212910]  nouveau_cli_init+0x150/0x590
> [    2.216916]  nouveau_drm_device_init+0x60/0x2a0
> [    2.221442]  nouveau_platform_device_create+0x90/0xd0
> [    2.226489]  nouveau_platform_probe+0x3c/0x9c
> [    2.230841]  platform_probe+0x68/0xc0
> [    2.234500]  really_probe+0xbc/0x2dc
> [    2.238070]  __driver_probe_device+0x78/0xe0
> [    2.242334]  driver_probe_device+0xd8/0x160
> [    2.246511]  __device_attach_driver+0xb8/0x134
> [    2.250948]  bus_for_each_drv+0x78/0xd0
> [    2.254782]  __device_attach+0x9c/0x1a0
> [    2.258612]  device_initial_probe+0x14/0x20
> [    2.262789]  bus_probe_device+0x98/0xa0
> [    2.266619]  deferred_probe_work_func+0x88/0xc0
> [    2.271142]  process_one_work+0x204/0x40c
> [    2.275150]  worker_thread+0x230/0x450
> [    2.278894]  kthread+0xc8/0xcc
> [    2.281946]  ret_from_fork+0x10/0x20
> [    2.285525] Code: bad PC value
> [    2.288576] ---[ end trace 0000000000000000 ]---
>
> Diogo


More information about the dri-devel mailing list