6.18 boot-splash chain: seamless VOP takeover, drm-logo reservation, gzip kernel, chosen-bootargs dedup

Kernel-side captures for the flare-edge warden-bootimprovements work,
photon-verified on warden-c8a3:

- rockchip_drm_vop.c vop_initial(): when U-Boot left the VOP scanning the
  boot logo (window enabled, not in standby), skip the AHB/dclk resets and
  window disables, and hold clocks + a runtime-PM reference until the first
  real vop_enable() drops them. The logo now survives the DRM bind; the
  only remaining blank is ~1.3s at the splash's own first modeset.
  KNOWN LOOSE END: a deferred-probe rebind runs the takeover twice and the
  first bind's held references are never dropped (a clk/PM leak that keeps
  the VOP domain on -- harmless for an always-on HMI, should be released in
  unbind eventually).
- rv1106-warden.dts: /reserved-memory/drm-logo@0 placeholder that U-Boot's
  fdt fixup stamps with the logo framebuffer (observed: addr=0xdf00000
  size=0x71000, kernel reserves it 'map non-reusable'); chosen bootargs
  drop earlyprintk (with earlycon it doubled every console line at 115200).
- Kernel config switched KERNEL_XZ -> KERNEL_GZIP: post-'Starting kernel'
  silence 4.2s -> 0.8s; the zImage grows past the old 11.95MB cap, which
  flare-edge sdk-patches 0007 removes (fdt_addr_r 12M -> 128M).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014L3eBF6wBXC55uJoZuUfS6
This commit is contained in:
BFE Engineering
2026-09-01 16:57:46 -06:00
co-authored by Claude Fable 5
parent 55b7cd5afa
commit 3d3b35459e
2 changed files with 2388 additions and 1 deletions
File diff suppressed because it is too large Load Diff
+26 -1
View File
@@ -17,7 +17,11 @@
chosen {
stdout-path = "serial2:115200n8";
bootargs = "earlycon=uart8250,mmio32,0xff4c0000 console=ttyS2,115200n8 earlyprintk rootwait";
/* earlyprintk removed 2026-09-01: with earlycon AND earlyprintk both
* on, every printk went out the 115200 UART twice -- console writes
* are synchronous, so the duplication was seconds of wall time over
* a full boot log. earlycon stays for pre-console visibility. */
bootargs = "earlycon=uart8250,mmio32,0xff4c0000 console=ttyS2,115200n8 rootwait";
};
memory@0 {
@@ -25,6 +29,27 @@
reg = <0x00000000 0x10000000>; /* 256 MiB */
};
reserved-memory {
#address-cells = <1>;
#size-cells = <1>;
ranges;
/*
* Boot-logo framebuffer handoff. U-Boot's board_fdt_fixup
* (rockchip_display.c) looks for a /reserved-memory child with
* this compatible and stamps the address/size of the
* framebuffer it drew the logo into; the zero reg here is the
* unfixed placeholder. With the region reserved, the kernel
* never scribbles on the logo, and the VOP driver's seamless
* takeover (rockchip_drm_vop.c vop_initial) keeps scanning it
* until the first real modeset -- the userspace splash.
*/
drm_logo: drm-logo@0 {
compatible = "rockchip,drm-logo";
reg = <0x0 0x0>;
};
};
/* --- M5: AIC8800DC wifi/BT power sequencing --- */
sdio_pwrseq: sdio-pwrseq {
compatible = "mmc-pwrseq-simple";