| # OpenTitan Earl Grey Chip Datasheet |
| |
| # Overview |
| |
| ![Top Level Block Diagram](top_earlgrey_block_diagram.svg) |
| |
| The OpenTitan Earl Grey chip is a low-power secure microcontroller that is designed for several use cases requiring hardware security. |
| The block diagram is shown above and shows the system configuration, including the Ibex processor and all of the memories and comportable IPs. |
| |
| As can be seen in the block diagram, the system is split into a fast processor core domain that runs on a 100MHz jittery clock, and a peripheral domain that runs at 24MHz. |
| Further, a portion of the peripheral domain, the analog sensor top and the padring can stay always-on. |
| The rest of the system can be shut off as part of the sleep mode. |
| |
| The OpenTitan Earl Grey chip provides the following features: |
| |
| <table> |
| <thead style='font-size:100%'> |
| <tr> |
| <th colspan="2">OpenTitan Earl Grey Features</th> |
| </tr> |
| </thead> |
| <tbody style='font-size:90%;line-height:110%'> |
| <tr> |
| <td> |
| <ul> |
| <li>RV32IMCB RISC-V "Ibex" core: |
| <ul> |
| <li>3-stage pipeline, single-cycle multiplier</li> |
| <li>Selected subset of the bit-manipulation extension</li> |
| <li>4kB instruction cache with 2 ways</li> |
| <li>RISC-V compliant JTAG DM (debug module)</li> |
| <li>PLIC (platform level interrupt controller)</li> |
| <li>U/M (user/machine) execution modes </li> |
| <li>Enhanced Physical Memory Protection (ePMP)</li> |
| <li>Security features: |
| <ul> |
| <li>Low-latency memory scrambling on the icache</li> |
| <li>Dual-core lockstep configuration</li> |
| <li>Data independent timing</li> |
| <li>Dummy instruction insertion</li> |
| <li>Bus and register file integrity</li> |
| <li>Hardened PC</li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| <br></br> |
| <li>Security peripherals: |
| <ul> |
| <li>AES-128/192/256 with ECB/CBC/CFB/OFB/CTR modes</li> |
| <li>HMAC / SHA2-256</li> |
| <li>KMAC / SHA3-224, 256, 384, 512, [c]SHAKE-128, 256</li> |
| <li>Programmable big number accelerator for RSA and ECC (OTBN)</li> |
| <li>NIST-compliant cryptographically secure random number generator (CSRNG)</li> |
| <li>Digital wrapper for analog entropy source with FIPS and CC-compliant health checks</li> |
| <li>Key manager with DICE support</li> |
| <li>Manufacturing life cycle manager</li> |
| <li>Alert handler for handling critical security events</li> |
| <li>OTP controller with access controls and memory scrambling</li> |
| <li>Flash controller with access controls and memory scrambling</li> |
| <li>ROM and SRAM controllers with low-latency memory scrambling</li> |
| </ul> |
| </li> |
| </ul> |
| </td> |
| <td> |
| <ul> |
| <li>Memory: |
| <ul> |
| <li>2x512kB banks eFlash</li> |
| <li>128kB main SRAM</li> |
| <li>4KB Always ON (AON) retention SRAM</li> |
| <li>32kB ROM</li> |
| <li>2kB OTP</li> |
| </ul> |
| </li> |
| <br></br> |
| <li>IO peripherals: |
| <ul> |
| <li>47x multiplexable IO pads with pad control</li> |
| <li>32x GPIO (using multiplexable IO)</li> |
| <li>4x UART (using multiplexable IO)</li> |
| <li>3x I2C with host and device modes (using multiplexable IO)</li> |
| <li>SPI device (using fixed IO) with TPM, generic, flash and passthrough modes</li> |
| <li>2x SPI host (using both fixed and multiplexable IO)</li> |
| <li>USB device at full speed</li> |
| </ul> |
| </li> |
| <br></br> |
| <li>Other peripherals: |
| <ul> |
| <li>Clock, reset and power management</li> |
| <li>Fixed-frequency timer</li> |
| <li>Always ON (AON) timer</li> |
| <li>Pulse-width modulator (PWM)</li> |
| <li>Pattern Generator</li> |
| </ul> |
| </li> |
| <br></br> |
| <li>Software: |
| <ul> |
| <li>Boot ROM code implementing secure boot and chip configuration</li> |
| <li>Bare metal applications and validation tests</li> |
| </ul> |
| </li> |
| </ul> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| |
| # Detailed Specification |
| |
| For more detailed documentation including the pinout and system address map, see [OpenTitan Earl Grey Chip Specification](./design/README.md). |
| The [OpenTitan Earl Grey Chip DV Document](../dv/README.md) describes the chip-level DV environment and contains the chip-level test plan. |