- Introduction
- Patina Background
- Patina in the UEFI Rust Ecosystem
- Training Videos
- Background Information
- 1. Patina DXE Core Memory Safety Strategy
- 2. Rust Tooling in Patina
- 3. UEFI Memory Safety Case Studies
- Best Practices
- 4. Abstractions
- 5. Architecture Abstraction
- 6. Code Organization
- 7. Code Reuse
- 8. Dependency Management
- 9. Error Handling
- 10. FFI Authoring
- 11. UEFI Strings
- 12. Unsafe Guidance
- Developer Guides
- 13. Code First Process
- 14. Code First Template
- 15. Creating a New Unstable Feature
- 16. Debugging
❱
- 16.1. Core Reload
- 16.2. Windbg Debugging Example
- 16.3. Windbg Debugging
- 17. Documenting
❱
- 17.1. Quick Reference
- 18. Formatting
- 19. Hardware Access
❱
- 19.1. Memory-Mapped I/O (MMIO)
- 20. Other Resources
- 21. Process for Unstable Features
- 22. RFC Lifecycle
- 23. RFC Template
- 24. Rust and Toolchain Version Update Process
- 25. Testing
❱
- 25.1. Integration Testing
- 25.2. Mocking
- 25.3. On-Platform Testing
- 25.4. QEMU PR Validation
- 25.5. Unit Testing
- 26. Toolchain Configuration
- Patina Component Model
- 27. Component Crate Requirements
- 28. Component Interface
- 29. Getting Started with Components
- Patina DXE Core Platform Integration
- 30. Patina DXE Core Requirements Checklist
- 31. Patina DXE Core Requirements
- 32. Setting up the Patina DXE Core
- Patina DXE Core Subsystems
- 33. Theory and Operation
❱
- 33.1. Advanced Logger
- 33.2. Component Model
- 33.3. CPU
- 33.4. Debugging
- 33.5. Dispatcher
- 33.6. Event, Timer, and Task Priority
- 33.7. Image Loading and Execution
- 33.8. Memory Management
- 33.9. Memory Bins
- 33.10. Performance Measurement
- 33.11. Protocol Database
- 33.12. Synchronization
- 33.13. Testing
- 33.14. UEFI Driver Model
- 34. Contributors
- 35. License