Openbiosprog

From Random Projects
Jump to: navigation, search

openbiosprog is a fully Open Hardware and Free Software USB-based programmer for BIOS chips.

The first version will support Low Pin Count (LPC), Firmware Hub (FWH) and SPI chips, later versions might add support for parallel flash chips.

The microcontroller firmware is GPL (version 3 or later), the user-space source code is part of flashrom (GPL, version 2), the schematics and PCB layouts are licensed under the CC-BY-SA 3.0 license.

Download

The schematics, PCB layouts, and the libopenstm32-based microcontroller firmware are available from gitorious:

$ git clone git://gitorious.org/openbiosprog/openbiosprog.git

The flashrom source code will be available from:

$ svn co svn://flashrom.org/flashrom/trunk flashrom

Design

  • The programmer shall support LPC and FWH chips in PLCC32 packages and SPI chips in DIP8 packages.
    • LPC/FWH: Support for A/A Mux mode or PP mode is not planned.
  • The design is based on the ST STM32 microcontroller (ARM), which does USB and LPC/FWH via bitbanging.
  • Firmware is written using libopenstm32.
  • The board uses 1 or 2 layers (probably 2), and all parts are SMD. Resistors and capacitors are 0603.
  • The schematics and layout files are done using gEDA/PCB.

Notes

  • A software-controllable switch for powering or removing power from the chip is planned.
  • A voltage regulator translates the 5V from USB to 3.3V, e.g. the LE33 (SO8) or a 3-pin one.
  • A JTAG connector for flashing the SMT32 is planned (but also DFU support probably).
  • Maybe serial will be available via pads (or even a connector), though this is optional.
  • There will be a PLCC32 SMD socket and a DIP8 (SMD or DIP) socket for LPC/FWH and SPI chips.

LPC/FWH pins:

  • WP# and TBL# are tied to VCC (disabled), we don't want to prevent writes.
  • ID0-ID3 are tied to GND, we don't support multiple FWH chips, so no need to select one of them.
  • GPI0-GPI4 are tied to GND, we have no use for them.
  • RST# and INIT# are tied together as they serve the same purpose.
  • NC and RES (reserved) pins are left unconnected.
  • IC is tied to GND, this pin selects A/A Mux mode, which we don't support.

SPI pins:

  • WP# is tied to VCC, we don't want to write-protect the SPI chip.
  • HOLD# is tied to VCC, we don't need it.

STM32 pins:

Datasheets

Parts list

Note: The list is unfinished!

Quantity Value Device Manufacturer Digikey PN Digikey price/EUR
1 STM32 ST TODO TODO
1 PLCC32 SMD socket TODO TODO TODO
1 DIP8 SMD socket TODO TODO TODO
1 3.3V voltage regulator TODO TODO TODO
1 JTAG connector TODO TODO TODO
TODO Capacitor TODO TODO TODO
TODO Resistor TODO TODO TODO