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

Reply via email to