wip: draft porting guide#81
Conversation
| The Bao Hypervisor only contains architecture-specific drivers (e.g., interrupt controllers or | ||
| IOMMUS). Therefore porting the hypervisor essentially resumes to two simple operation: creating a | ||
| platform description folder containing a platform definition source and header files which | ||
| indicates, among others, the number of CPUs or the memory available. The exception is an UART driver | ||
| used fore logging, so if a driver is not available for a UART on the target platform this might |
There was a problem hiding this comment.
In my opinion, the first sentence doesn't contribute significantly. It looks like a bit disconnected from the remaining text.
| The Bao Hypervisor only contains architecture-specific drivers (e.g., interrupt controllers or | |
| IOMMUS). Therefore porting the hypervisor essentially resumes to two simple operation: creating a | |
| platform description folder containing a platform definition source and header files which | |
| indicates, among others, the number of CPUs or the memory available. The exception is an UART driver | |
| used fore logging, so if a driver is not available for a UART on the target platform this might | |
| Porting the hypervisor involves two basic steps: (i) creating a platform description folder with | |
| source and header files that specify platform details, such as the number of CPUs or available | |
| memory, and (ii) integrating a UART driver used for logging, so if a driver is not available for a | |
| UART on the target platform this might require writing a custom driver. |
| require writing such a driver. Finally, given for some platforms provide a custom mechanism to | ||
| define DMA device Master IDs required for configuring IOMMUs, one might require to configure |
There was a problem hiding this comment.
At this point, it would be interesting to refer to some examples to contextualize the firmware changes
There was a problem hiding this comment.
This will done in later sections.
There was a problem hiding this comment.
I think that should be done in a later section dedicated to describing how to define DMA device master IDs
| - **base** [mandatory] - Is the base physical address of that memory region. Must be aligned to the minimum architecture's page size; | ||
| - **size** [mandatory] - The size of the memory region. Must be aligned to the minimum architecture's page size; |
There was a problem hiding this comment.
| - **base** [mandatory] - Is the base physical address of that memory region. Must be aligned to the minimum architecture's page size; | |
| - **size** [mandatory] - The size of the memory region. Must be aligned to the minimum architecture's page size; | |
| - **base** [mandatory] - Is the base physical address of that memory region. | |
| - **size** [mandatory] - The size of the memory region. | |
| .. warning:: | |
| Ensure that the memory ``base`` and ``size`` are aligned to the minimum architecture's page size. |
There was a problem hiding this comment.
Change the format to inline code.
| Note that, by convention, we do not add on-chip/scratcpad SRAMs as a platform memory region as the hypervisor as an uniform view of memory. | ||
| This regions should be assigned to guests in the form of devices. |
There was a problem hiding this comment.
| Note that, by convention, we do not add on-chip/scratcpad SRAMs as a platform memory region as the hypervisor as an uniform view of memory. | |
| This regions should be assigned to guests in the form of devices. | |
| .. note:: | |
| By convention, we do not add on-chip/scratcpad SRAMs as a platform memory region as the hypervisor as an uniform view of memory. This regions should be assigned to guests in the form of devices. |
danielRep
left a comment
There was a problem hiding this comment.
I don't have any major suggestions to add on the structure of the document. I considerer it already touches all the necessary topics.
Few points:
- inline code format must be used be used for file paths, file names, shell commands, programming language directives/keywords/identifiers, syntax characters as required in the Documentation Guidelines;
- when using tabs, the contents of each tab must one step indented from the ..tab: directive;
- an image from the folder structure of a platform definition would be helpful
1f61406 to
74ce71e
Compare
1654e31 to
d42b0fa
Compare
11de124 to
4d5c5b3
Compare
Signed-off-by: Jose Martins <josemartins90@gmail.com>
Signed-off-by: Daniel Oliveira <drawnpoetry@gmail.com>
4d5c5b3 to
5e32a79
Compare
I'm in charge now of this PR, therefore I'm withdrawing as a reviewer.
I'm taking over this PR. |
This PR details the steps for porting the Bao Hypervisor to a new platform. Still WIP, but any feedback is welcome.