We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Adventure in DRMland

Formal Metadata

Title
Adventure in DRMland
Subtitle
Or how to write a drm driver for an arm64 DRM driver
Title of Series
Number of Parts
34
Author
License
CC Attribution 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
In this talk I will describe the needed steps to write a DRM (As in Direct Rendering Manager) driver on FreeBSD for an arm64 board. DRM is the defacto standard to have graphics on a modern system using the standard software stack like Xorg or Wayland. While FreeBSD amd64 have correct support for DRM drivers, arm and arm64 are way behind and except on some system like Raspberry Pi where a simple framebuffer is available or NVidia Tegra where a DRM driver is available, the only way to have graphics is to use EFIFB. Both EFIFB and the simple framebuffer on RPI have severe limitations. You cannot have 2D acceleration, have a multi screen setup or even change the resolution at runtime. Writing a DRM driver can be hard and scary, especially when it is the first one that you are writing and don't know the DRM subsystem API. During this talk I'll explain what a DRM driver is consisted of : framebuffer, planes, crtc and encoder won't have anymore secrets for you. You will see why I've chosen to write my first DRM driver for the Allwinner A64 (An ARM64 System on Chip present on the Pine64 board or on the Pinebook, a cheap laptop), what problems I had and how I solved them. Of course a driver related talk will not be complete without a tips and tricks part that will help you having graphics shown on your screen quicker.