[RFC 0/3] drm: Add DRM text mode

Daniel Vetter daniel at ffwll.ch
Fri Jul 29 08:20:51 UTC 2016


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


More information about the dri-devel mailing list