Tool

Pawn

Linux command-line tool from Google that reads the BIOS/UEFI firmware image out of the SPI flash of Intel-based workstations and laptops. Running as root, it identifies the chipset's LPC bridge over PCI, maps the chipset's root-complex registers through /dev/mem, and reports the flash descriptor regions and the BIOS write- and read-protection settings it finds. It then reads the flash through the SPI controller's hardware sequencing into a single image file, which the README suggests processing further with tools such as UEFITool.

Requirements & limits

  • Releases v0.1 and v0.2, published 2017-08-30 and 2017-09-09, each ship a Debian amd64 package with its source; the reviewed main commit, from 2026-02-17, updates dependencies and GitHub Actions and still declares version 0.2. The README states that Pawn is not an official Google product. Builds need Linux on x86_64 (FreeBSD might also work, per the README), CMake 3.31+, GCC or Clang 7+ and Ninja or Make; CMake fetches Abseil, and GoogleTest for tests, at pinned commits. CI builds and runs the unit test on Ubuntu 24.04 and keeps the binary only as a workflow artifact.
  • Runs as root on the machine whose firmware is read, using I/O-port access to PCI configuration space and /dev/mem. On Linux kernels newer than 4.8.4 the README requires CONFIG_IO_DEVMEM=n or booting with iomem=relaxed; the program's own error message names IO_STRICT_DEVMEM. Only Intel ICH8, ICH9 and ICH10 and 6 to 9 Series chipsets are recognized, the newest being the 9 Series whose datasheet the source cites from May 2014; the BIOS must boot from SPI flash in descriptor mode.
  • It always reads 16 MiB from flash address 0, so flash beyond that size is not dumped, and failed block reads are ignored; the default output name is bios_via_spi_hs.bin. The repository contains only source, build and Debian packaging files, with no firmware images; a dump is the machine vendor's firmware and keeps the vendor's rights.
  • Apache-2.0. Nothing was built or run, and the reviewed sources establish no REA connection.

About this entry

Type
Tool
Category
Firmware tools
Relationship
Foundation tool
Targets
Firmware

Sources reviewed

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.md GitHub · google/pawn · Revision 45b7b38
  2. pawn/pawn.cc GitHub · google/pawn · Revision 45b7b38
  3. pawn/chipset.cc GitHub · google/pawn · Revision 45b7b38
  4. pawn/chipset_intel_9_series.h GitHub · google/pawn · Revision 45b7b38
  5. CMakeLists.txt GitHub · google/pawn · Revision 45b7b38
  6. cmake/PawnDeps.cmake GitHub · google/pawn · Revision 45b7b38
  7. .github/workflows/ubuntu-cmake.yml GitHub · google/pawn · Revision 45b7b38
  8. debian/changelog GitHub · google/pawn · Revision 45b7b38
  9. LICENSE GitHub · google/pawn · Revision 45b7b38
  10. https://github.com/google/pawn/releases/tag/v0.2

More in Firmware and hardware

All 44 entries in Firmware and hardware