<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/firmware/google/framebuffer-coreboot.c, branch v7.1-rc5</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v7.1-rc5</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v7.1-rc5'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2026-02-20T13:38:24+00:00</updated>
<entry>
<title>drm/sysfb: corebootdrm: Add DRM driver for coreboot framebuffers</title>
<updated>2026-02-20T13:38:24+00:00</updated>
<author>
<name>Thomas Zimmermann</name>
<email>tzimmermann@suse.de</email>
</author>
<published>2026-02-17T15:56:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=a29a1f0ec8d69ee917a9d4c84b844df0decff0ef'/>
<id>urn:sha1:a29a1f0ec8d69ee917a9d4c84b844df0decff0ef</id>
<content type='text'>
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 &lt;tzimmermann@suse.de&gt;
Reviewed-by: Javier Martinez Canillas &lt;javierm@redhat.com&gt;
Acked-by: Julius Werner &lt;jwerner@chromium.org&gt;
Acked-by: Tzung-Bi Shih &lt;tzungbi@kernel.org&gt; # coreboot
Link: https://patch.msgid.link/20260217155836.96267-12-tzimmermann@suse.de
</content>
</entry>
<entry>
<title>firmware: google: Export coreboot table entries</title>
<updated>2026-02-20T13:38:21+00:00</updated>
<author>
<name>Thomas Zimmermann</name>
<email>tzimmermann@suse.de</email>
</author>
<published>2026-02-17T15:56:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=95cef38e70250234a254e6228eb7342b6deaaffa'/>
<id>urn:sha1:95cef38e70250234a254e6228eb7342b6deaaffa</id>
<content type='text'>
Move types for coreboot table entries to &lt;linux/coreboot.h&gt;. Allows
drivers in other subsystems to use these structures.

Signed-off-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;
Acked-by: Tzung-Bi Shih &lt;tzungbi@kernel.org&gt;
Acked-by: Julius Werner &lt;jwerner@chromium.org&gt;
Link: https://patch.msgid.link/20260217155836.96267-9-tzimmermann@suse.de
</content>
</entry>
<entry>
<title>firmware: google: Clean up include statements in coreboot_table.h</title>
<updated>2026-02-20T13:38:20+00:00</updated>
<author>
<name>Thomas Zimmermann</name>
<email>tzimmermann@suse.de</email>
</author>
<published>2026-02-17T15:56:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=086831fbd2a50384282a486014529893833f68c4'/>
<id>urn:sha1:086831fbd2a50384282a486014529893833f68c4</id>
<content type='text'>
Include &lt;linux/mod_devicetable.h&gt; from source files and only forward-
declare struct coreboot_device_id in coreboot_table.h.

Signed-off-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;
Reviewed-by: Javier Martinez Canillas &lt;javierm@redhat.com&gt;
Acked-by: Tzung-Bi Shih &lt;tzungbi@kernel.org&gt;
Acked-by: Julius Werner &lt;jwerner@chromium.org&gt;
Link: https://patch.msgid.link/20260217155836.96267-8-tzimmermann@suse.de
</content>
</entry>
<entry>
<title>firmware: google: framebuffer: Tie platform device to PCI hardware</title>
<updated>2026-02-20T13:38:19+00:00</updated>
<author>
<name>Thomas Zimmermann</name>
<email>tzimmermann@suse.de</email>
</author>
<published>2026-02-17T15:56:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=0d847e16ca6c23a99a0228db6c2589d4b1898321'/>
<id>urn:sha1:0d847e16ca6c23a99a0228db6c2589d4b1898321</id>
<content type='text'>
Use the PCI device as parent of the system-framebuffer device instead
of the coreboot device. Prevents SIGBUS or SIGSEG after hot-unplug of
the PCI device while the framebuffer is active.

The simple-framebuffer device depends on the PCI hardware, so this
device needs to be its parent. The current coreboot parent is no
longer needed after the system-framebuffer device has been created.

On systems without PCI or if no PCI parent device could be found,
the platform device hangs on the platform bus directly.

The fix here is similar to code in sysfb, which contained that same
bug.

Signed-off-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;
Acked-by: Tzung-Bi Shih &lt;tzungbi@kernel.org&gt;
Acked-by: Julius Werner &lt;jwerner@chromium.org&gt;
Link: https://patch.msgid.link/20260217155836.96267-5-tzimmermann@suse.de
</content>
</entry>
<entry>
<title>firmware: google: framebuffer: Init memory resource with helper macro</title>
<updated>2026-02-20T13:38:18+00:00</updated>
<author>
<name>Thomas Zimmermann</name>
<email>tzimmermann@suse.de</email>
</author>
<published>2026-02-17T15:56:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=94918485d266ea2b578f36955c8cc88a33706e28'/>
<id>urn:sha1:94918485d266ea2b578f36955c8cc88a33706e28</id>
<content type='text'>
Initialize framebuffer memory resource with DEFINE_RES_MEM() instead
of open-coding the setup.

