Realm Management Monitor
Unknown
Home
About
1. Readme for TF-RMM
1.1. License
1.1.1. Third Party Projects
1.2. Contributing
1.3. Feedback and support
2. Project Maintenance
2.1. Maintainers
3. Change-log and Release notes
3.1. v0.5.0
3.1.1. New features in this release
3.1.2. Bug fixes/improvements in this release
3.1.3. Build/Testing/Tooling improvements
3.1.4. Platforms
3.1.5. Known issues and limitations
3.1.6. Upcoming features
3.2. v0.4.0
3.2.1. New features in this release
3.2.2. Build/Testing/Tooling improvements
3.2.3. Platforms
3.2.4. Bug fixes/improvements in this release
3.2.5. Known issues and limitations
3.2.6. Upcoming features
3.3. v0.3.0
3.3.1. New features in this release
3.3.2. Build/Testing improvements
3.3.3. Bug fixes in this release
3.3.4. Upcoming features
3.3.5. Known issues and limitations
3.4. v0.2.0
3.5. v0.1.0
3.5.1. Upcoming features
3.5.2. Known issues and limitations
4. Developer Certificate of Origin
5. License
Getting Started Guides
1. Prerequisite
2. Build Host
3. Tool & Dependency overview
4. Setup Toolchain
5. Package Installation (Ubuntu-20.04 x64)
6. Install python dependencies
7. Install coverage tools analysis dependencies
8. Getting the RMM Source
8.1. Additional steps for Contributors
9. Install Cppcheck and dependencies
10. Install CBMC
11. Install Clang-tidy
12. Performing an Initial Build
13. Running the RMM
14. RMM Build Examples
15. RMM Build Options
16. RMM LLVM Build
17. RMM Fake Host Build
18. Building with Shrinkwrap
18.1. Introduction
18.2. Setup local RMM with Shrinkwrap
18.3. 3-World testing
18.4. Testing RMM with TFTF
18.5. Overlays
18.5.1. Example of use
Process
1. Coding Standard
1.1. General
1.2. File Encoding
1.3. Language
1.4. C Language Standard
1.5. Length
1.6. Headers/Footers
1.7. Naming conventions
1.8. Indentation
1.9. Spacing
1.10. Braces
1.11. Commenting
1.12. Error return values and Exception handling
1.13. Use of asserts and panic
1.14. Using COMPILER_ASSERT to check for compile time data errors
1.15. Data types, structures and typedefs
1.16. Macros and Enums
1.17. Switch statements
1.18. Inline assembly
1.19. Libc functions that are banned or to be used with caution
2. Security Handling
3. Commit Style
3.1. Mandated Trailers
4. Contributor’s Guide
4.1. Getting Started
4.2. Making Changes
4.3. Submitting Changes
4.4. License and Copyright for Contributions
Design
1. RMM Locking Guidelines
1.1. Introduction
1.2. Requirements
1.2.1. Critical Section
1.2.2. Mutual Exclusion
1.2.3. Deadlock Avoidance
1.2.4. Starvation Avoidance
1.2.5. Nested Critical Sections
1.3. Implementation
1.3.1. Locking
1.3.2. Reference Counting
1.4. Guidelines
1.4.1. Mutual Exclusion
1.4.2. Deadlock Avoidance
1.4.3. Starvation Avoidance
1.4.4. Nested Critical Sections
1.5. References
2. MMU setup and memory management design in RMM
2.1. Physical Address Space
2.2. Granule state tracking
2.3. RMM stage 1 translation regime
2.3.1. Stage 1 Low VA range
2.3.2. Stage 1 High VA range
2.4. Stage 1 translation library (xlat library)
2.5. RMM executable bootstrap
3. RMM Folder and Component organization
3.1. Root Level Folders and Components
3.2. Component File and Cmake Structure
4. RMM Fake host architecture
4.1. Fake host architecture design
4.2. Fake host architecture employment scenarios implemented or ongoing
5. RMM Cold and Warm boot design
6. RMM-EL3 communication specification
Security
1. Threat Model
1.1. Introduction
1.2. Data Flow Diagram
1.2.1. Target of Evaluation
1.2.2. Data Flow Diagram
1.3. Threat Analysis components
1.3.1. Assets
1.3.2. Threat Agents
1.3.3. Threat Types
1.3.4. Threat Risk Ratings
1.4. Threat Assessment
Resources
1. Application Notes
1.1. CBMC
1.1.1. CBMC in RMM
1.1.2. cbmc-viewer
1.1.3. CBMC proof debugger
1.2. Cppcheck Application Note
1.2.1. Installing Cppcheck
1.2.2. Invoking Cppcheck rule within TF-RMM build system
1.2.3. Generating the Cppcheck HTML report
1.2.4. Cppcheck Error Suppression
Glossary
Realm Management Monitor
Security
1.
Threat Model
View page source
Previous
Next
1.
Threat Model
Contents
1.1. Introduction
1.2. Data Flow Diagram
1.3. Threat Analysis components
1.4. Threat Assessment