Hi Jonathan.
On Sat, May 23, 2026 at 12:37:30AM +1000, Jonathan Gray wrote:
> On Fri, May 22, 2026 at 12:26:05PM +0000, Mikolaj Kucharski wrote:
> > >Synopsis: Fresh install ends up with blank screen, disabling inteldrm
> > >brings console back.
> > >Category: kernel
> > >Environment:
> > System : OpenBSD 7.9
> > Details : OpenBSD 7.9-current (GENERIC.MP) #501: Thu May 21
> > 19:28:37 MDT 2026
> >
> > [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
> >
> > Architecture: OpenBSD.amd64
> > Machine : amd64
> > >Description:
> > OpenBSD fresh install, every boot with non-modified GENERIC.MP. Initial
> > dmesg is visible. Blue
> > background, white font progresses with boot up. The moment filesystem is
> > mounted and firmware files are
> > fetchable screen goes dark pitch black. System boots up as I can SSH into
> > the laptop and from inside all
> > seems to be good. Except no glass console.
> > >How-To-Repeat:
> > Fresh install of OpenBSD/amd64 on ThinkPad X1 Carbon Gen 13 Aurora
> > Edition.
> > >Fix:
> > Unknown. Workaround is to boot -c and `disable inteldrm*`. Below are
> > details fetched over SSH with
>
> Does this diff to disable GuC submission (and low power states)
> make the screen light up?
>
> Index: sys/dev/pci/drm/i915/i915_driver.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/pci/drm/i915/i915_driver.c,v
> diff -u -p -r1.30 i915_driver.c
> --- sys/dev/pci/drm/i915/i915_driver.c 30 Apr 2026 04:33:06 -0000
> 1.30
> +++ sys/dev/pci/drm/i915/i915_driver.c 22 May 2026 14:27:18 -0000
> @@ -2322,12 +2322,10 @@ inteldrm_attach(struct device *parent, s
>
> dev_priv->display = display;
>
> - /*
> - * with GuC submission, init sometimes fails on Alder Lake-P
> - * and Raptor Lake-S, too early for IS_ALDERLAKE
> - */
> - if (info->platform == INTEL_ALDERLAKE_P ||
> - info->platform == INTEL_ALDERLAKE_S)
> + /* uc_expand_default_options() with no GuC submission */
> + if (GRAPHICS_VER(dev_priv) >= 12 &&
> + (INTEL_INFO(dev_priv)->platform != INTEL_TIGERLAKE) &&
> + (INTEL_INFO(dev_priv)->platform != INTEL_ROCKETLAKE))
> dev_priv->params.enable_guc = ENABLE_GUC_LOAD_HUC;
>
> mmio_bar = (GRAPHICS_VER(dev_priv) == 2) ? 0x14 : 0x10;
> Index: sys/dev/pci/drm/i915/i915_pci.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/pci/drm/i915/i915_pci.c,v
> diff -u -p -r1.25 i915_pci.c
> --- sys/dev/pci/drm/i915/i915_pci.c 9 Mar 2026 23:58:01 -0000 1.25
> +++ sys/dev/pci/drm/i915/i915_pci.c 22 May 2026 14:21:40 -0000
> @@ -771,7 +771,7 @@ static const struct intel_device_info mt
> .has_flat_ccs = 0,
> .has_gmd_id = 1,
> .has_guc_deprivilege = 1,
> - .has_guc_tlb_invalidation = 1,
> + .has_guc_tlb_invalidation = 0,
> .has_llc = 0,
> .has_mslice_steering = 0,
> .has_snoop = 1,
>
Above diff didn't help.
After booting with your diff, I then did following change:
Index: sys/dev/pci/drm/i915/i915_driver.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/drm/i915/i915_driver.c,v
diff -u -p -u -r1.30 i915_driver.c
--- sys/dev/pci/drm/i915/i915_driver.c 30 Apr 2026 04:33:06 -0000 1.30
+++ sys/dev/pci/drm/i915/i915_driver.c 22 May 2026 18:31:12 -0000
@@ -2322,13 +2322,16 @@ inteldrm_attach(struct device *parent, s
dev_priv->display = display;
- /*
- * with GuC submission, init sometimes fails on Alder Lake-P
- * and Raptor Lake-S, too early for IS_ALDERLAKE
- */
- if (info->platform == INTEL_ALDERLAKE_P ||
- info->platform == INTEL_ALDERLAKE_S)
+ printf("MMM %s: drm graphics_ver=%d platform=%d\n", __func__,
GRAPHICS_VER(dev_priv), INTEL_INFO(dev_priv)->platform);
+ /* uc_expand_default_options() with no GuC submission */
+ if (GRAPHICS_VER(dev_priv) >= 12 &&
+ (INTEL_INFO(dev_priv)->platform != INTEL_TIGERLAKE) &&
+ (INTEL_INFO(dev_priv)->platform != INTEL_ROCKETLAKE)) {
dev_priv->params.enable_guc = ENABLE_GUC_LOAD_HUC;
+ printf("MMM %s: drm enable_guc=%d (inside if-statment)\n",
__func__, dev_priv->params.enable_guc);
+ } else {
+ printf("MMM %s: drm enable_guc=%d (outside if-statment)\n",
__func__, dev_priv->params.enable_guc);
+ }
mmio_bar = (GRAPHICS_VER(dev_priv) == 2) ? 0x14 : 0x10;
Index: sys/dev/pci/drm/i915/i915_pci.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/drm/i915/i915_pci.c,v
diff -u -p -u -r1.25 i915_pci.c
--- sys/dev/pci/drm/i915/i915_pci.c 9 Mar 2026 23:58:01 -0000 1.25
+++ sys/dev/pci/drm/i915/i915_pci.c 22 May 2026 18:31:12 -0000
@@ -771,7 +771,7 @@ static const struct intel_device_info mt
.has_flat_ccs = 0,
.has_gmd_id = 1,
.has_guc_deprivilege = 1,
- .has_guc_tlb_invalidation = 1,
+ .has_guc_tlb_invalidation = 0,
.has_llc = 0,
.has_mslice_steering = 0,
.has_snoop = 1,
dmesg says with above patch:
drm0 at inteldrm0
MMM inteldrm_attach: drm graphics_ver=12 platform=37
MMM inteldrm_attach: drm enable_guc=2 (inside if-statment)
inteldrm0: msi, METEORLAKE, gen 12
--
Regards,
Mikolaj