Zerocat Chipflasher  v0.4.10-732-9a3cc90b
Flash free firmware to BIOS chips, kick the Management Engine.
Strategy

Brief

How to successfully release the Zerocat Chipflasher.

Introduction

The coreboot and libreboot projects offer free firmware replacements for laptops and desktop boards. These projects aim to support user freedom, but often suffer to be dependent on external flashers which are not compatible in that point. The Zerocat Chipflasher is meant to fill that gap.

When it comes to flash a coreboot or libreboot machine, the Zerocat Chipflasher intends to be your 100% free-design hardware tool, even down to chip. Furthermore, this tool is meant as a do-it-yourself project, you can solder your own device!

The flasher's hardware is being developed right from scratch, and care will be taken to avoid chips of proprietary design wherever possible.

The core of the flasher is a “Propeller” microcontroller whose design files have been released as free software (GPLv3) around 2011 by Parallax Inc. Apart from being free-design hardware, this controller provides a very exciting internal architecture and is impressingly powerful.

More and more hardware will get modified by people. We hope the fact that the Zerocat Chipflasher can be used to do so will setup a new standard of quality.

As the Zerocat Chipflasher is operated over a serial RS232 line, we recommend to use a liberated ThinkPad X60/X60s (running with blobless coreboot or libreboot firmware) with docking station as host computer — these machines can be modified from user space and don't need to be flashed externally.

Infos to collect

  • which laptop models require external flashing?
    • X200, X200s
    • all machines with Intel’s Manageability Engine Hardware?
    • ...others...
  • what are the disadvantages of the BeagleBoneBlack, Teensy, RasbPi?
  • why do we prefer COM Port connection?
  • why don't we use FTDI-USB-Chips?
  • what options do we have to accelerate data transfer?
    • strip lines of 0xff
    • send data bytes as binary values
    • use dual SPI if supported by the chip
    • use a better protocol
  • are there still things of proprietary design in our toolchain which we could provide free-design workarounds for?
    • MAX3232 chip?

Proof of Concept

Steps already done

  • desolder/ resolder the BIOS-chip without destroying the board
  • read the Lenovo-Firmware into a file
  • compare the file with one created by flashrom
  • flash a libreboot image onto a X60 sysboard
  • flash some first X200
  • flash more compatible devices
  • implement flow control in serial connection

Steps to do as well

  • create a DIY test clip
  • build up USB by software
  • setup communication via serprog protocol

Structure of Collaboration

  • the team communicates via encrypted mail (GnuPG)
  • we use git
  • our website is up at 'zerocat.org' and 'zerocat.de'
  • our website provides shop information and bank account info
  • we contact blog maintainers
  • we organize chipflasher-parties
  • we use related mailinglists for announcements
  • we should send patches to coreboot and/or libreboot

Positioning the Zerocat Chipflasher in the Free Software World

  • How shall we promote the fact that we are using a free-design microcontroller and that we aim to avoid chips of proprietary design?
  • Should we further strive to get Respects Your Freedom (RYF) hardware certification in case of a major hardware change?

    See Respects Your Freedom hardware certification requirements

  • To coreboot/libreboot, shall we suggest to use the Zerocat Chipflasher in place of the BBB, Teensy, or RasbPi?
  • Should we tell bios@.nosp@m.gnu..nosp@m.org about the flasher and see how they react?
  • Should we apply to be part of the GNU project?

    GNU is a collection of software, but probably a hardware project with related firmware, circuit schematics and documentation for Do-It-Yourself practice can apply as well.