Garret Kelly | 9eebde0 | 2019-10-22 15:36:49 -0400 | [diff] [blame] | 1 | --- |
Michael Schaffner | 2d22c5e | 2022-07-21 11:45:48 -0700 | [diff] [blame] | 2 | title: "OpenTitan Earl Grey Chip Datasheet" |
Garret Kelly | 9eebde0 | 2019-10-22 15:36:49 -0400 | [diff] [blame] | 3 | --- |
lowRISC Contributors | 802543a | 2019-08-31 12:12:56 +0100 | [diff] [blame] | 4 | |
Garret Kelly | 9eebde0 | 2019-10-22 15:36:49 -0400 | [diff] [blame] | 5 | # Overview |
lowRISC Contributors | 802543a | 2019-08-31 12:12:56 +0100 | [diff] [blame] | 6 | |
Michael Schaffner | 71a9774 | 2022-07-14 18:34:30 -0700 | [diff] [blame] | 7 |  |
Scott Johnson | d8d0777 | 2019-10-25 17:32:04 -0700 | [diff] [blame] | 8 | |
Michael Schaffner | 71a9774 | 2022-07-14 18:34:30 -0700 | [diff] [blame] | 9 | The OpenTitan Earl Grey chip is a low-power secure microcontroller that is designed for several use cases requiring hardware security. |
| 10 | The block diagram is shown above and shows the system configuration, including the Ibex processor and all of the memories and comportable IPs. |
lowRISC Contributors | 802543a | 2019-08-31 12:12:56 +0100 | [diff] [blame] | 11 | |
Dan McArdle | d1ffaa1 | 2022-09-27 12:50:16 -0400 | [diff] [blame] | 12 | 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. |
Michael Schaffner | 71a9774 | 2022-07-14 18:34:30 -0700 | [diff] [blame] | 13 | Further, a portion of the peripheral domain, the analog sensor top and the padring can stay always-on. |
| 14 | The rest of the system can be shut off as part of the sleep mode. |
lowRISC Contributors | 802543a | 2019-08-31 12:12:56 +0100 | [diff] [blame] | 15 | |
Michael Schaffner | 71a9774 | 2022-07-14 18:34:30 -0700 | [diff] [blame] | 16 | The OpenTitan Earl Grey chip provides the following features: |
lowRISC Contributors | 802543a | 2019-08-31 12:12:56 +0100 | [diff] [blame] | 17 | |
Michael Schaffner | 71a9774 | 2022-07-14 18:34:30 -0700 | [diff] [blame] | 18 | <table> |
| 19 | <thead style='font-size:100%'> |
| 20 | <tr> |
| 21 | <th colspan="2">OpenTitan Earl Grey Features</th> |
| 22 | </tr> |
| 23 | </thead> |
| 24 | <tbody style='font-size:90%;line-height:110%'> |
| 25 | <tr> |
| 26 | <td> |
| 27 | <ul> |
| 28 | <li>RV32IMCB RISC-V "Ibex" core: |
| 29 | <ul> |
| 30 | <li>3-stage pipeline, single-cycle multiplier</li> |
| 31 | <li>Selected subset of the bit-manipulation extension</li> |
| 32 | <li>4kB instruction cache with 2 ways</li> |
| 33 | <li>RISC-V compliant JTAG DM (debug module)</li> |
| 34 | <li>PLIC (platform level interrupt controller)</li> |
| 35 | <li>U/M (user/machine) execution modes </li> |
| 36 | <li>Enhanced Physical Memory Protection (ePMP)</li> |
| 37 | <li>Security features: |
| 38 | <ul> |
| 39 | <li>Low-latency memory scrambling on the icache</li> |
| 40 | <li>Dual-core lockstep configuration</li> |
| 41 | <li>Data independent timing</li> |
| 42 | <li>Dummy instruction insertion</li> |
| 43 | <li>Bus and register file integrity</li> |
| 44 | <li>Hardened PC</li> |
| 45 | </ul> |
| 46 | </li> |
| 47 | </ul> |
| 48 | </li> |
| 49 | <br></br> |
| 50 | <li>Security peripherals: |
| 51 | <ul> |
| 52 | <li>AES-128/192/256 with ECB/CBC/CFB/OFB/CTR modes</li> |
| 53 | <li>HMAC / SHA2-256</li> |
| 54 | <li>KMAC / SHA3-224, 256, 384, 512, [c]SHAKE-128, 256</li> |
| 55 | <li>Programmable big number accelerator for RSA and ECC (OTBN)</li> |
| 56 | <li>NIST-compliant cryptographically secure random number generator (CSRNG)</li> |
| 57 | <li>Digital wrapper for analog entropy source with FIPS and CC-compliant health checks</li> |
| 58 | <li>Key manager with DICE support</li> |
| 59 | <li>Manufacturing life cycle manager</li> |
| 60 | <li>Alert handler for handling critical security events</li> |
| 61 | <li>OTP controller with access controls and memory scrambling</li> |
| 62 | <li>Flash controller with access controls and memory scrambling</li> |
| 63 | <li>ROM and SRAM controllers with low-latency memory scrambling</li> |
| 64 | </ul> |
| 65 | </li> |
| 66 | </ul> |
| 67 | </td> |
| 68 | <td> |
| 69 | <ul> |
| 70 | <li>Memory: |
| 71 | <ul> |
| 72 | <li>2x512kB banks eFlash</li> |
| 73 | <li>128kB main SRAM</li> |
| 74 | <li>4KB Always ON (AON) retention SRAM</li> |
| 75 | <li>32kB ROM</li> |
| 76 | <li>2kB OTP</li> |
| 77 | </ul> |
| 78 | </li> |
| 79 | <br></br> |
| 80 | <li>IO peripherals: |
| 81 | <ul> |
| 82 | <li>47x multiplexable IO pads with pad control</li> |
| 83 | <li>32x GPIO (using multiplexable IO)</li> |
| 84 | <li>4x UART (using multiplexable IO)</li> |
| 85 | <li>3x I2C with host and device modes (using multiplexable IO)</li> |
| 86 | <li>SPI device (using fixed IO) with TPM, generic, flash and passthrough modes</li> |
| 87 | <li>2x SPI host (using both fixed and multiplexable IO)</li> |
Timothy Chen | 1c897cc | 2022-12-05 14:27:10 -0800 | [diff] [blame] | 88 | <li>USB device at full speed</li> |
Michael Schaffner | 71a9774 | 2022-07-14 18:34:30 -0700 | [diff] [blame] | 89 | </ul> |
| 90 | </li> |
| 91 | <br></br> |
| 92 | <li>Other peripherals: |
| 93 | <ul> |
| 94 | <li>Clock, reset and power management</li> |
| 95 | <li>Fixed-frequency timer</li> |
| 96 | <li>Always ON (AON) timer</li> |
| 97 | <li>Pulse-width modulator (PWM)</li> |
| 98 | <li>Pattern Generator</li> |
| 99 | </ul> |
| 100 | </li> |
| 101 | <br></br> |
| 102 | <li>Software: |
| 103 | <ul> |
| 104 | <li>Boot ROM code implementing secure boot and chip configuration</li> |
| 105 | <li>Bare metal applications and validation tests</li> |
| 106 | </ul> |
| 107 | </li> |
| 108 | </ul> |
| 109 | </td> |
| 110 | </tr> |
| 111 | </tbody> |
| 112 | </table> |
lowRISC Contributors | 802543a | 2019-08-31 12:12:56 +0100 | [diff] [blame] | 113 | |
Michael Schaffner | 2d22c5e | 2022-07-21 11:45:48 -0700 | [diff] [blame] | 114 | # Detailed Specification |
lowRISC Contributors | 802543a | 2019-08-31 12:12:56 +0100 | [diff] [blame] | 115 | |
Hugo McNally | aef0a66 | 2023-02-11 19:44:55 +0000 | [diff] [blame^] | 116 | For more detailed documentation including the pinout and system address map, see [OpenTitan Earl Grey Chip Specification](./design/README.md). |
| 117 | The [OpenTitan Earl Grey Chip DV Document](../dv/README.md) describes the chip-level DV environment and contains the chip-level test plan. |