Sunday, September 27, 2009

Introduction

Здравствуйте. This site is a detailed story about writing/updating an ATI Radeon driver for the Plan 9 operating system to support modern GPUs. This project is being completed as part of the 15-412 (Operating Systems Practicum) course at Carnegie Mellon University. Nevertheless, this story is directed to a general audience, who I will be presupposing is familiar with neither Radeon internals nor Plan9 whatsoever. Occasionally, I will distract the audience and myself with dancing kitten macros. It'll be a good time.

As of the moment, the most recent release of Plan 9 (meaning, that release that was made seven years ago) does not include a driver for any Radeon card. However, there exists an unmerged driver called "radeon" floating around the Internet, written by Philippe Anel, and updated by Venkatesh Srinivas and others, located here [tar.gz] for the time being. This particular driver provides support for the Radeon R200 and R300 series, which also date back to ~2002.

For an overview of the different R* series that ATI created, there is the complete list of ATI cards, which provides a mapping between R* series and marketing name.

I have a desktop with a Radeon X1600, which is an R5xx-series card from approximately 2005. The current goal is to generate a driver to get a usable desktop from that card and hopefully scale that driver to also support the R600 and R700 series, which use a different acceleration mechanism than the R200s and R300s. Sanity preservation is also an important part of this project!

Right now, I have lugged the computer with the X1600 into our lab, and am waiting for network privileges so I can PXE-boot a freshly-compiled Plan 9 kernel from our server. Then, I will become intimately familiar with the Acid debugger, to debug a remote kernel over a serial port. After that, I will sleep for a while.