Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenBSD DRM Howto
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Léo Grange
OpenBSD DRM Howto
Commits
e22015b2
Commit
e22015b2
authored
Aug 27, 2015
by
Léo Grange
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add information about cirrusdrm driver and Linux Cirrus driver
parent
0c7ba38d
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
25 additions
and
9 deletions
+25
-9
openbsd_drm_howto.tex
openbsd_drm_howto.tex
+25
-9
No files found.
openbsd_drm_howto.tex
View file @
e22015b2
...
...
@@ -7,7 +7,7 @@
%opening
\title
{
OpenBSD DRM/KMS driver implementation guide
}
\author
{
Léo Grange
}
\author
{
Léo Grange
\\
\href
{
mailto:grangeleo@gmail.com
}{
grangeleo@gmail.com
}
}
\bibliographystyle
{
plain
}
...
...
@@ -41,12 +41,22 @@ I could do, I will try to give you as much reference as possible, and to fill th
holes I encountered myself.
As explaining abstract things with a concrete example often helps to understand,
we will use the OpenBSD Cirrus DRM driver for illustration purpose.
The old Cirrus chipsets are significantly easier to program than their today's
equivalents (Intel or AMD/ATI cards).
we will use the OpenBSD Cirrus DRM driver
\footnotemark
for illustration purpose.
This driver was originally written as part of a Google Summer of Code 2015 project,
to provide an understandable basis for future DRM drivers.
Indeed, the old Cirrus chipsets are significantly easier to program than their
today's equivalents (Intel or AMD/ATI cards).
In addition, the Cirrus CL-GD5446 card is well emulated in QEMU, which makes it
easier to test the driver and to experiment with it.
% talk about Cirrus driver
\footnotetext
{
Until
\texttt
{
cirrusdrm
}
driver integration to upstream OpenBSD,
a version of the driver is available through a git repository, at
\url
{
http://lab.knightsofnii.com/kristaba/openbsd.git
}
, on the branch
\texttt
{
cirrusdrm-current
}
.
A web interface is also provided at
\url
{
http://lab.knightsofnii.com/kristaba/openbsd/tree/cirrusdrm-current/sys/dev/pci/drm/cirrus
}
.
}
\end{abstract}
...
...
@@ -83,7 +93,7 @@ vice versa.
% TODO explain the need of userland X.Org drivers
\subsection
{
Userland API
}
%
\subsection{Userland API}
% TODO
\subsection
{
Kernel driver model
}
...
...
@@ -187,10 +197,16 @@ Despite the relatively well furnished documentation available on the DRM interna
APIs, it's difficult to create a new driver without some examples.
The example used here is
\texttt
{
cirrusdrm
}
, a pretty simple driver which supports
mainly the Cirrus CL-GD5446 chipset.
This driver was written from scratch, based on
\texttt
{
radeon
}
and
\texttt
{
i915
}
DRM driver sources as well as the X.org DDX driver
\texttt
{
xf86-video-cirrus
}
.
A similar driver, designed to work only with the QEMU and Xen implementations of
this chipset, exists in upstream Linux kernel for a while.
Unfortunately, the GPL-only license of the driver prevents it to be ported to
OpenBSD's kernel, and its authors didn't seem to agree for changing the license.
As explained above, this chipset has the huge advantage to be emulated in some
virtual machines and hypervisors (QEMU or Xen for
exampl
e), resulting in an ease
virtual machines and hypervisors (QEMU or Xen for
instanc
e), resulting in an ease
of testing and experimenting with it.
As it's a graphics card from the 90's, it has the other advantage to expose a
pretty simple hardware, with only one CRTC, a single VGA connector and little
acceleration capability.
...
...
@@ -1034,7 +1050,7 @@ gives an approximation of the connector helper \texttt{.mode\_valid}.
Some modes are invalidated later, both in X.org and KMS drivers, for instance
when memory is insufficient for a mode.
\pagebreak
\bibliography
{
openbsd-biblio
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment