| # Introduction | |
| Welcome to the OpenPRoT documentation! | |
| This documentation provides comprehensive information about the OpenPRoT | |
| project, including user guides, developer documentation, and API references. | |
| ## What is OpenPRoT? | |
| OpenPRoT is an open-source, Rust-based project designed to provide a secure and | |
| reliable foundation for platform security. It offers a flexible and extensible | |
| framework for developing firmware and security-related applications for a | |
| variety of platforms. | |
| At its core, OpenPRoT provides a Hardware Abstraction Layer (HAL) that enables | |
| platform-agnostic application development. On top of this HAL, it offers a suite | |
| of services and protocols for platform security, including device attestation, | |
| secure firmware updates, and more. | |
| OpenPRoT is built on [Pigweed](https://pigweed.dev): `pw_kernel` is the | |
| microkernel running OpenPRoT targets, `pw_log` and `pw_status` are shared | |
| across userspace and firmware code, and the Bazel build plus the `./pw` | |
| workflow launcher are Pigweed-managed. See | |
| [Pigweed Integration Overview](./design/pigweed-overview.md) for the full | |
| list of pieces OpenPRoT consumes. | |
| The project is designed with a strong emphasis on modern security protocols | |
| and standards, such as: | |
| - **SPDM (Security Protocol and Data Model):** For secure communication and | |
| attestation. | |
| - **MCTP (Management Component Transport Protocol):** As a transport for | |
| management and security protocols. | |
| - **PLDM (Platform Level Data Model):** For modeling platform components and | |
| their interactions. | |
| ## Project Goals | |
| The primary goals of the OpenPRoT project are to: | |
| - **Promote Security:** Provide a robust and secure foundation for platform | |
| firmware, leveraging modern, industry-standard security protocols. | |
| - **Ensure Reliability:** Offer a high-quality, well-tested, and reliable | |
| codebase for critical platform services. | |
| - **Enable Extensibility:** Design a modular and extensible architecture that | |
| can be easily adapted to different hardware platforms and use cases. | |
| - **Foster Collaboration:** Build an open and collaborative community around | |
| platform security. | |
| ## Documentation Overview | |
| This documentation is structured to help you understand and use OpenPRoT | |
| effectively. Here’s a guide to the different sections: | |
| - **[Getting Started](./getting-started.md):** A hands-on guide to setting up | |
| your development environment and building your first OpenPRoT application. | |
| - **[Specification](./specification/):** The OpenPRoT specification. | |
| - **[Repo Structure](./architecture.md):** A high-level overview of the | |
| OpenPRoT repository structure, including its major components and their | |
| interactions. | |
| - **[Usage](./usage.md):** Detailed instructions on how to use the OpenPRoT | |
| framework and its various services. | |
| - **[Design](./design/):** In-depth design documents and | |
| specifications for the various components of OpenPRoT. | |
| - **[Contributing](./contributing.md):** Guidelines for contributing to the | |
| OpenPRoT project. | |
| ## Repositories | |
| - https://github.com/OpenPRoT/openprot: Main OpenPRoT repository. | |
| - https://github.com/OpenPRoT/mctp-rs: MCTP protocol support for Linux and | |
| embedded platforms. | |
| ## Contact Us | |
| - Email us at openprot-wg@lists.chipsalliance.org | |
| - Join our public mailing list at https://lists.chipsalliance.org/g/openprot-wg | |
| ## Quick Start | |
| To get started with OpenPRoT, you can build and test the project using the | |
| following commands: | |
| ```bash | |
| ./pw presubmit | |
| bazel test //... | |
| ``` | |
| For more detailed instructions, please refer to the | |
| [Getting Started](./getting-started.md) guide. | |
| ## Governance | |
| The OpenPRoT Technical Charter can be found at | |
| [here](https://github.com/OpenPRoT/.github/blob/main/GOVERNANCE.md). | |
| ## Security Policy | |
| Please refer to the [Security Policy](https://github.com/OpenPRoT/openprot/security/policy) | |
| for more information. | |
| ## License | |
| Unless otherwise noted, everything in this repository is covered by the [Apache | |
| License, Version 2.0](https://github.com/OpenPRoT/openprot/blob/main/LICENSE). |