Commit 4874793d authored by Louis Mayencourt's avatar Louis Mayencourt
Browse files

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: default avatarLouis Mayencourt <louis.mayencourt@arm.com>
Change-Id: Ic6d9f927df53bb87315c23ec5a8943d0c3258d45
parent 455a6f3b
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.
...@@ -81,6 +81,10 @@ Then, a wrapper has to be provided to match the ``FCONF_GET_PROPERTY()`` macro: ...@@ -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 This second level wrapper can be used to remap the ``FCONF_GET_PROPERTY()`` to
anything appropriate: structure, array, function, etc.. 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 Loading the property device tree
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...@@ -88,7 +92,7 @@ The ``fconf_load_config()`` must be called to load the device tree containing ...@@ -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 properties' values. This must be done after the io layer is initialized, as
the |DTB| is stored on an external device (FIP). 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 Populating the properties
~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~
...@@ -98,7 +102,7 @@ can be used to fill the C data structure with the data from the config |DTB|. ...@@ -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 This function will call all the ``populate()`` callbacks which have been
registered with ``FCONF_REGISTER_POPULATOR()`` as described above. 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 Namespace guidance
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
...@@ -129,3 +133,12 @@ belong. ...@@ -129,3 +133,12 @@ belong.
Example: Example:
- Arm io framework: arm.io_policies.bl31_id - Arm io framework: arm.io_policies.bl31_id
.. _binding-document:
Properties binding information
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. toctree::
:maxdepth: 1
fconf_properties
...@@ -10,7 +10,7 @@ Components ...@@ -10,7 +10,7 @@ Components
arm-sip-service arm-sip-service
debugfs-design debugfs-design
exception-handling exception-handling
fconf fconf/index
firmware-update firmware-update
platform-interrupt-controller-API platform-interrupt-controller-API
ras ras
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment