From 288b7538d59c6821b01777eb17959c057c881ac3 Mon Sep 17 00:00:00 2001 From: Hermes Date: Tue, 9 Jun 2026 21:42:24 -0400 Subject: [PATCH] Fix CM5 display: delay vc4/panel_cwu50 to after RP1 PCIe init Loading display drivers in initrd (~3s) before RP1 PCIe southbridge is ready (~12s) causes 'Cannot find any crtc or sizes' because the DSI encoder isn't reachable. Rex loads these via udev late in boot. - boot.initrd.kernelModules: only ocp8178_bl (backlight, RP1-independent) - boot.kernelModules: vc4 + panel_cwu50 loaded in stage 2 after RP1 --- hosts/uConsole/configuration.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/hosts/uConsole/configuration.nix b/hosts/uConsole/configuration.nix index ebe124b..68791ca 100755 --- a/hosts/uConsole/configuration.nix +++ b/hosts/uConsole/configuration.nix @@ -185,6 +185,14 @@ in boot.blacklistedKernelModules = [ ]; + # CRITICAL: Delay vc4 + panel_cwu50 loading to after RP1 PCIe init + # On CM5, RP1 southbridge takes ~12s to initialize. Loading display + # drivers in initrd (~3s) causes "Cannot find any crtc" because the + # DSI encoder isn't reachable yet. Rex loads them later via udev. + # Keep ocp8178_bl in initrd (backlight is independent of RP1). + boot.initrd.kernelModules = lib.mkForce [ "ocp8178_bl" ]; + boot.kernelModules = lib.mkBefore [ "vc4" "panel_cwu50" ]; + # ============================================================ # Extra udev rules for SDR and HAM radio devices # ============================================================