1. OpenTitan
  2. Getting Started
  3. Getting Started
  4. Workflows
    1. Design Verification
    2. Formal Verification
    3. Building (and Testing) Software
    4. Building Documentation
    5. Using OpenOCD
  5. Tools Setup
    1. FPGA Setup
    2. Verilator Setup
    3. Installing Vivado
  6. Unofficial Guides
    1. RedHat/Fedora
  7. Hardware
  8. Introduction
  9. Top Earlgrey
    1. Datasheet
    2. Design
    3. Design Verification
      1. Chip Testplan
    4. Analog Sensor Top
      1. Interfaces
    5. Alert Handler
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Interface and Registers
      5. Device Interface Functions
      6. Checklist
    6. Interrupt Controller
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Interface and Registers
      5. Device Interface Functions
      6. Checklist
    7. OTP Controller
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Device Interface Functions
      7. Checklist
    8. Sensor Control
      1. Theory of Operation
      2. Programmer's Guide
      3. Hardware Interfaces
      4. Registers
      5. Device Interface Functions
      6. Checklist
    9. TL-UL Checklist
    10. Pinmux Targets
      1. ASIC Target Pinout and Pinmux Connectivity
      2. CW310 Target Pinout and Pinmux Connectivity
      3. CW340 Target Pinout and Pinmux Connectivity
  10. Top Darjeeling
    1. Datasheet
    2. OTP Controller
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Device Interface Functions
      7. Checklist
  11. Cores
    1. Ibex RISC-V Core Wrapper
      1. Theory of Operation
      2. Design Verification
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Checklist
    2. OTBN
      1. Theory of Operation
      2. Introduction to OTBN
      3. Developing OTBN
      4. ISA Guide
      5. Design Verification
        1. Random Instruction Generator
          1. Internals
          2. Configuration
        2. memutil wrapper
        3. OTBN Simulation Software
        4. Tracer
        5. Formal Masking Verification Using Alma
      6. Functional Coverage
      7. Programmer's Guide
      8. Hardware Interfaces
      9. Registers
      10. Checklist
  12. Hardware IP Blocks
    1. Analog to Digital Converter Control
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Checklist
    2. AES
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Device Interface Functions
      7. Checklist
    3. AON Timer
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Device Interface Functions
      7. Checklist
    4. Ascon
      1. Background
      2. Theory of Operation
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Checklist
    5. Clock Manager
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Device Interface Functions
      7. Checklist
    6. CSRNG
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Device Interface Functions
      7. Checklist
    7. DMA
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Device Interface Functions
      7. Checklist
    8. EDN
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Device Interface Functions
      7. Checklist
    9. Entropy Source
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Device Interface Functions
      7. Checklist
    10. Flash Controller
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Device Interface Functions
      7. Checklist
    11. GPIO
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Device Interface Functions
      7. Checklist
    12. HMAC
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Device Interface Functions
      7. Checklist
    13. I2C
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Device Interface Functions
      7. Checklist
    14. Key Manager
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Device Interface Functions
      7. Checklist
    15. Key Manager DPE
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Device Interface Functions
      7. Checklist
    16. KMAC
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Device Interface Functions
      7. Checklist
    17. Life Cycle Controller
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Device Interface Functions
      7. Checklist
    18. Mailbox
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Device Interface Functions
      7. Checklist
    19. Pattern Generator
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Device Interface Functions
      7. Checklist
    20. Pinmux
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Device Interface Functions
      7. Checklist
    21. Pulse Width Modulator
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Device Interface Functions
      7. Checklist
    22. Power Management
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Device Interface Functions
      7. Checklist
    23. ROM Control
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Device Interface Functions
      7. Checklist
    24. Reset Manager
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Device Interface Functions
      7. Checklist
    25. RISC-V Debug Manager
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Checklist
    26. SPI Device
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Device Interface Functions
      7. Checklist
    27. SPI Host
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Device Interface Functions
      7. Checklist
    28. SRAM Controller
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Device Interface Functions
      7. Checklist
    29. System Reset Controller
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Hardware Interfaces
      4. Registers
      5. Device Interface Functions
      6. Checklist
    30. Timer
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Device Interface Functions
      7. Checklist
    31. TL-UL Bus
      1. Design Verification
        1. Testplan
        2. Protocol Checker
    32. UART
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Hardware Interfaces
      5. Registers
      6. Device Interface Functions
      7. Checklist
    33. USB 2.0
      1. Theory of Operation
      2. Design Verification
        1. Testplan
      3. Programmer's Guide
      4. Suspending and Resuming
      5. Hardware Interfaces
      6. Registers
      7. Device Interface Functions
      8. Checklist
    34. lowRISC Hardware Primitives
      1. Flash Wrapper
      2. Keccak Permutation
      3. Linear Feedback Shift Register
      4. Packer
      5. Packer FIFO
      6. Present Scrambler
      7. Prince Scrambler
      8. SRAM Scrambler
      9. Pseudo Random Number Generator
  13. Common SystemVerilog and UVM Components
    1. ALERT_ESC Agent
    2. Bus Params Package
    3. Comportable IP Testbench Architecture
    4. Common Interfaces
    5. CSR Utils
    6. CSRNG Agent
    7. DV Library Classes
    8. DV Utils
    9. FLASH_PHY_PRIM Agent
    10. I2C Agent
    11. JTAG Agent
    12. JTAG DMI Agent
    13. JTAG RISCV Agent
    14. KEY_SIDELOAD Agent
    15. KMAC_APP Agent
    16. Memory Backdoor Scoreboard
    17. Memory Backdoor Utility
    18. Memory Model
    19. PATTGEN Agent
    20. PUSH_PULL Agent
    21. PWM Monitor
    22. RNG Agent
    23. Scoreboard
    24. Simulation SRAM
    25. SPI Agent
    26. String Utils
    27. Test Vectors
    28. Tile Link Agent
    29. UART Agent
    30. USB20 Agent
  14. Software
  15. Introduction
  16. Build Software
    1. External dependencies
    2. RISC-V toolchain
  17. Device Software
    1. Build & Test Rules
      1. Top selection
      2. FPGA Bitstreams
      3. OTP Preload Image Generator
    2. Device Libraries
      1. DIF Library
        1. ADC Checklist
        2. AES Checklist
        3. Alert Handler Checklist
        4. Always-On Timer Checklist
        5. Clock Manager Checklist
        6. CSRNG Checklist
        7. DMA Checklist
        8. EDN Checklist
        9. Entropy Source Checklist
        10. Flash Controller Checklist
        11. GPIO Checklist
        12. HMAC Checklist
        13. I2C Checklist
        14. Key Manager Checklist
        15. Key Manager DPE Checklist
        16. KMAC Checklist
        17. Lifecycle Checklist
        18. Mailbox Checklist
        19. OTBN Checklist
        20. OTP Controller Checklist
        21. Pattern Generator Checklist
        22. Pin Multiplexer Checklist
        23. PWM Checklist
        24. Power Manager Checklist
        25. ROM Checklist
        26. Reset Manager Checklist
        27. RV Core Ibex Checklist
        28. PLIC Checklist
        29. RV Timer Checklist
        30. Sensor Controller Checklist
        31. SPI Device Checklist
        32. SPI Host Checklist
        33. SRAM Controller Checklist
        34. System Reset Controller Checklist
        35. UART Checklist
        36. USB Checklist
      2. Top-Level Test Libraries
        1. On-Device Test Framework
      3. OpenTitan Standard Library
        1. Freestanding C Headers
    3. Silicon Creator Software
      1. Manufacturing Firmware
        1. Test Plan
      2. ROM
        1. ROM Specification
        2. Bootstrap
        3. Memory Protection
        4. E2E tests
        5. Root Keys
        6. Signature Verification
        7. Test Plan
        8. Signoff Test Plan
        9. Shutdown Specification
      3. ROM_EXT
        1. ROM_EXT for Silicon Validation
        2. ROM_EXT Ownership Transfer
        3. ROM_EXT Rescue Protocol
      4. Manifest Format
      5. Boot Log
    4. Top-Level Tests
      1. Manufacturer Test Hooks
      2. Cryptotest
    5. Silicon Validation
      1. Developer Guide
  18. Host Software
    1. OpenTitanLib
    2. OpenTitanTool
    3. OpenTitanSession
    4. OpenTitan Certificate Generator
    5. Hardware Security Module (HSM) tool
      1. Requirements
      2. Signing Guide
    6. TPM2 Test Server
  19. Tooling
  20. Tools Overview
  21. Design-Related Tooling
  22. dvsim
    1. Design Document
    2. Testplanner
    3. Glossary
  23. fpvgen: Initial FPV Testbench Generation
  24. reggen & regtool: Register Generator
    1. Setup and use of regtool
  25. ralgen: FuseSoC UVM RAL Generator
  26. uvmdvgen: Initial Testbench Auto-generation
  27. tlgen: Crossbar Generation
  28. ipgen: Generate IP Blocks from IP Templates
  29. topgen: Top Generator
  30. vendor: Vendoring In Tool
  31. i2csvg: Generate SVGs of I2C Commands
  32. Contributing
  33. Contributing
    1. Detailed Contribution Guide
    2. Directory Structure
    3. Contributing to Documentation
      1. An Example IP Block's Documentation
    4. Continuous Intergration
    5. Top-Level Design and Targets
    6. GitHub Notes
    7. Bazel Notes
    8. Using the Container
  34. Contributing to Hardware
    1. Comportability
    2. Hardware Design
    3. Design Methodology
    4. Vendoring in Hardware
    5. Linting
    6. Synthesis Flow
  35. Contributing to Verification
    1. Verification Methodology
    2. Security Countermeasure Verification Framework
    3. Assertions
  36. Contributing to Software
    1. Device Interface Functions
    2. Writing and Building Software for OTBN
  37. Style Guides
    1. HJSON
    2. Python
    3. C & C++
    4. Markdown
    5. RISC-V Assembly
    6. OTBN Assembly
    7. Guidance for Volatile
  38. Developing on an FPGA
    1. Get a Board
    2. FPGA Reference Manual
    3. Debugging with an ILA
  39. Project Governance
  40. Introduction
  41. Committers
  42. RFC Process
  43. Generalized Priority Definitions
  44. Generalized Project Milestone Definitions
  45. OpenTitan Technical Committee
  46. Hardware Development Stages
  47. Signoff Checklist
  48. Security
  49. Security
  50. Cryptography Library
    1. API Documentation
    2. Contributing
  51. Implementation Guidelines
    1. Secure Hardware Design Guidelines
    2. Reset vs. Non-Reset Flops
  52. Logical Security Model
  53. Security Model Specification
    1. Device Attestation
    2. Device Life Cycle
    3. Device Provisioning
    4. Firmware Update
    5. Identities and Root Keys
    6. Ownership Transfer
    7. Secure Boot
  54. Lightweight Threat Model
  55. Use Cases
  56. Use Cases
  57. Platform Integrity Module
  58. Trusted Platform Module
  59. Universal 2nd-Factor Security Key
  60. Rust for C Developers
  61. Rust for Embedded C Programmers
  62. Appendix
  63. Glossary