Punchboot is a booloader for embedded systems. It has a strong emphasis on security and compactness.

The following architectures are supported:

  • Armv7a

  • Armv8a

The following SoC’s/platform’s are supported:

  • nxp imx6ul

  • nxp imx8x

  • nxp imx8m

  • qemu virt


Punchboot is premissivily licensed under the BSD 3 licens.

Distinguishing Features

Only supports signed payloads

Punchboot only supports signed payloads which reduces the risk for configuration errors and reduces the logic in the boot code.

Highly configurable

Most features can be enabled or disabled through the Kconfig interface

Host tooling

Punchboot-tools provides a set of tools and libraries for interacting with the bootloader

  • Punchboot CLI and a C library

  • Python wrapper

These can easly be extended to support board/production specific commands.

Optimized for speed

Most drivers, in particular block device drivers and hashing accelerators use DMA to maximize transfer speed.