NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: port-amd64/58657: i915drmkms blank screen
The following reply was made to PR port-amd64/58657; it has been noted by GNATS.
From: RVP <rvp%SDF.ORG@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc: hoshinomori <hoshinomori%owarisekai.moe@localhost>
Subject: Re: port-amd64/58657: i915drmkms blank screen
Date: Sun, 1 Nov 2026 09:44:36 +0000 (UTC)
On Wed, 28 Oct 2026, hoshinomori via gnats wrote:
> >Description:
> I'm facing a similar problem on my Dell XPS 13 7390 2-in-1 with i7-1065g7.
> 000:02:0: Intel product 8a52 (VGA display, revision 0x07)
>
> I investigated an earlier crash dump. After GT initialization failed,
> the cleanup path destroyed rps->power.mutex.
> Then framebuffer initialization attempted to lock that mutex in
> intel_rps_mark_interactive(), resulting in fatal page fault.
> [...]
>
> >Fix:
> linux's submit_reg is u32 pointer
> u32 __iomem *submit_reg;
> while in netbsd it is byte offset
> bus_size_t submit_reg;
> apply the patch to intel_lrc.c
>
> Index: intel_lrc.c
> ===================================================================
> RCS file: /cvsroot/src/sys/external/bsd/drm2/dist/drm/i915/gt/intel_lrc.c,v
> retrieving revision 1.8
> diff -u -r1.8 intel_lrc.c
> --- intel_lrc.c 19 Dec 2021 12:32:15 -0000 1.8
> +++ intel_lrc.c 28 Oct 2026 16:00:33 -0000
> @@ -1415,8 +1415,8 @@
> {
> #ifdef __NetBSD__
> if (execlists->ctrl_reg) {
> - bus_space_write_4(execlists->bst, execlists->bsh, execlists->submit_reg + port * 2, lower_32_bits(desc));
> - bus_space_write_4(execlists->bst, execlists->bsh, execlists->submit_reg + port * 2 + 1, upper_32_bits(desc));
> + bus_space_write_4(execlists->bst, execlists->bsh, execlists->submit_reg + sizeof(u32) * (port * 2), lower_32_bits(desc));
> + bus_space_write_4(execlists->bst, execlists->bsh, execlists->submit_reg + sizeof(u32) * (port * 2 + 1), upper_32_bits(desc));
> } else {
> bus_space_write_4(execlists->bst, execlists->bsh, execlists->submit_reg, upper_32_bits(desc));
> bus_space_write_4(execlists->bst, execlists->bsh, execlists->submit_reg, lower_32_bits(desc));
>
Wow! This absolutely makes my own Ice Lake GT1 IGPU work! Before, it would
blank the screen and drop into the debugger, and I'd have to type
<SPACE><SPACE>reboot
blind to reboot the system. So, thank you! Edited dmesg follows:
---START---
cpu0: Intel(R) Core(TM) i3-1005G1 CPU @ 1.20GHz, id 0x706e5
[...]
pci_mem_find: void region
i915drmkms0: map 5 failed
i915drmkms0 {drm:netbsd:i915_driver_probe+0x32f} WOPCM: 2048K
i915drmkms0 {drm:netbsd:intel_uc_init_early+0x96} enable_guc=0 (guc:no submission:no huc:no)
{drm:netbsd:i915_gem_init_early+0x67} fake context support initialized
pci_mem_find: void region
pci_mem_find: void region
pci_mem_find: void region
pci_mem_find: void region
pci_mem_find: void region
pci_mem_find: void region
pci_mem_find: void region
pci_mem_find: void region
pci_mem_find: void region
pci_mem_find: void region
pci_mem_find: void region
pci_mem_find: void region
i915drmkms0 {drm:netbsd:intel_uncore_init_mmio+0x2dc} unclaimed mmio detected on uncore init, clearing
{drm:netbsd:intel_device_info_init_mmio+0x1a9} vcs2 fused off
{drm:netbsd:intel_device_info_init_mmio+0xda} vdbox enable: 0001, instances: 0001
{drm:netbsd:intel_device_info_init_mmio+0x140} vebox enable: 0001, instances: 0001
{drm:netbsd:i915_ggtt_probe_hw+0x4b2} GGTT size = 4096M
{drm:netbsd:i915_ggtt_probe_hw+0x4d0} GMADR size = 256M
{drm:netbsd:i915_ggtt_probe_hw+0x4f9} DSM size = 0M
{drm:netbsd:wa_init_mcr+0x1f7} L3 fuse = 1
{drm:netbsd:wa_init_mcr+0xe6} MCR slice/subslice = 5000000
{drm:netbsd:i915_driver_probe+0x64a} Initialized 8 GT workarounds on global
{drm:netbsd:intel_opregion_setup+0x67} graphic opregion physical addr: 0x414ff018
{drm:netbsd:intel_opregion_setup+0x15d} ACPI OpRegion version 2.1.0
{drm:netbsd:intel_opregion_setup+0x181} Public ACPI methods supported
{drm:netbsd:intel_opregion_setup+0x443} SWSCI supported
{drm:netbsd:swsci+0x127} SWSCI request timed out
{drm:netbsd:swsci+0x2a5} SWSCI request already in progress
{drm:netbsd:intel_opregion_setup+0x512} SWSCI GBDA callbacks 00000001, SBCB callbacks 00000001
{drm:netbsd:intel_opregion_setup+0x410} ASLE supported
{drm:netbsd:intel_opregion_setup+0x3f8} ASLE extension supported
[drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[drm] Driver supports precise vblank timestamp query.
{drm:netbsd:intel_power_domains_init_hw+0x1d} rawclk rate: 19200 kHz
{drm:netbsd:intel_combo_phy_init+0x305} Combo PHY A already enabled, won't reprogram it.
{drm:netbsd:intel_combo_phy_init+0x305} Combo PHY B already enabled, won't reprogram it.
{drm:netbsd:intel_cdclk_init+0x6f} Current CDCLK 172800 kHz, VCO 345600 kHz, ref 38400 kHz, bypass 50000 kHz, voltage level 0
{drm:netbsd:intel_combo_phy_init+0x305} Combo PHY A already enabled, won't reprogram it.
{drm:netbsd:intel_combo_phy_init+0x305} Combo PHY B already enabled, won't reprogram it.
allocated pic msi5 type edge pin 0 level 6 to cpu0 slot 22 idt entry 104
i915drmkms0: interrupting at msi5 vec 0 (i915drmkms0)
[drm] Finished loading DMC firmware i915/icl_dmc_ver1_09.bin (v1.9)
{drm:netbsd:intel_dump_cdclk_state+0x36} Current CDCLK 172800 kHz, VCO 345600 kHz, ref 38400 kHz, bypass 50000 kHz, voltage level 0
{drm:netbsd:intel_update_max_cdclk+0x87} Max CD clock rate: 652800 kHz
{drm:netbsd:intel_modeset_init+0x1578} Max dotclock rate: 1305600 kHz
{drm:netbsd:intel_engines_init+0x356} Initialized 10 engine workarounds on rcs'0
{drm:netbsd:intel_engines_init+0x35f} Initialized 4 whitelist workarounds on rcs'0
{drm:netbsd:intel_engines_init+0x368} Initialized 5 context workarounds on rcs'0
{drm:netbsd:intel_engines_init+0x35f} Initialized 3 whitelist workarounds on vcs'0
{drm:netbsd:intel_engines_driver_register+0x190} renamed rcs'0 to rcs0
{drm:netbsd:intel_engines_driver_register+0x190} renamed bcs'0 to bcs0
{drm:netbsd:intel_engines_driver_register+0x190} renamed vcs'0 to vcs0
{drm:netbsd:intel_engines_driver_register+0x190} renamed vecs'0 to vecs0
[drm] Initialized i915 1.6.0 20200114 for i915drmkms0 on minor 0
intelfb0 at i915drmkms0
i915 device info: pciid=0x8a56 rev=0x07 platform=ICELAKE (subplatform=0x1) gen=11
i915 device info: engines: 47
i915 device info: gen: 11
i915 device info: gt: 0
i915 device info: iommu: n/a
i915 device info: memory-regions: 5
i915 device info: page-sizes: 211000
i915 device info: platform: ICELAKE
i915 device info: ppgtt-size: 48
i915 device info: ppgtt-type: 2
i915 device info: is_mobile: no
i915 device info: is_lp: no
i915 device info: require_force_probe: no
i915 device info: is_dgfx: no
i915 device info: has_64bit_reloc: yes
i915 device info: gpu_reset_clobbers_display: no
i915 device info: has_reset_engine: yes
i915 device info: has_fpga_dbg: yes
i915 device info: has_global_mocs: no
i915 device info: has_gt_uc: yes
i915 device info: has_l3_dpf: no
i915 device info: has_llc: yes
i915 device info: has_logical_ring_contexts: yes
i915 device info: has_logical_ring_elsq: yes
i915 device info: has_logical_ring_preemption: yes
i915 device info: has_pooled_eu: no
i915 device info: has_rc6: yes
i915 device info: has_rc6p: no
i915 device info: has_rps: yes
i915 device info: has_runtime_pm: yes
i915 device info: has_snoop: no
i915 device info: has_coherent_ggtt: no
i915 device info: unfenced_needs_alignment: no
i915 device info: hws_needs_physical: no
i915 device info: cursor_needs_physical: no
i915 device info: has_csr: yes
i915 device info: has_ddi: yes
i915 device info: has_dp_mst: yes
i915 device info: has_dsb: no
i915 device info: has_dsc: yes
i915 device info: has_fbc: no
i915 device info: has_gmch: no
i915 device info: has_hdcp: yes
i915 device info: has_hotplug: yes
i915 device info: has_ipc: yes
i915 device info: has_modular_fia: no
i915 device info: has_overlay: no
i915 device info: has_psr: yes
i915 device info: overlay_needs_physical: no
i915 device info: supports_tv: no
i915 device info: slice total: 1, mask=0001
i915 device info: subslice total: 4
i915 device info: slice0: 4 subslices, mask=00000033
i915 device info: EU total: 32
i915 device info: EU per subslice: 8
i915 device info: has slice power gating: yes
i915 device info: has subslice power gating: yes
i915 device info: has EU power gating: yes
i915 device info: CS timestamp frequency: 19200 kHz
[drm] DRM_I915_DEBUG enabled
[drm] DRM_I915_DEBUG_GEM enabled
intelfb0: framebuffer at 0x4000040000, size 1920x1200, depth 32, stride 7680
max_dotclock according to supported modes: 166840
wsdisplay0 at intelfb0 kbdmux 1: console (default, vt100 emulation), using wskbd0
[...]
max_dotclock according to supported modes: 166840
wsdisplay0: screen 1 added (default, vt100 emulation)
max_dotclock according to supported modes: 166840
wsdisplay0: screen 2 added (default, vt100 emulation)
max_dotclock according to supported modes: 166840
wsdisplay0: screen 3 added (default, vt100 emulation)
max_dotclock according to supported modes: 166840
wsdisplay0: screen 4 added (default, vt100 emulation)
[...]
{drm:netbsd:intel_combo_phy_init+0x305} Combo PHY A already enabled, won't reprogram it.
{drm:netbsd:intel_combo_phy_init+0x305} Combo PHY B already enabled, won't reprogram it.
[...]
{drm:netbsd:intel_pipe_update_end+0x19e} *ERROR* Atomic update failure on pipe A (start=241379 end=241380) time 721 us, min 1192, max 1199, scanline start 1164, end 1217
{drm:netbsd:intel_pipe_update_end+0x19e} *ERROR* Atomic update failure on pipe A (start=288066 end=288067) time 212 us, min 1192, max 1199, scanline start 1187, end 1196
---END---
-RVP
Home |
Main Index |
Thread Index |
Old Index