mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-16 09:34:18 +00:00
docs(rmm): document console struct in rmm boot manifest
This change adds documentation for the console_list and console_info structures added to the RMM Boot Manifest v0.3. Signed-off-by: Harry Moulton <harry.moulton@arm.com> Change-Id: I3a4f9a4f1d34259bc69c0ab497cbfbc268d7a994
This commit is contained in:
parent
32904472cc
commit
88f7c87b8a
1 changed files with 65 additions and 18 deletions
|
@ -53,7 +53,7 @@ are explained below:
|
||||||
consistency with the versioning schemes used in other parts of RMM.
|
consistency with the versioning schemes used in other parts of RMM.
|
||||||
|
|
||||||
This document specifies the 0.2 version of Boot Interface ABI and RMM-EL3
|
This document specifies the 0.2 version of Boot Interface ABI and RMM-EL3
|
||||||
services specification and the 0.2 version of the Boot Manifest.
|
services specification and the 0.3 version of the Boot Manifest.
|
||||||
|
|
||||||
.. _rmm_el3_boot_interface:
|
.. _rmm_el3_boot_interface:
|
||||||
|
|
||||||
|
@ -182,17 +182,20 @@ platform information.
|
||||||
|
|
||||||
This Boot Manifest is versioned independently of the Boot Interface, to help
|
This Boot Manifest is versioned independently of the Boot Interface, to help
|
||||||
evolve the former independent of the latter.
|
evolve the former independent of the latter.
|
||||||
The current version for the Boot Manifest is ``v0.2`` and the rules explained
|
The current version for the Boot Manifest is ``v0.3`` and the rules explained
|
||||||
in :ref:`rmm_el3_ifc_versioning` apply on this version as well.
|
in :ref:`rmm_el3_ifc_versioning` apply on this version as well.
|
||||||
|
|
||||||
The Boot Manifest v0.2 has the following fields:
|
The Boot Manifest v0.3 has the following fields:
|
||||||
|
|
||||||
- version : Version of the Manifest (v0.2)
|
- version : Version of the Manifest (v0.3)
|
||||||
- plat_data : Pointer to the platform specific data and not specified by this
|
- plat_data : Pointer to the platform specific data and not specified by this
|
||||||
document. These data are optional and can be NULL.
|
document. These data are optional and can be NULL.
|
||||||
- plat_dram : Structure encoding the NS DRAM information on the platform. This
|
- plat_dram : Structure encoding the NS DRAM information on the platform. This
|
||||||
field is also optional and platform can choose to zero out this structure if
|
field is optional and platform can choose to zero out this structure if
|
||||||
RMM does not need EL3 to send this information during the boot.
|
RMM does not need EL3 to send this information during the boot.
|
||||||
|
- plat_console : Structure encoding the list of consoles for RMM use on the
|
||||||
|
platform. This field is optional and platform can choose to not populate
|
||||||
|
the console list if this is not needed by the RMM for this platform.
|
||||||
|
|
||||||
For the current version of the Boot Manifest, the core manifest contains a pointer
|
For the current version of the Boot Manifest, the core manifest contains a pointer
|
||||||
to the platform data. EL3 must ensure that the whole Boot Manifest, including
|
to the platform data. EL3 must ensure that the whole Boot Manifest, including
|
||||||
|
@ -533,23 +536,25 @@ _____
|
||||||
RMM-EL3 Boot Manifest structure
|
RMM-EL3 Boot Manifest structure
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
The RMM-EL3 Boot Manifest v0.2 structure contains platform boot information passed
|
The RMM-EL3 Boot Manifest v0.3 structure contains platform boot information passed
|
||||||
from EL3 to RMM. The size of the Boot Manifest is 40 bytes.
|
from EL3 to RMM. The size of the Boot Manifest is 64 bytes.
|
||||||
|
|
||||||
The members of the RMM-EL3 Boot Manifest structure are shown in the following
|
The members of the RMM-EL3 Boot Manifest structure are shown in the following
|
||||||
table:
|
table:
|
||||||
|
|
||||||
+-----------+--------+----------------+----------------------------------------+
|
+--------------+--------+----------------+----------------------------------------+
|
||||||
| Name | Offset | Type | Description |
|
| Name | Offset | Type | Description |
|
||||||
+===========+========+================+========================================+
|
+==============+========+================+========================================+
|
||||||
| version | 0 | uint32_t | Boot Manifest version |
|
| version | 0 | uint32_t | Boot Manifest version |
|
||||||
+-----------+--------+----------------+----------------------------------------+
|
+--------------+--------+----------------+----------------------------------------+
|
||||||
| padding | 4 | uint32_t | Reserved, set to 0 |
|
| padding | 4 | uint32_t | Reserved, set to 0 |
|
||||||
+-----------+--------+----------------+----------------------------------------+
|
+--------------+--------+----------------+----------------------------------------+
|
||||||
| plat_data | 8 | uintptr_t | Pointer to Platform Data section |
|
| plat_data | 8 | uintptr_t | Pointer to Platform Data section |
|
||||||
+-----------+--------+----------------+----------------------------------------+
|
+--------------+--------+----------------+----------------------------------------+
|
||||||
| plat_dram | 16 | ns_dram_info | NS DRAM Layout Info structure |
|
| plat_dram | 16 | ns_dram_info | NS DRAM Layout Info structure |
|
||||||
+-----------+--------+----------------+----------------------------------------+
|
+--------------+--------+----------------+----------------------------------------+
|
||||||
|
| plat_console | 40 | console_list | List of consoles available to RMM |
|
||||||
|
+--------------+--------+----------------+----------------------------------------+
|
||||||
|
|
||||||
.. _ns_dram_info_struct:
|
.. _ns_dram_info_struct:
|
||||||
|
|
||||||
|
@ -587,5 +592,47 @@ NS DRAM Bank structure contains information about each Non-secure DRAM bank:
|
||||||
| size | 8 | uint64_t | Size of bank in bytes |
|
| size | 8 | uint64_t | Size of bank in bytes |
|
||||||
+-----------+--------+----------------+----------------------------------------+
|
+-----------+--------+----------------+----------------------------------------+
|
||||||
|
|
||||||
|
.. _console_list_struct:
|
||||||
|
|
||||||
|
Console List structure
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Console List structure contains information about the available consoles for RMM.
|
||||||
|
The members of this structure are shown in the table below:
|
||||||
|
|
||||||
|
+--------------+--------+----------------+----------------------------------------+
|
||||||
|
| Name | Offset | Type | Description |
|
||||||
|
+==============+========+================+========================================+
|
||||||
|
| num_consoles | 0 | uint64_t | Number of consoles |
|
||||||
|
+--------------+--------+----------------+----------------------------------------+
|
||||||
|
| consoles | 8 | console_info * | Pointer to 'console_info'[] array |
|
||||||
|
+--------------+--------+----------------+----------------------------------------+
|
||||||
|
| checksum | 16 | uint64_t | Checksum |
|
||||||
|
+--------------+--------+----------------+----------------------------------------+
|
||||||
|
|
||||||
|
Checksum is calculated as two's complement sum of 'num_consoles', 'consoles'
|
||||||
|
pointer and the consoles array pointed by it.
|
||||||
|
|
||||||
|
.. _console_info_struct:
|
||||||
|
|
||||||
|
Console Info structure
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Console Info structure contains information about each Console available to RMM.
|
||||||
|
|
||||||
|
+-----------+--------+---------------+----------------------------------------+
|
||||||
|
| Name | Offset | Type | Description |
|
||||||
|
+===========+========+===============+========================================+
|
||||||
|
| base | 0 | uintptr_t | Console Base address |
|
||||||
|
+-----------+--------+---------------+----------------------------------------+
|
||||||
|
| map_pages | 8 | uint64_t | Num of pages to map for console MMIO |
|
||||||
|
+-----------+--------+---------------+----------------------------------------+
|
||||||
|
| name | 16 | char[] | Name of console |
|
||||||
|
+-----------+--------+---------------+----------------------------------------+
|
||||||
|
| clk_in_hz | 24 | uint64_t | UART clock (in hz) for console |
|
||||||
|
+-----------+--------+---------------+----------------------------------------+
|
||||||
|
| baud_rate | 32 | uint64_t | Baud rate |
|
||||||
|
+-----------+--------+---------------+----------------------------------------+
|
||||||
|
| flags | 40 | uint64_t | Additional flags (RES0) |
|
||||||
|
+-----------+--------+---------------+----------------------------------------+
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue