doc: Add binding document for fconf.

Complete the documentation with information on how to write a DTS for
fconf. This patch adds the bindings information for dynamic
configuration properties.

Signed-off-by: Louis Mayencourt <louis.mayencourt@arm.com>
Change-Id: Ic6d9f927df53bb87315c23ec5a8943d0c3258d45
This commit is contained in:
Louis Mayencourt 2020-04-20 14:14:10 +01:00
parent 455a6f3b14
commit 4874793d2b
3 changed files with 48 additions and 3 deletions

View File

@ -0,0 +1,32 @@
DTB binding for FCONF properties
================================
This document describes the device tree format of |FCONF| properties. These
properties are not related to a specific platform and can be queried from
common code.
Dynamic configuration
~~~~~~~~~~~~~~~~~~~~~
The |FCONF| framework expects a *dtb-registry* node with the following field:
- compatible [mandatory]
- value type: <string>
- Must be the string "fconf,dyn_cfg-dtb_registry".
Then a list of subnodes representing a configuration |DTB|, which can be used
by |FCONF|. Each subnode should be named according to the information it
contains, and must be formed with the following fields:
- load-address [mandatory]
- value type: <u64>
- Physical loading base address of the configuration.
- max-size [mandatory]
- value type: <u32>
- Maximum size of the configuration.
- id [mandatory]
- value type: <u32>
- Image ID of the configuration.

View File

@ -81,6 +81,10 @@ Then, a wrapper has to be provided to match the ``FCONF_GET_PROPERTY()`` macro:
This second level wrapper can be used to remap the ``FCONF_GET_PROPERTY()`` to
anything appropriate: structure, array, function, etc..
To ensure a good interpretation of the properties, this documentation must
explain how the properties are described for a specific backend. Refer to the
:ref:`binding-document` section for more information and example.
Loading the property device tree
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@ -88,7 +92,7 @@ The ``fconf_load_config()`` must be called to load the device tree containing
the properties' values. This must be done after the io layer is initialized, as
the |DTB| is stored on an external device (FIP).
.. uml:: ../resources/diagrams/plantuml/fconf_bl1_load_config.puml
.. uml:: ../../resources/diagrams/plantuml/fconf_bl1_load_config.puml
Populating the properties
~~~~~~~~~~~~~~~~~~~~~~~~~
@ -98,7 +102,7 @@ can be used to fill the C data structure with the data from the config |DTB|.
This function will call all the ``populate()`` callbacks which have been
registered with ``FCONF_REGISTER_POPULATOR()`` as described above.
.. uml:: ../resources/diagrams/plantuml/fconf_bl2_populate.puml
.. uml:: ../../resources/diagrams/plantuml/fconf_bl2_populate.puml
Namespace guidance
~~~~~~~~~~~~~~~~~~
@ -129,3 +133,12 @@ belong.
Example:
- Arm io framework: arm.io_policies.bl31_id
.. _binding-document:
Properties binding information
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. toctree::
:maxdepth: 1
fconf_properties

View File

@ -10,7 +10,7 @@ Components
arm-sip-service
debugfs-design
exception-handling
fconf
fconf/index
firmware-update
platform-interrupt-controller-API
ras