XGI DRM driver as a practice?

Daniel Vetter daniel at ffwll.ch
Mon Aug 26 09:14:58 UTC 2019


On Mon, Aug 26, 2019 at 9:11 AM Thomas Zimmermann <tzimmermann at suse.de> wrote:
>
> Hi
>
> Am 25.08.19 um 13:25 schrieb Ivan D:
> > I'd like to learn DRM subsystem and GPU driver development and I was
> > thinking about about writing XGI DRM driver as a practice project
> > since:
> > - there's (or was until recently) staging fbdev driver that should
> > hopefully be working
> > - it's still possible to buy thin client HW with XGI Z11 running Linux
> >
> > Does it make sense at all?
>
> That makes s lot of sense. However there are two different lines of XGI
> hardware: one is SiS-based and the other is Trident-based. Those are
> incompatible AFAIK. The Z11 is based on the SiS design. [1] Anything
> that is Trident-based would require a different driver.
>
>
> > I do have kernel experience but know very
> > little about DRM and graphics. One issue is absence of documentation,
> > but there could be as well others I'm not even aware of.
>
> For documentation on VGA graphics you can read [2] and [3]. There's
> kernel documentation at [4], although it lacks good tutorials on the
> interfaces and the overall design.
>
> The best way for learning about DRM is to read an existing driver. For
> XGI, I'd start with bochs. It's for qemu, so you already have the
> "testing hardware" as part of your Linux distribution. Bochs uses
> dedicated video memory and provides atomic mode setting. That's all you
> should need for a basic XGI driver.

If this is a genuine VGA register based display block, then there has
been a patch once, years back, to add vga helpers to drm.
Unfortunately some googling didn't find it. Anyway they were so old
that they definitely predated atomic, so most likely we'd want to
rewrite them. But if this happens (and there's some interested for
other hw with vga register support) then I think a helper that
implements the atomic crtc&plane (for the primary plane, I think
cursor was always an add-on) helper funcs in terms of VGA register
would be really neat. Plus some glue to set that up for you.

Cheers, Daniel

>
> Best regards
> Thomas
>
>
> [1] https://en.wikipedia.org/wiki/XGI_Technology#Cards
> [2] https://wiki.osdev.org/VGA_Hardware
> [3] http://www.osdever.net/FreeVGA/home.htm
> [4] https://www.kernel.org/doc/html/latest/gpu/index.html
>
> > If there's a better approach than this please drop me a line>
> > Also putting relevant people from commit log to CC, hope it's ok.
> >
> > Thanks,
> > Ivan
> > _______________________________________________
> > dri-devel mailing list
> > dri-devel at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/dri-devel
> >
>
> --
> Thomas Zimmermann
> Graphics Driver Developer
> SUSE Linux GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany
> GF: Felix Imend├Ârffer, Mary Higgins, Sri Rasiah
> HRB 21284 (AG N├╝rnberg)
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel



-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch


More information about the dri-devel mailing list