While at it, drop the resource name to make the kernel use the device
name of the simple-framebuffer device for the resource. The latter
includes a device number. While the meaning of the resource name is
somewhat fuzzy and varies across entries in /proc/iomem, showing the
device name seems more helpful than showing a fixed name.

Signed-off-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;
Acked-by: Tzung-Bi Shih &lt;tzungbi@kernel.org&gt;
Acked-by: Julius Werner &lt;jwerner@chromium.org&gt;
Link: https://patch.msgid.link/20260217155836.96267-4-tzimmermann@suse.de
</content>
</entry>
<entry>
<title>firmware: google: framebuffer: Do not mark framebuffer as busy</title>
<updated>2026-02-20T13:38:18+00:00</updated>
<author>
<name>Thomas Zimmermann</name>
<email>tzimmermann@suse.de</email>
</author>
<published>2026-02-17T15:56:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=f3850d399de3b6142b02315227ef9e772ed0c302'/>
<id>urn:sha1:f3850d399de3b6142b02315227ef9e772ed0c302</id>
<content type='text'>
Remove the flag IORESOURCE_BUSY flag from coreboot's framebuffer
resource. It prevents simpledrm from successfully requesting the
range for its own use; resulting in errors such as

[    2.775430] simple-framebuffer simple-framebuffer.0: [drm] could not acquire memory region [mem 0x80000000-0x80407fff flags 0x80000200]

As with other uses of simple-framebuffer, the simple-framebuffer
device should only declare it's I/O resources, but not actively use
them.

Signed-off-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;
Fixes: 851b4c14532d ("firmware: coreboot: Add coreboot framebuffer driver")
Acked-by: Tzung-Bi Shih &lt;tzungbi@kernel.org&gt;
Acked-by: Julius Werner &lt;jwerner@chromium.org&gt;
Cc: Samuel Holland &lt;samuel@sholland.org&gt;
Cc: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Cc: Tzung-Bi Shih &lt;tzungbi@kernel.org&gt;
Cc: Brian Norris &lt;briannorris@chromium.org&gt;
Cc: Julius Werner &lt;jwerner@chromium.org&gt;
Cc: chrome-platform@lists.linux.dev
Cc: &lt;stable@vger.kernel.org&gt; # v4.18+
Link: https://patch.msgid.link/20260217155836.96267-3-tzimmermann@suse.de
</content>
</entry>
<entry>
<title>firmware: google: framebuffer: Do not unregister platform device</title>
<updated>2026-02-20T13:38:17+00:00</updated>
<author>
<name>Thomas Zimmermann</name>
<email>tzimmermann@suse.de</email>
</author>
<published>2026-02-17T15:56:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=5cd28bd28c8ce426b56ce4230dbd17537181d5ad'/>
<id>urn:sha1:5cd28bd28c8ce426b56ce4230dbd17537181d5ad</id>
<content type='text'>
The native driver takes over the framebuffer aperture by removing the
system- framebuffer platform device. Afterwards the pointer in drvdata
is dangling. Remove the entire logic around drvdata and let the kernel's
aperture helpers handle this. The platform device depends on the native
hardware device instead of the coreboot device anyway.

