Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Why open silicon: OpenTitan and Pavona

In almost every device shipping today, the final turtle is a black box. The design is secret, the firmware is sealed, and you are asked to trust it because the vendor says so. That is a strange arrangement for the one component whose failure nothing else in the system can compensate for. A root of trust asks to be trusted absolutely, which is precisely why it should be open to inspection. When the RTL, the boot ROM, and the verification environment are all public, the security argument can be checked by anyone who cares to, and the design earns trust by being examined rather than by being hidden.

OpenTitan, from the lowRISC project, is where that changed. It is the original open-source silicon root of trust, open all the way down to the chip design itself, and it runs on RISC-V. It is also not a paper design. As of March 2026, OpenTitan silicon fabricated by Nuvoton ships in commercially available Chromebooks, the project’s first production deployment. Its top_earlgrey configuration is the most thoroughly documented, and its silicon_creator C code is the reference implementation of secure boot.

Open here means more than a published block diagram. Both designs in this book ship their Verilog, their silicon_creator C code, their register descriptions, their design verification testbenches, and their threat model under Apache 2.0. That is also what makes this book possible at all. You cannot single-step a proprietary secure element, and you certainly cannot watch its key manager change state. In simulation, on open RTL, you can watch any signal in the design.

Pavona is the newer design, built in part from OpenTitan and steered by a foundation hosted by GlobalPlatform with certification readiness as an explicit goal. It keeps OpenTitan’s architecture and much of its software, and adds the acc asymmetric cryptography coprocessor: a separate processor with its own memories and its own big-number ISA, running RSA and ECC today and carrying vectorized instructions for the lattice-based ML-KEM and ML-DSA algorithms. Pavona is the reference we actually build and run, and the configuration that we focus on is top_egret, the discrete secure microcontroller we will boot, decompose, and break.

Note, the two projects and implementations play slightly different roles in this book. Egret is what we run. Every command you type, every boot log you read, and every block you break is Egret in Verilator. Earl Grey is what we read when Egret’s own documentation is unclear or lacking, which it may be, because OpenTitan is older, more thoroughly written up, and the so-called silicon_creator code it has is the canonical secure-boot implementation. The two are close enough that most of what you learn about one transfers to the other, and this book says so explicitly each time it steps from one to another.