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? 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. 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
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.
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@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
On Mon, Aug 26, 2019 at 9:11 AM Thomas Zimmermann tzimmermann@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@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@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
dri-devel@lists.freedesktop.org