|
I've been involved a bit in several open source projects (patch archive). A list of some past work:
Linux kernel
Generic code
- designed and implemented a new PIO read interface to allow
completion out of order wrt DMA, readX_relaxed()
- designed and implemented a new I/O memory ordering primitive to
allow devices to order PIO writes in a faster way, mmiowb()
- designed and implemented a PCI userspace API so that userspace can
access PCI resources (including the option ROM) in a portable
manner. Involved adding mmap support to the sysfs filesystem.
- designed and implemented a legacy I/O access API so that userspace
can portably access legacy I/O ports on Linux platforms
- lots of ACPI fixes
- added top level scheduler domain for large NUMA boxes
- lots of other fixes
- fixed oprofile profiler to boot on 512p
- implemented efficient NUMA memory allocation fallback
- wrote timer driver for sn2 chipset timer hardware
Documentation
- io_ordering.txt
Describes out of order PIO completion problems that need to be dealt
with in kernel code.
- additions to DocBook/deviceiobook.tmpl
Described new device driver API additions readX_relaxed() and
mmiowb().
- filesystems/sysfs-pci.txt
Describes /sys exported API for userspace access to PCI resources.
arch/i386
- resurrected visws support for the 2.5 kernel, gave up on further
improvements after SGI rejected my request to open source the 3D
graphics resource manager driver
arch/ia64
- acted as subarch maintainer for the sn2 platform
- contributed kernel configuration files for several platforms
- resurrected ia64 generic platform support by fixing several sn2 bugs
and design problems
- rewrote discontiguous memory support code to support sn2 in addition
to all other ia64 platforms
- lots of ia64 related ACPI fixes
- added support for checking memory attribute support to prevent
regions from being mapped as WC when they can't support it (needed to
make the framebuffer drivers work on sn2)
- added an ill-fated I/O recovery mechanism to the ia64 machine check
code (ended up implementing legacy I/O support in a more reliable
way)
- added a SAL feature export API for userspace to access platform
features in a portable way across ia64 platforms (/proc/salinfo)
- implemented bounce buffering for DMA mappings on sn2 to work around
hardware issues
- worked on kexec for ia64
drivers
- fixed a few framebuffer drivers to work on ia64 (using
aforementioned APIs)
- added support for mmiowb() and readX_relaxed() to selected drivers
X server
- added sn2 support to the X.Org X server project
- added EXA support to the Intel i810 driver
- various other work (I/O port changes, etc.)
- Documented EXA API for driver writer
Misc.
- bugfixes for Mesa
- bugfixes for SDL
- glibc patch to use aforementioned clock driver as a timer source for POSIX
clock routines
- KDE on IRIX fixes
- wrote XMMS audio driver for IRIX
|