blob: 87ab36c3b26259a8db0e240cb55b9c404bf9ca84 [file] [log] [blame] [view]
Garret Kelly9eebde02019-10-22 15:36:49 -04001---
Michael Schaffner2d22c5e2022-07-21 11:45:48 -07002title: "OpenTitan Earl Grey Chip Datasheet"
Garret Kelly9eebde02019-10-22 15:36:49 -04003---
lowRISC Contributors802543a2019-08-31 12:12:56 +01004
Garret Kelly9eebde02019-10-22 15:36:49 -04005# Overview
lowRISC Contributors802543a2019-08-31 12:12:56 +01006
Michael Schaffner71a97742022-07-14 18:34:30 -07007![Top Level Block Diagram](top_earlgrey_block_diagram.svg)
Scott Johnsond8d07772019-10-25 17:32:04 -07008
Michael Schaffner71a97742022-07-14 18:34:30 -07009The OpenTitan Earl Grey chip is a low-power secure microcontroller that is designed for several use cases requiring hardware security.
10The block diagram is shown above and shows the system configuration, including the Ibex processor and all of the memories and comportable IPs.
lowRISC Contributors802543a2019-08-31 12:12:56 +010011
Dan McArdled1ffaa12022-09-27 12:50:16 -040012As 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 Schaffner71a97742022-07-14 18:34:30 -070013Further, a portion of the peripheral domain, the analog sensor top and the padring can stay always-on.
14The rest of the system can be shut off as part of the sleep mode.
lowRISC Contributors802543a2019-08-31 12:12:56 +010015
Michael Schaffner71a97742022-07-14 18:34:30 -070016The OpenTitan Earl Grey chip provides the following features:
lowRISC Contributors802543a2019-08-31 12:12:56 +010017
Michael Schaffner71a97742022-07-14 18:34:30 -070018<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 Chen1c897cc2022-12-05 14:27:10 -080088 <li>USB device at full speed</li>
Michael Schaffner71a97742022-07-14 18:34:30 -070089 </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 Contributors802543a2019-08-31 12:12:56 +0100113
Michael Schaffner2d22c5e2022-07-21 11:45:48 -0700114# Detailed Specification
lowRISC Contributors802543a2019-08-31 12:12:56 +0100115
Hugo McNallyaef0a662023-02-11 19:44:55 +0000116For more detailed documentation including the pinout and system address map, see [OpenTitan Earl Grey Chip Specification](./design/README.md).
117The [OpenTitan Earl Grey Chip DV Document](../dv/README.md) describes the chip-level DV environment and contains the chip-level test plan.