Realm Management Monitor
v0.7.0+gcb086f
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.7.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.6.0
3.2.1. New features in this release
3.2.2. Bug fixes/improvements in this release
3.2.3. Build/Testing/Tooling improvements
3.2.4. Platforms
3.2.5. Known issues and limitations
3.2.6. Upcoming features
3.3. v0.5.0
3.3.1. New features in this release
3.3.2. Bug fixes/improvements in this release
3.3.3. Build/Testing/Tooling improvements
3.3.4. Platforms
3.3.5. Known issues and limitations
3.3.6. Upcoming features
3.4. v0.4.0
3.4.1. New features in this release
3.4.2. Build/Testing/Tooling improvements
3.4.3. Platforms
3.4.4. Bug fixes/improvements in this release
3.4.5. Known issues and limitations
3.4.6. Upcoming features
3.5. v0.3.0
3.5.1. New features in this release
3.5.2. Build/Testing improvements
3.5.3. Bug fixes in this release
3.5.4. Upcoming features
3.5.5. Known issues and limitations
3.6. v0.2.0
3.7. v0.1.0
3.7.1. Upcoming features
3.7.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 python dependencies for Documentation
8. Install coverage tools analysis dependencies
9. Getting the RMM Source
9.1. Additional steps for Contributors
10. Install Cppcheck and dependencies
11. Install CBMC
12. Install Clang-tidy
13. Performing an Initial Build
14. Running the RMM
15. RMM Build Examples
16. RMM Build Options
17. RMM LLVM Build
18. RMM Fake Host Build
19. Building with Shrinkwrap
19.1. Introduction
19.2. Setup local RMM with Shrinkwrap
19.3. 3-World testing
19.4. Testing RMM with TFTF
19.5. Overlays
19.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
7. EL0 apps in RMM
7.1. Goal
7.2. Building app binaries
7.3. Building final RMM image
7.4. RMM App Instance
7.5. RMM App VA space
7.6. Initialising RMM app pages
7.7. RMM App Service Calls
7.8. Debugging RMM on FVP
7.9. RMM Fake Host Build
7.10. RMM Apps currently in RMM
7.11. Directory layout of apps
7.12. Proposed Enhancements to the RMM App Framework
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
View page source
Previous
Next
Security
Contents
1. Threat Model