# opendevicepartnership/patina architecture

> Architecture diagram of the GitHub repository opendevicepartnership/patina, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/opendevicepartnership/patina
- Repository: https://github.com/opendevicepartnership/patina

## Overview

Patina is a pure-Rust UEFI firmware implementation. Its principal boot-time workflow is platform startup entering the DXE core, which initializes firmware services and dispatches components; components use the SDK’s dependency-injection model and UEFI interfaces to provide platform capabilities. The repository also contains SDK formats and utilities, architecture-specific CPU support, and optional firmware components. The README establishes the product scope; sampled source confirms component service registration, memory management, and selected component behaviors, but does not expose enough DXE startup code to assert detailed call wiring.

Main entry points: [`sdk/patina/src/component/storage.rs`](https://github.com/opendevicepartnership/patina/blob/main/sdk/patina/src/component/storage.rs) (Component Storage), [`patina_dxe_core/src/lib.rs`](https://github.com/opendevicepartnership/patina/blob/main/patina_dxe_core/src/lib.rs) (DXE Core), [`patina_dxe_core/src/component_dispatcher.rs`](https://github.com/opendevicepartnership/patina/blob/main/patina_dxe_core/src/component_dispatcher.rs) (Component Dispatcher), [`sdk/patina/src/lib.rs`](https://github.com/opendevicepartnership/patina/blob/main/sdk/patina/src/lib.rs) (UEFI SDK)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_core["DXE Core"]
  node_dxe["DXE Core<br/>[lib.rs]"]
  node_dispatcher["Component Dispatcher"]
  node_memory["Memory Manager<br/>[memory_manager.rs]"]
  node_services["DXE Services<br/>[dxe_services.rs]"]
end

subgraph group_sdk["Firmware SDK"]
  node_sdk["UEFI SDK<br/>[lib.rs]"]
  node_storage["Component Storage<br/>[storage.rs]"]
  node_bootservices["Boot Services<br/>[boot_services.rs]"]
  node_firmwarefs["Firmware Volumes<br/>[fw_fs.rs]"]
  node_ffs["FFS Reader<br/>[lib.rs]"]
  node_extractors["Section Extractors<br/>[lib.rs]"]
  node_macros["Component Macros<br/>[lib.rs]"]
end

subgraph group_cpu["CPU Support"]
  node_cpu["CPU Architecture<br/>[lib.rs]"]
  node_interrupts["Interrupt Management<br/>[interrupts.rs]"]
  node_paging["Paging<br/>[paging.rs]"]
end

subgraph group_components["Firmware Components"]
  node_acpi["ACPI Component<br/>[lib.rs]"]
  node_smbios["SMBIOS Component<br/>[lib.rs]"]
  node_performance["Performance Component<br/>[lib.rs]"]
  node_mm["Management Mode<br/>[lib.rs]"]
  node_logger["Advanced Logger<br/>[lib.rs]"]
  node_samples["Sample Components<br/>[lib.rs]"]
end

subgraph group_utilities["Core Utilities"]
  node_debugger["Debugger<br/>[lib.rs]"]
  node_stacktrace["Stack Tracing<br/>[lib.rs]"]
end

node_platform(("UEFI Platform"))

node_platform -->|"enters DXE"| node_dxe
node_dxe -->|"dispatches components"| node_dispatcher
node_dxe -->|"provides memory"| node_memory
node_dxe -->|"provides services"| node_services
node_dispatcher -->|"uses storage"| node_storage
node_dispatcher -->|"uses boot services"| node_bootservices
node_sdk -->|"defines component model"| node_storage
node_sdk -->|"defines interfaces"| node_bootservices
node_firmwarefs -->|"parses volumes"| node_ffs
node_ffs -->|"extracts sections"| node_extractors
node_macros -->|"generates component APIs"| node_sdk
node_cpu -->|"supports interrupts"| node_interrupts
node_cpu -->|"supports paging"| node_paging
node_acpi -->|"registers services"| node_storage
node_smbios -->|"installs protocol"| node_bootservices
node_performance -->|"provides component"| node_storage
node_mm -->|"registers services"| node_storage
node_logger -->|"provides component"| node_storage
node_samples -->|"provides components"| node_storage
node_debugger -.->|"uses stack tracing"| node_stacktrace

click node_dxe "https://github.com/opendevicepartnership/patina/blob/main/patina_dxe_core/src/lib.rs"
click node_dispatcher "https://github.com/opendevicepartnership/patina/blob/main/patina_dxe_core/src/component_dispatcher.rs"
click node_memory "https://github.com/opendevicepartnership/patina/blob/main/patina_dxe_core/src/memory_manager.rs"
click node_services "https://github.com/opendevicepartnership/patina/blob/main/patina_dxe_core/src/dxe_services.rs"
click node_sdk "https://github.com/opendevicepartnership/patina/blob/main/sdk/patina/src/lib.rs"
click node_storage "https://github.com/opendevicepartnership/patina/blob/main/sdk/patina/src/component/storage.rs"
click node_bootservices "https://github.com/opendevicepartnership/patina/blob/main/sdk/patina/src/uefi/boot_services.rs"
click node_firmwarefs "https://github.com/opendevicepartnership/patina/blob/main/sdk/patina/src/pi/fw_fs.rs"
click node_ffs "https://github.com/opendevicepartnership/patina/blob/main/sdk/patina_ffs/src/lib.rs"
click node_extractors "https://github.com/opendevicepartnership/patina/blob/main/sdk/patina_ffs_extractors/src/lib.rs"
click node_macros "https://github.com/opendevicepartnership/patina/blob/main/sdk/patina_macro/src/lib.rs"
click node_cpu "https://github.com/opendevicepartnership/patina/blob/main/core/patina_internal_cpu/src/lib.rs"
click node_interrupts "https://github.com/opendevicepartnership/patina/blob/main/core/patina_internal_cpu/src/interrupts.rs"
click node_paging "https://github.com/opendevicepartnership/patina/blob/main/core/patina_internal_cpu/src/paging.rs"
click node_acpi "https://github.com/opendevicepartnership/patina/blob/main/components/patina_acpi/src/lib.rs"
click node_smbios "https://github.com/opendevicepartnership/patina/blob/main/components/patina_smbios/src/lib.rs"
click node_performance "https://github.com/opendevicepartnership/patina/blob/main/components/patina_performance/src/lib.rs"
click node_mm "https://github.com/opendevicepartnership/patina/blob/main/components/patina_mm/src/lib.rs"
click node_logger "https://github.com/opendevicepartnership/patina/blob/main/components/patina_adv_logger/src/lib.rs"
click node_samples "https://github.com/opendevicepartnership/patina/blob/main/components/patina_samples/src/lib.rs"
click node_debugger "https://github.com/opendevicepartnership/patina/blob/main/core/patina_debugger/src/lib.rs"
click node_stacktrace "https://github.com/opendevicepartnership/patina/blob/main/core/patina_stacktrace/src/lib.rs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_dxe,node_dispatcher,node_memory,node_services toneBlue
class node_sdk,node_storage,node_bootservices,node_firmwarefs,node_ffs,node_extractors,node_macros toneAmber
class node_cpu,node_interrupts,node_paging toneMint
class node_acpi,node_smbios,node_performance,node_mm,node_logger,node_samples toneRose
class node_debugger,node_stacktrace,node_platform toneIndigo
```

## Components

### DXE Core

- [DXE Core](https://github.com/opendevicepartnership/patina/blob/main/patina_dxe_core/src/lib.rs): `patina_dxe_core/src/lib.rs`
- [Component Dispatcher](https://github.com/opendevicepartnership/patina/blob/main/patina_dxe_core/src/component_dispatcher.rs): `patina_dxe_core/src/component_dispatcher.rs`
- [Memory Manager](https://github.com/opendevicepartnership/patina/blob/main/patina_dxe_core/src/memory_manager.rs): `patina_dxe_core/src/memory_manager.rs`
- [DXE Services](https://github.com/opendevicepartnership/patina/blob/main/patina_dxe_core/src/dxe_services.rs): `patina_dxe_core/src/dxe_services.rs`

### Firmware SDK

- [UEFI SDK](https://github.com/opendevicepartnership/patina/blob/main/sdk/patina/src/lib.rs): `sdk/patina/src/lib.rs`
- [Component Storage](https://github.com/opendevicepartnership/patina/blob/main/sdk/patina/src/component/storage.rs): `sdk/patina/src/component/storage.rs`
- [Boot Services](https://github.com/opendevicepartnership/patina/blob/main/sdk/patina/src/uefi/boot_services.rs): `sdk/patina/src/uefi/boot_services.rs`
- [Firmware Volumes](https://github.com/opendevicepartnership/patina/blob/main/sdk/patina/src/pi/fw_fs.rs): `sdk/patina/src/pi/fw_fs.rs`
- [FFS Reader](https://github.com/opendevicepartnership/patina/blob/main/sdk/patina_ffs/src/lib.rs): `sdk/patina_ffs/src/lib.rs`
- [Section Extractors](https://github.com/opendevicepartnership/patina/blob/main/sdk/patina_ffs_extractors/src/lib.rs): `sdk/patina_ffs_extractors/src/lib.rs`
- [Component Macros](https://github.com/opendevicepartnership/patina/blob/main/sdk/patina_macro/src/lib.rs): `sdk/patina_macro/src/lib.rs`

### CPU Support

- [CPU Architecture](https://github.com/opendevicepartnership/patina/blob/main/core/patina_internal_cpu/src/lib.rs): `core/patina_internal_cpu/src/lib.rs`
- [Interrupt Management](https://github.com/opendevicepartnership/patina/blob/main/core/patina_internal_cpu/src/interrupts.rs): `core/patina_internal_cpu/src/interrupts.rs`
- [Paging](https://github.com/opendevicepartnership/patina/blob/main/core/patina_internal_cpu/src/paging.rs): `core/patina_internal_cpu/src/paging.rs`

### Firmware Components

- [ACPI Component](https://github.com/opendevicepartnership/patina/blob/main/components/patina_acpi/src/lib.rs): `components/patina_acpi/src/lib.rs`
- [SMBIOS Component](https://github.com/opendevicepartnership/patina/blob/main/components/patina_smbios/src/lib.rs): `components/patina_smbios/src/lib.rs`
- [Performance Component](https://github.com/opendevicepartnership/patina/blob/main/components/patina_performance/src/lib.rs): `components/patina_performance/src/lib.rs`
- [Management Mode](https://github.com/opendevicepartnership/patina/blob/main/components/patina_mm/src/lib.rs): `components/patina_mm/src/lib.rs`
- [Advanced Logger](https://github.com/opendevicepartnership/patina/blob/main/components/patina_adv_logger/src/lib.rs): `components/patina_adv_logger/src/lib.rs`
- [Sample Components](https://github.com/opendevicepartnership/patina/blob/main/components/patina_samples/src/lib.rs): `components/patina_samples/src/lib.rs`

### Core Utilities

- [Debugger](https://github.com/opendevicepartnership/patina/blob/main/core/patina_debugger/src/lib.rs): `core/patina_debugger/src/lib.rs`
- [Stack Tracing](https://github.com/opendevicepartnership/patina/blob/main/core/patina_stacktrace/src/lib.rs): `core/patina_stacktrace/src/lib.rs`

### Other components

- **UEFI Platform**

## Connections

- UEFI Platform → DXE Core: enters DXE
- DXE Core → Component Dispatcher: dispatches components
- DXE Core → Memory Manager: provides memory
- DXE Core → DXE Services: provides services
- Component Dispatcher → Component Storage: uses storage
- Component Dispatcher → Boot Services: uses boot services
- UEFI SDK → Component Storage: defines component model
- UEFI SDK → Boot Services: defines interfaces
- Firmware Volumes → FFS Reader: parses volumes
- FFS Reader → Section Extractors: extracts sections
- Component Macros → UEFI SDK: generates component APIs
- CPU Architecture → Interrupt Management: supports interrupts
- CPU Architecture → Paging: supports paging
- ACPI Component → Component Storage: registers services
- SMBIOS Component → Boot Services: installs protocol
- Performance Component → Component Storage: provides component
- Management Mode → Component Storage: registers services
- Advanced Logger → Component Storage: provides component
- Sample Components → Component Storage: provides components
- Debugger → Stack Tracing: uses stack tracing