When commit 851b4c14532d ("firmware: coreboot: Add coreboot framebuffer
driver") added the coreboot framebuffer code, the kernel did not support
device-based aperture management. Instead native driviers only removed
the conflicting fbdev device. At that point, unregistering the framebuffer
device most likely worked correctly. It was definitely broken after
commit d9702b2a2171 ("fbdev/simplefb: Do not use struct
fb_info.apertures"). So take this commit for the Fixes tag. Earlier
releases might work depending on the native hardware driver.

Signed-off-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;
Fixes: d9702b2a2171 ("fbdev/simplefb: Do not use struct fb_info.apertures")
Acked-by: Tzung-Bi Shih &lt;tzungbi@kernel.org&gt;
Acked-by: Julius Werner &lt;jwerner@chromium.org&gt;
Cc: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;
Cc: Javier Martinez Canillas &lt;javierm@redhat.com&gt;
Cc: Hans de Goede &lt;hansg@kernel.org&gt;
Cc: linux-fbdev@vger.kernel.org
Cc: &lt;stable@vger.kernel.org&gt; # v6.3+
Link: https://patch.msgid.link/20260217155836.96267-2-tzimmermann@suse.de
</content>
</entry>
<entry>
<title>firmware: coreboot: Don't register a pdev if screen_info data is present</title>
<updated>2024-09-30T01:40:51+00:00</updated>
<author>
<name>Javier Martinez Canillas</name>
<email>javierm@redhat.com</email>
</author>
<published>2024-09-16T11:00:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=67f488dff17e535ac3a8a52b47ff1363d8134983'/>
<id>urn:sha1:67f488dff17e535ac3a8a52b47ff1363d8134983</id>
<content type='text'>
On coreboot platforms, a system framebuffer may be provided to the Linux
kernel by filling a LB_TAG_FRAMEBUFFER entry in the coreboot table. But
a coreboot payload (e.g: SeaBIOS) could also provide its own framebuffer
information to the Linux kernel.

If that's the case, arch x86 boot code will fill the global screen_info
data and this used by the Generic System Framebuffers (sysfb) framework,
to register a platform device with pdata about the system's framebuffer.

But later, the framebuffer_coreboot driver will try to do the same and
attempt to register a "simple-framebuffer" platform device (using the
information from the coreboot table), which will lead to an error due a
device with the same name already being registered:

    sysfs: cannot create duplicate filename '/bus/platform/devices/simple-framebuffer.0'
    ...
    coreboot: could not register framebuffer
    framebuffer coreboot8: probe with driver framebuffer failed with error -17

To prevent this issue, make the framebuffer_core driver to not register
a platform device if the global struct screen_info data has been filled.

Reported-by: Brian Norris &lt;briannorris@chromium.org&gt;
Closes: https://lore.kernel.org/all/ZuCG-DggNThuF4pj@b20ea791c01f/T/#ma7fb65acbc1a56042258adac910992bb225a20d2
Suggested-by: Julius Werner &lt;jwerner@chromium.org&gt;
Signed-off-by: Javier Martinez Canillas &lt;javierm@redhat.com&gt;
Reviewed-by: Thomas Zimmermann &lt;tzimmermann@suse.de&gt;
Reviewed-by: Brian Norris &lt;briannorris@chromium.org&gt;
Reviewed-by: Julius Werner &lt;jwerner@chromium.org&gt;
Link: https://lore.kernel.org/r/20240916110040.1688511-3-javierm@redhat.com
Signed-off-by: Tzung-Bi Shih &lt;tzungbi@kernel.org&gt;
</content>
</entry>
<entry>
<title>firmware: google: add missing MODULE_DESCRIPTION() macros</title>
<updated>2024-06-11T03:34:05+00:00</updated>
<author>
<name>Jeff Johnson</name>
<email>quic_jjohnson@quicinc.com</email>
</author>
<published>2024-06-05T22:07:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=fc2c1d716d4a879dd52c612ea19a7f994f08748d'/>
<id>urn:sha1:fc2c1d716d4a879dd52c612ea19a7f994f08748d</id>
<content type='text'>
make allmodconfig &amp;&amp; make W=1 C=1 reports:
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/firmware/google/gsmi.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/firmware/google/coreboot_table.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/firmware/google/framebuffer-coreboot.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/firmware/google/memconsole.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/firmware/google/memconsole-coreboot.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/firmware/google/memconsole-x86-legacy.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/firmware/google/cbmem.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/firmware/google/vpd-sysfs.o

Add the missing invocations of the MODULE_DESCRIPTION() macro.

Signed-off-by: Jeff Johnson &lt;quic_jjohnson@quicinc.com&gt;
Link: https://lore.kernel.org/r/20240605-md-drivers-firmware-google-v1-1-18878de97fa5@quicinc.com
Signed-off-by: Tzung-Bi Shih &lt;tzungbi@kernel.org&gt;
</content>
</entry>
<entry>
<title>firmware: coreboot: Replace tag with id table in driver struct</title>
<updated>2024-02-17T00:53:06+00:00</updated>
<author>
<name>Nícolas F. R. A. Prado</name>
<email>nfraprado@collabora.com</email>
</author>
<published>2024-02-12T14:50:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=8a0a62941a042612f7487f6c4ff291f9054ff214'/>
<id>urn:sha1:8a0a62941a042612f7487f6c4ff291f9054ff214</id>
<content type='text'>
Switch the plain 'tag' field in struct coreboot_driver for the newly
created coreboot_device_id struct, which also contains a tag field and
has the benefit of allowing modalias generation, and update all coreboot
drivers accordingly.

While at it, also add the id table for each driver to the module device
table to allow automatically loading the module.

Reviewed-by: AngeloGioacchino Del Regno &lt;angelogioacchino.delregno@collabora.com&gt;
Reviewed-by: Brian Norris &lt;briannorris@chromium.org&gt;
Signed-off-by: Nícolas F. R. A. Prado &lt;nfraprado@collabora.com&gt;
Link: https://lore.kernel.org/r/20240212-coreboot-mod-defconfig-v4-3-d14172676f6d@collabora.com
Signed-off-by: Tzung-Bi Shih &lt;tzungbi@kernel.org&gt;
</content>
</entry>
</feed>
