Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
doc: Add intro and boot process docs
- Loading branch information
1 parent
6cbef22
commit 06c82ac
Showing
7 changed files
with
118 additions
and
28 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
:mod:`plat` --- Platform API | ||
============================ | ||
|
||
.. module:: plat | ||
:synopsis: Platform API | ||
|
||
The platform API constitutes the minimum and mandatory functions each platform | ||
must provide. | ||
|
||
The 'plat_init' function in each platform is expected to perform the follwing basic initialization: | ||
|
||
- Initialize a watchdog | ||
- Configure the systick | ||
- Load and decode system boot reason | ||
- Initialize debug console | ||
- Configure the MMU | ||
|
||
The 'plat_init' and 'plat_board_init' functions are called early during boot, | ||
se :ref:`Boot Process` for more details. | ||
|
||
---------------------------------------------- | ||
|
||
Source code: :github-blob:`include/pb/plat.h` | ||
|
||
---------------------------------------------- | ||
|
||
.. doxygenfile:: include/pb/plat.h | ||
:project: pb |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,25 @@ | ||
Boot process | ||
Boot Process | ||
============ | ||
|
||
.. uml:: | ||
This document describes the main boot flow. The boot process is modular | ||
and can support many different use cases. | ||
|
||
@startuml | ||
user -> (use PlantUML) | ||
.. uml:: | ||
|
||
note left of user | ||
Hello! | ||
end note | ||
@enduml | ||
start | ||
:Power on reset; | ||
:Arch init; | ||
:Plat init; | ||
:Board init; | ||
if (Board init succesful) then (yes) | ||
:Boot init; | ||
:Board early boot init; | ||
if (Board early succesful) then (yes) | ||
:asdf; | ||
else (no) | ||
:Initialize command mode; | ||
endif | ||
else (no) | ||
:Initialize command mode; | ||
endif | ||
stop |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,45 @@ | ||
Introduction | ||
============ | ||
|
||
Welcome to the punchboot documentation. | ||
Punchboot is a booloader for embedded systems. It has a strong emphasis on | ||
security and compactness. | ||
|
||
The following architectures are supported: | ||
|
||
- Armv7a | ||
- Armv8a | ||
|
||
The following SoC's/platform's are supported: | ||
|
||
- nxp imx6ul | ||
- nxp imx8x | ||
- nxp imx8m | ||
- qemu virt | ||
|
||
License | ||
------- | ||
|
||
Punchboot is premissivily licensed under the BSD 3 licens. | ||
|
||
Distinguishing Features | ||
----------------------- | ||
|
||
**Only supports signed payloads** | ||
Punchboot only supports signed payloads which reduces the risk for configuration | ||
errors and reduces the logic in the boot code. | ||
|
||
**Highly configurable** | ||
Most features can be enabled or disabled through the Kconfig interface | ||
|
||
**Host tooling** | ||
Punchboot-tools provides a set of tools and libraries for interacting | ||
with the bootloader | ||
|
||
* Punchboot CLI and a C library | ||
* Python wrapper | ||
|
||
These can easly be extended to support board/production specific commands. | ||
|
||
**Optimized for speed** | ||
Most drivers, in particular block device drivers and hashing accelerators | ||
use DMA to maximize transfer speed. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters