Projects

Last updated: 2021-04-24

Low-level development

ARM (sunxi)

I saw in the sunxi family the opportunity to have a fully owner-controlled mobile device, with no hidden managment engine or binary blobs. With the availability Pinebook and PinePhone, mainline Linux support has become the limiting factor for that dream. My contributions include:

  • The power management firmware and related firmware support in TF-A
  • The DRAM frequency scaling driver
  • Runtime and system power management support in several device drivers
  • Major updates to the sun8i-codec audio driver to support the modem and BT audio interfaces
  • Initial U-Boot support and automatic device tree selection functionality

I have also helped with various bugfixes and improved support for some of the less popular sunxi single-board computers:

x86 (coreboot)

I ported coreboot to the Foxconn G41S-K motherboard, with the hope that it would allow me to use my SATA controller in AHCI mode. Unfortunately, that turned out to be a chipset limitation, not a BIOS limitation. But I had fun and learned a lot in the process. I later ported coreboot to the Intel DQ45EK board.

I also contributed the coreboot framebuffer drivers to Linux. This allows smaller Linux payloads, since a full graphics driver (like i915) is no longer needed.

Application development

I wrote the initial version of the WireGuard Android app.

Back when it was still relevant, I helped port Cyanogenmod and other aftermarket firmware to the Samsung Galaxy Player 5.0. I also developed a stock-based custom Gingerbread firmware for that device.

Packaging and system administration

I have published the system-wide and user-specific portions of my service bundles for s6-rc.

My Portage configuration (including /etc/portage, my overlay, and my patches to the main Gentoo tree) can be found on my binhost.

Licensed CC-BY 4.0 by Samuel Holland.