mirror of
https://github.com/torvalds/linux.git
synced 2026-05-14 01:08:22 +02:00
Add corebootdrm, a DRM driver for coreboot framebuffers. The driver supports a pre-initialized framebuffer with various packed RGB formats. The driver code is fairly small and uses the same logic as the other sysfb drivers. Most of the implementation comes from existing sysfb helpers. Until now, coreboot relied on simpledrm or simplefb for boot-up graphics output. Initialize the platform device for corebootdrm in the same place in framebuffer_probe(). With a later commit, the simple-framebuffer should be removed. v4: - sort include statements (Tzung-Bi) v3: - comment on _HAS_LFB semantics (Tzung-Bi) - fix typo in commit description (Tzung-Bi) - comment on simple-framebuffer being obsolete for coreboot v2: - reimplement as platform driver - limit resources and mappings to known framebuffer memory; no page alignment - create corebootdrm device from coreboot framebuffer code Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Javier Martinez Canillas <javierm@redhat.com> Acked-by: Julius Werner <jwerner@chromium.org> Acked-by: Tzung-Bi Shih <tzungbi@kernel.org> # coreboot Link: https://patch.msgid.link/20260217155836.96267-12-tzimmermann@suse.de
86 lines
2.8 KiB
Plaintext
86 lines
2.8 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
menuconfig GOOGLE_FIRMWARE
|
|
bool "Google Firmware Drivers"
|
|
default n
|
|
help
|
|
These firmware drivers are used by Google servers,
|
|
Chromebooks and other devices using coreboot firmware.
|
|
If in doubt, say "N".
|
|
|
|
if GOOGLE_FIRMWARE
|
|
|
|
config GOOGLE_SMI
|
|
tristate "SMI interface for Google platforms"
|
|
depends on X86 && ACPI && DMI
|
|
help
|
|
Say Y here if you want to enable SMI callbacks for Google
|
|
platforms. This provides an interface for writing to and
|
|
clearing the event log. If CONFIG_EFI is also enabled this
|
|
driver provides an interface for reading and writing NVRAM
|
|
variables.
|
|
|
|
config GOOGLE_CBMEM
|
|
tristate "CBMEM entries in sysfs"
|
|
depends on GOOGLE_COREBOOT_TABLE
|
|
help
|
|
CBMEM is a downwards-growing memory region created by the
|
|
Coreboot BIOS containing tagged data structures from the
|
|
BIOS. These data structures expose things like the verified
|
|
boot firmware variables, flash layout, firmware event log,
|
|
and more.
|
|
|
|
This option enables the cbmem module, which causes the
|
|
kernel to search for Coreboot CBMEM entries, and expose the
|
|
memory for each entry in sysfs under
|
|
/sys/bus/coreboot/devices/cbmem-<id>.
|
|
|
|
config GOOGLE_COREBOOT_TABLE
|
|
tristate "Coreboot Table Access"
|
|
depends on HAS_IOMEM && (ACPI || OF)
|
|
help
|
|
This option enables the coreboot_table module, which provides other
|
|
firmware modules access to the coreboot table. The coreboot table
|
|
pointer is accessed through the ACPI "GOOGCB00" object or the
|
|
device tree node /firmware/coreboot.
|
|
If unsure say N.
|
|
|
|
config GOOGLE_MEMCONSOLE
|
|
tristate
|
|
depends on GOOGLE_MEMCONSOLE_X86_LEGACY || GOOGLE_MEMCONSOLE_COREBOOT
|
|
|
|
config GOOGLE_MEMCONSOLE_X86_LEGACY
|
|
tristate "Firmware Memory Console - X86 Legacy support"
|
|
depends on X86 && ACPI && DMI
|
|
select GOOGLE_MEMCONSOLE
|
|
help
|
|
This option enables the kernel to search for a firmware log in
|
|
the EBDA on Google servers. If found, this log is exported to
|
|
userland in the file /sys/firmware/log.
|
|
|
|
config GOOGLE_FRAMEBUFFER_COREBOOT
|
|
tristate "Coreboot Framebuffer"
|
|
depends on GOOGLE_COREBOOT_TABLE
|
|
help
|
|
This option enables the kernel to search for a framebuffer in
|
|
the coreboot table. If found, it is registered with a platform
|
|
device of type coreboot-framebuffer. Using the old device of
|
|
type simple-framebuffer is deprecated.
|
|
|
|
config GOOGLE_MEMCONSOLE_COREBOOT
|
|
tristate "Firmware Memory Console"
|
|
depends on GOOGLE_COREBOOT_TABLE
|
|
select GOOGLE_MEMCONSOLE
|
|
help
|
|
This option enables the kernel to search for a firmware log in
|
|
the coreboot table. If found, this log is exported to userland
|
|
in the file /sys/firmware/log.
|
|
|
|
config GOOGLE_VPD
|
|
tristate "Vital Product Data"
|
|
depends on GOOGLE_COREBOOT_TABLE
|
|
help
|
|
This option enables the kernel to expose the content of Google VPD
|
|
under /sys/firmware/vpd.
|
|
|
|
endif # GOOGLE_FIRMWARE
|