From: Thomas Zimmermann <tzimmermann@suse.de>
To: tzungbi@kernel.org, briannorris@chromium.org,
jwerner@chromium.org, javierm@redhat.com,
maarten.lankhorst@linux.intel.com, mripard@kernel.org,
airlied@gmail.com, simona@ffwll.ch
Cc: chrome-platform@lists.linux.dev, dri-devel@lists.freedesktop.org,
Thomas Zimmermann <tzimmermann@suse.de>
Subject: [PATCH 0/8] drm, coreboot: Add DRM coreboot driver
Date: Thu, 8 Jan 2026 15:19:40 +0100 [thread overview]
Message-ID: <20260108145058.56943-1-tzimmermann@suse.de> (raw)
Coreboot implements framebuffer support via simplefb. Provide a
native DRM driver. Keep the simplefb code for now.
For each firmware's provided framebuffer, we want a dedicated DRM
driver tailored towards the platform's feature set. The coreboot
framebuffer device creates a simplefb device for the provided
framebuffer. When the native graphics driver unloads the simplefb
device, it leaves behind a dangling pointer in the coreboot framebuffer
device. [1] This only works because the coreboot framebuffer device
never runs this code; even after the native driver took over the
hardware. At that point the underlying coreboot framebuffer is gone,
which is inconsistent with kernel state.
Additionally, the simplefb drivers handle simple-framebuffer nodes in
the DeviceTree, but were not meant for supporting arbitrary framebuffers.
The simplefb infrastructure should be phased out for non-DT use cases.
Coreboot is one of the final users of the code (besides n64).
Patches 1 to 4 of this series prepare the kernel's coreboot support for
the DRM driver. With patch 1, the coreboot framebuffer device will only
be created if it really handles the framebuffer. Some systems emulate
UEFI instead. The other 3 patches make coreboot drivers available to
other subsystems. A DRM driver will then be able to bind directly to a
coreboot device.
Patch 5 prepares the kernel's aperture helpers for coreboot devices.
This is required to handover hardware to the native graphics driver.
Patches 6 to 8 prepare DRM and add a new driver for the coreboot
framebuffer. The corebootdrm driver follows the pattern established by
similar drivers. It also uses the same sysfb helpers. It's fairly small
therefore.
Tested on an HP Chromebook with MrChromebox 4.16. Runs with Weston and
fbcon. Xorg requires an additional patch available at [2].
[1] https://elixir.bootlin.com/linux/v6.18/source/drivers/firmware/google/framebuffer-coreboot.c#L92
[2] https://gitlab.freedesktop.org/tzimmermann/xserver/-/commit/0b326aad28549762ed2b0e2bedf8f8a42f1f6b3b
Thomas Zimmermann (8):
firmware: google: Do sysfb test before creating coreboot framebuffer
firmware: google: Init coreboot bus with subsys_initcall()
firmware: google: Clean up include statements in coreboot_table.h
firmware: google: Export coreboot driver and device interfaces
video/aperture: Support coreboot devices
drm/sysfb: Remove duplicate declarations
drm/sysfb: Generalize pixel-format matching
drm/sysfb: corebootdrm: Add DRM driver for coreboot framebuffers
drivers/firmware/google/Kconfig | 1 +
drivers/firmware/google/cbmem.c | 4 +-
drivers/firmware/google/coreboot_table.c | 33 +-
.../firmware/google/framebuffer-coreboot.c | 20 +-
drivers/firmware/google/memconsole-coreboot.c | 3 +-
drivers/firmware/google/vpd.c | 3 +-
drivers/gpu/drm/sysfb/Kconfig | 16 +
drivers/gpu/drm/sysfb/Makefile | 1 +
drivers/gpu/drm/sysfb/corebootdrm.c | 402 ++++++++++++++++++
drivers/gpu/drm/sysfb/drm_sysfb.c | 24 ++
drivers/gpu/drm/sysfb/drm_sysfb_helper.h | 17 +-
drivers/gpu/drm/sysfb/drm_sysfb_screen_info.c | 30 --
drivers/gpu/drm/sysfb/efidrm.c | 8 +-
drivers/gpu/drm/sysfb/vesadrm.c | 8 +-
drivers/video/aperture.c | 60 ++-
include/linux/aperture.h | 16 +
.../linux/coreboot.h | 29 +-
17 files changed, 575 insertions(+), 100 deletions(-)
create mode 100644 drivers/gpu/drm/sysfb/corebootdrm.c
rename drivers/firmware/google/coreboot_table.h => include/linux/coreboot.h (86%)
--
2.52.0
next reply other threads:[~2026-01-08 14:51 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-08 14:19 Thomas Zimmermann [this message]
2026-01-08 14:19 ` [PATCH 1/8] firmware: google: Do sysfb test before creating coreboot framebuffer Thomas Zimmermann
2026-01-08 16:55 ` Julius Werner
2026-01-09 9:17 ` Thomas Zimmermann
2026-01-09 10:21 ` Javier Martinez Canillas
2026-01-13 22:32 ` Julius Werner
2026-01-14 8:13 ` Thomas Zimmermann
2026-01-14 20:32 ` Julius Werner
2026-01-08 14:19 ` [PATCH 2/8] firmware: google: Init coreboot bus with subsys_initcall() Thomas Zimmermann
2026-01-09 10:24 ` Javier Martinez Canillas
2026-01-08 14:19 ` [PATCH 3/8] firmware: google: Clean up include statements in coreboot_table.h Thomas Zimmermann
2026-01-09 10:24 ` Javier Martinez Canillas
2026-01-08 14:19 ` [PATCH 4/8] firmware: google: Export coreboot driver and device interfaces Thomas Zimmermann
2026-01-09 10:26 ` Javier Martinez Canillas
2026-01-08 14:19 ` [PATCH 5/8] video/aperture: Support coreboot devices Thomas Zimmermann
2026-01-09 10:30 ` Javier Martinez Canillas
2026-01-08 14:19 ` [PATCH 6/8] drm/sysfb: Remove duplicate declarations Thomas Zimmermann
2026-01-09 10:31 ` Javier Martinez Canillas
2026-01-14 9:02 ` Thomas Zimmermann
2026-01-08 14:19 ` [PATCH 7/8] drm/sysfb: Generalize pixel-format matching Thomas Zimmermann
2026-01-09 10:32 ` Javier Martinez Canillas
2026-01-08 14:19 ` [PATCH 8/8] drm/sysfb: corebootdrm: Add DRM driver for coreboot framebuffers Thomas Zimmermann
2026-01-14 21:49 ` kernel test robot
2026-01-14 22:12 ` kernel test robot
2026-01-08 18:10 ` [PATCH 0/8] drm, coreboot: Add DRM coreboot driver Brian Norris
2026-01-09 8:50 ` Thomas Zimmermann
2026-01-09 10:37 ` Javier Martinez Canillas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260108145058.56943-1-tzimmermann@suse.de \
--to=tzimmermann@suse.de \
--cc=airlied@gmail.com \
--cc=briannorris@chromium.org \
--cc=chrome-platform@lists.linux.dev \
--cc=dri-devel@lists.freedesktop.org \
--cc=javierm@redhat.com \
--cc=jwerner@chromium.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=simona@ffwll.ch \
--cc=tzungbi@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox