[RFC 0/3] drm: Add DRM text mode
Daniel Vetter
daniel at ffwll.ch
Fri Jul 29 08:23:41 UTC 2016
Actually adding David.
-Daniel
On Fri, Jul 29, 2016 at 10:20:51AM +0200, Daniel Vetter wrote:
> On Thu, Jul 28, 2016 at 04:15:04PM +0200, Noralf Trønnes wrote:
> > This patchset explores the idea of adding a DRM text mode
> > (like VGA text mode) to get an alternative to fbcon/fbdev.
> >
> > David Hermann has done alot of work on a fbcon replacement:
> > - drm: add kernel-log renderer (Mar 2014)[1]
> > - kmscon:
> > development started Nov 2011
> > added to systemd Oct 2014
> > removed from systemd Jul 2015[2]
> >
> > Since this work seems to have stalled, I propose an alternative solution
> > to this problem that will also give VT console support while we're waiting
> > for a userspace console.
> >
> > The idea is that the driver provides a modeset like with the fbdev emulation
> > code, and from this a text buffer representation is made. The console code
> > can now write to this text buffer and ask for the text buffer to be
> > flushed/rendered to the pixel buffer.
> >
> > In this hack/implementation of the idea, I have just hijacked a CMA backed
> > fbdev framebuffer to keep it simple.
> > I have reused the default buffer format that VT uses.
> > Getting panic handling to actually work, seems to be a challenge as Daniel
> > describes on the DRMJanitors page[3].
> >
> > Is this idea of a DRM text mode worth developing further?
>
> I guess some simpler drm console with vt support which would allow us to
> get rid of fbdev could make sense. And there's definitely going to be a
> lot of overlap with a full userspace solution using something like kmscon.
>
> But we can't just add a new drm text console, there's a pile of prep work
> needed that David started for either approach:
> - Nuking fbdev means no more fbdev drivers for firmware consoles (uboot,
> uefi, vga, ...). The simpledrm driver would cover this, would be great
> to get that landed (especially now that we have the simple pipe
> helpers!).
>
> - One nice benefit of fbdev is that it automatically gets rid of these
> firmware-based display drivers when the real driver loads. Some drivers
> do this properly even when fbdev isn't enabled (see i915_kick_out_vgacon
> and i915_kick_out_firmware_fb), but pretty much all others fail in some
> way or the other. David also had some code (iirc as part of simpledrm)
> to solve this issue.
>
> - I think we need more than rbg565 render support, iirc David also had
> some work in that area.
>
> - None of these approaches has a good answer yet to the configuration
> question. For a full VT I think we definitely should share the setup
> logic with the fbdev emulation code to make it useful, but as describe
> in the DRMJanitors page handlings panics is an entierly different
> problem.
>
> Definitely coordinate with David Herrmann here too, since if we do
> something in this area it should be widely supported.
>
> Aside: Where's the pull request for your driver? ;-)
>
> Cheers, Daniel
>
> >
> >
> > Noralf.
> >
> > [1] https://lwn.net/Articles/589858/
> > [2] https://github.com/systemd/systemd/pull/747
> > [3] https://www.x.org/wiki/DRMJanitors/#makepanichandlingwork
> >
> >
> > Noralf Trønnes (3):
> > drm: Add support for text framebuffer
> > drm/text: Add panic and boot console support
> > drm/text: Add VT console support
> >
> > drivers/gpu/drm/Makefile | 1 +
> > drivers/gpu/drm/drm-text/Makefile | 5 +
> > drivers/gpu/drm/drm-text/drm-text-buffer.c | 340 ++++++++++++++++++++++++++++
> > drivers/gpu/drm/drm-text/drm-text-console.c | 205 +++++++++++++++++
> > drivers/gpu/drm/drm-text/drm-text-debugfs.c | 295 ++++++++++++++++++++++++
> > drivers/gpu/drm/drm-text/drm-text-vt.c | 197 ++++++++++++++++
> > drivers/gpu/drm/drm-text/drm-text.h | 99 ++++++++
> > 7 files changed, 1142 insertions(+)
> > create mode 100644 drivers/gpu/drm/drm-text/Makefile
> > create mode 100644 drivers/gpu/drm/drm-text/drm-text-buffer.c
> > create mode 100644 drivers/gpu/drm/drm-text/drm-text-console.c
> > create mode 100644 drivers/gpu/drm/drm-text/drm-text-debugfs.c
> > create mode 100644 drivers/gpu/drm/drm-text/drm-text-vt.c
> > create mode 100644 drivers/gpu/drm/drm-text/drm-text.h
> >
> > --
> > 2.8.2
> >
> > _______________________________________________
> > dri-devel mailing list
> > dri-devel at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/dri-devel
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the dri-devel
mailing list