On 2020-04-27 4:43 p.m., Andriy Gapon wrote: > On 24/04/2020 20:22, Harry Wentland wrote: >> On 2020-04-24 8:34 a.m., Andriy Gapon wrote: >>> >>> First, I understand that my platform is not directly supported and probably not >>> very interesting, but I still hope to get some tips or pointers. >>> >> >> Hi Andriy, >> >> yeah, limited insight here since FreeBSD isn't something I'm familiar >> with. :) > > Harry, > > thanks a lot for your help. It set me on a right path, although a bit > indirectly :-) > > Let me start by saying that I was able to fix the driver. > > After looking at the laptop in a dark room I could see that the backlight was > actually on, but there was no video output. > > So, I went back to comparing FreeBSD and Linux logs, especially around the place > where "TEST_DEBUG_DATA: 0x0" was reported. And then suddenly I spotted what I > missed before. Linux reported 3 pipes while FreeBSD reported 4. And the errors > were about the forth, non-existent, pipe -- I guess, not surprising at all. > With some additional printfs I could confirm it for sure. So, then I looked for > the code where the number of pipes is set and almost immediately could see the > problem. > > FreeBSD amdgpu has DCN_VERSION_1_01 support ifdef-ed out, for whatever reason. > Your commit "drm/amd/display: Drop DCN1_01 guards" has not been ported yet and > CONFIG_DRM_AMD_DC_DCN1_01 is not defined. Of course, the number of pipes was > not the only thing that did not match the actual hardware/firmware because of > that. Once I set CONFIG_DRM_AMD_DC_DCN1_01 everything just worked. > > Thank you again! > Awesome. Glad my comment helped and glad you found the problem. Harry >>> I am trying to get amdgpu/FreeBSD going on Motile M141 laptop with Ryzen 3 3200U >>> CPU that has Vega 3 graphics integrated. When amdgpu starts loading the screen >>> goes black and never lights up again. I am not sure whether there is no signal >>> at all or whether the backlight is turned off, but the screen is completely >>> dark. I can blindly interact with the system, so it's not crashed or hung. >>> From system logs I can see that the driver attaches successfully. It recognizes >>> the hardware, loads its firmware, detects the eDP screen and so on. >>> >> >> Does BSD have a way to check or set your backlight value manually (a la >> /sys/class/backlight on linux)? If so I'd suggest checking and setting >> it to non-zero values, ideally to max_brightness. >> >> Have you tried an external display? >> >>> The FreeBSD's amdgpu port that I am trying is based on code circa 5.0. >>> There is no newer version ported. >>> I tried a couple of Linux distros with 5.3.x kernels and they worked without any >>> problems. So that gives me some hope. >>> >>> I compared driver messages (with drm_debug set to 0xfff) between Linux and >>> FreeBSD and they look quite similar. Except for one thing. >>> In the FreeBSD case there are these error messages that are not seen with Linux: >>> >>> [drm] pstate TEST_DEBUG_DATA: 0x0 >>> WARNING !(0) failed at >>> /usr/home/avg/devel/kms-drm/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c:868 >>> #0 0xffffffff83451633 at linux_dump_stack+0x23 >>> #1 0xffffffff8325a9ee at dcn10_verify_allow_pstate_change_high+0x4e >>> #2 0xffffffff8325e925 at dcn10_wait_for_mpcc_disconnect+0x25 >>> #3 0xffffffff8325de53 at dcn10_disable_plane+0x53 >>> #4 0xffffffff8325c9f5 at dcn10_init_hw+0x755 >>> #5 0xffffffff83295ca8 at dc_create+0x538 >>> #6 0xffffffff8327a8da at dm_hw_init+0x1ea >>> #7 0xffffffff831701d1 at amdgpu_device_init+0x1b11 >>> #8 0xffffffff83185177 at amdgpu_driver_load_kms+0xd7 >>> #9 0xffffffff833f138e at drm_dev_register+0x17e >>> #10 0xffffffff83178dea at amdgpu_pci_probe+0x18a >>> #11 0xffffffff83456f40 at linux_pci_attach+0x560 >>> #12 0xffffffff80bf68ea at device_attach+0x3ca >>> #13 0xffffffff80bf6490 at device_probe_and_attach+0x70 >>> #14 0xffffffff80bf8358 at bus_generic_driver_added+0x58 >>> #15 0xffffffff80bf4289 at devclass_driver_added+0x39 >>> #16 0xffffffff80bf41c7 at devclass_add_driver+0x147 >>> #17 0xffffffff83455ae9 at _linux_pci_register_driver+0xc9 >>> >>> That warning plus stack trace is actually BREAK_TO_DEBUGGER() in the original >>> Linux code. >>> So, that makes me think that the problem is pretty serious. >> >> BREAK_TO_DEBUGGER is probably overly scary here. It's somewhat a concern >> as this means power consumption might be higher than expected. We've >> seen this issue on several systems without any other adverse effects to >> usability. >> >> Harry >> >>> I tried searching for "TEST_DEBUG_DATA: 0x0" and I could not find a single >>> result with "0x0" in it. Usually there is some non-zero value. >>> To me this looks like maybe some hardware component is not turned on... >>> Perhaps this is something relatively obvious for people that hack on the driver >>> and the hardware. >>> I hope to receive some hint about what to look for. >>> I can cherry-pick commits from Linux, apply patches, add additional debugging >>> logs, etc. >>> >>> FreeBSD amdgpu dmesg: https://people.freebsd.org/~avg/amdgpu.dmesg.txt >>> Full Linux dmesg: https://people.freebsd.org/~avg/linux-5.3.0-28.dmesg.out >>> >>> And with with drm_debug=0xfff. >>> FreeBSD: https://people.freebsd.org/~avg/fbsd-dmesg.txt >>> Linux: https://people.freebsd.org/~avg/linux-5.3.9-dmesg.txt >>> >>> I see that both Linux and FreeBSD have similar messages about failing to load >>> some microcode components, but I guess that it must be okay since Linux works: >>> [ 4.487381] [drm] reserve 0x400000 from 0xf400c00000 for PSP TMR >>> [ 4.564893] [drm] failed to load ucode id (12) >>> [ 4.564894] [drm] psp command failed and response status is (-53233) >>> [ 4.567891] [drm] failed to load ucode id (13) >>> [ 4.567892] [drm] psp command failed and response status is (-65521) >>> [ 4.570891] [drm] failed to load ucode id (14) >>> [ 4.570892] [drm] psp command failed and response status is (-65521) > > > _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx