summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSandrine Bailleux <sandrine.bailleux@arm.com>2020-05-05 12:01:48 +0000
committerTrustedFirmware Code Review <review@review.trustedfirmware.org>2020-05-05 12:01:48 +0000
commit6eb4304cf539c30c8d766fb5f57f3374f888d4f4 (patch)
treeae33bf5f727c6dd2db036f74e21d52d637f81f53
parent659bf156f15a334670d56bc6d0022706d1711b58 (diff)
parent592c396dcf4614b5e109fa182c71f70302d85935 (diff)
downloadarm-trusted-firmware-6eb4304cf539c30c8d766fb5f57f3374f888d4f4.tar.gz
Merge changes I85eb75cf,Ic6d9f927 into integration
* changes: fconf: Update dyn_config compatible string doc: Add binding document for fconf.
-rw-r--r--docs/components/fconf/fconf_properties.rst32
-rw-r--r--docs/components/fconf/index.rst (renamed from docs/components/fconf.rst)17
-rw-r--r--docs/components/index.rst2
-rw-r--r--lib/fconf/fconf_dyn_cfg_getter.c4
-rw-r--r--plat/arm/board/a5ds/fdts/a5ds_fw_config.dts2
-rw-r--r--plat/arm/board/fvp/fdts/fvp_fw_config.dts2
-rw-r--r--plat/arm/board/fvp_ve/fdts/fvp_ve_fw_config.dts2
-rw-r--r--plat/arm/board/juno/fdts/juno_fw_config.dts2
-rw-r--r--plat/arm/board/rddaniel/fdts/rddaniel_fw_config.dts2
-rw-r--r--plat/arm/board/rddanielxlr/fdts/rddanielxlr_fw_config.dts2
-rw-r--r--plat/arm/board/rde1edge/fdts/rde1edge_fw_config.dts2
-rw-r--r--plat/arm/board/rdn1edge/fdts/rdn1edge_fw_config.dts2
-rw-r--r--plat/arm/board/sgi575/fdts/sgi575_fw_config.dts2
-rw-r--r--plat/arm/board/sgm775/fdts/sgm775_fw_config.dts2
14 files changed, 60 insertions, 15 deletions
diff --git a/docs/components/fconf/fconf_properties.rst b/docs/components/fconf/fconf_properties.rst
new file mode 100644
index 000000000..5c28a7ae5
--- /dev/null
+++ b/docs/components/fconf/fconf_properties.rst
@@ -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.
+
diff --git a/docs/components/fconf.rst b/docs/components/fconf/index.rst
index 7352ac37a..0da56ec3b 100644
--- a/docs/components/fconf.rst
+++ b/docs/components/fconf/index.rst
@@ -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
diff --git a/docs/components/index.rst b/docs/components/index.rst
index 49986ca00..e3ce61489 100644
--- a/docs/components/index.rst
+++ b/docs/components/index.rst
@@ -10,7 +10,7 @@ Components
arm-sip-service
debugfs-design
exception-handling
- fconf
+ fconf/index
firmware-update
platform-interrupt-controller-API
ras
diff --git a/lib/fconf/fconf_dyn_cfg_getter.c b/lib/fconf/fconf_dyn_cfg_getter.c
index 03aaf9bb6..7b5bd6ec9 100644
--- a/lib/fconf/fconf_dyn_cfg_getter.c
+++ b/lib/fconf/fconf_dyn_cfg_getter.c
@@ -48,8 +48,8 @@ int fconf_populate_dtb_registry(uintptr_t config)
/* As libfdt use void *, we can't avoid this cast */
const void *dtb = (void *)config;
- /* Find the node offset point to "arm,dyn_cfg-dtb_registry" compatible property */
- const char *compatible_str = "arm,dyn_cfg-dtb_registry";
+ /* Find the node offset point to "fconf,dyn_cfg-dtb_registry" compatible property */
+ const char *compatible_str = "fconf,dyn_cfg-dtb_registry";
node = fdt_node_offset_by_compatible(dtb, -1, compatible_str);
if (node < 0) {
ERROR("FCONF: Can't find %s compatible in dtb\n", compatible_str);
diff --git a/plat/arm/board/a5ds/fdts/a5ds_fw_config.dts b/plat/arm/board/a5ds/fdts/a5ds_fw_config.dts
index 2f2d265c5..ff079ab6f 100644
--- a/plat/arm/board/a5ds/fdts/a5ds_fw_config.dts
+++ b/plat/arm/board/a5ds/fdts/a5ds_fw_config.dts
@@ -10,7 +10,7 @@
/ {
dtb-registry {
- compatible = "arm,dyn_cfg-dtb_registry";
+ compatible = "fconf,dyn_cfg-dtb_registry";
/* tb_fw_config is temporarily contained in this dtb */
tb_fw-config {
diff --git a/plat/arm/board/fvp/fdts/fvp_fw_config.dts b/plat/arm/board/fvp/fdts/fvp_fw_config.dts
index 98ea85760..7c111085d 100644
--- a/plat/arm/board/fvp/fdts/fvp_fw_config.dts
+++ b/plat/arm/board/fvp/fdts/fvp_fw_config.dts
@@ -10,7 +10,7 @@
/ {
dtb-registry {
- compatible = "arm,dyn_cfg-dtb_registry";
+ compatible = "fconf,dyn_cfg-dtb_registry";
/* tb_fw_config is temporarily contained on this dtb */
tb_fw-config {
diff --git a/plat/arm/board/fvp_ve/fdts/fvp_ve_fw_config.dts b/plat/arm/board/fvp_ve/fdts/fvp_ve_fw_config.dts
index 147c8f366..1727e2e24 100644
--- a/plat/arm/board/fvp_ve/fdts/fvp_ve_fw_config.dts
+++ b/plat/arm/board/fvp_ve/fdts/fvp_ve_fw_config.dts
@@ -10,7 +10,7 @@
/ {
dtb-registry {
- compatible = "arm,dyn_cfg-dtb_registry";
+ compatible = "fconf,dyn_cfg-dtb_registry";
/* tb_fw_config is temporarily contained on this dtb */
tb_fw-config {
diff --git a/plat/arm/board/juno/fdts/juno_fw_config.dts b/plat/arm/board/juno/fdts/juno_fw_config.dts
index cab6f2bf4..4e460aa78 100644
--- a/plat/arm/board/juno/fdts/juno_fw_config.dts
+++ b/plat/arm/board/juno/fdts/juno_fw_config.dts
@@ -10,7 +10,7 @@
/ {
dtb-registry {
- compatible = "arm,dyn_cfg-dtb_registry";
+ compatible = "fconf,dyn_cfg-dtb_registry";
/* tb_fw_config is temporarily contained on this dtb */
tb_fw-config {
diff --git a/plat/arm/board/rddaniel/fdts/rddaniel_fw_config.dts b/plat/arm/board/rddaniel/fdts/rddaniel_fw_config.dts
index 81e4cc12d..bb544a410 100644
--- a/plat/arm/board/rddaniel/fdts/rddaniel_fw_config.dts
+++ b/plat/arm/board/rddaniel/fdts/rddaniel_fw_config.dts
@@ -10,7 +10,7 @@
/ {
dtb-registry {
- compatible = "arm,dyn_cfg-dtb_registry";
+ compatible = "fconf,dyn_cfg-dtb_registry";
/* tb_fw_config is temporarily contained on this dtb */
tb_fw-config {
diff --git a/plat/arm/board/rddanielxlr/fdts/rddanielxlr_fw_config.dts b/plat/arm/board/rddanielxlr/fdts/rddanielxlr_fw_config.dts
index 81e4cc12d..bb544a410 100644
--- a/plat/arm/board/rddanielxlr/fdts/rddanielxlr_fw_config.dts
+++ b/plat/arm/board/rddanielxlr/fdts/rddanielxlr_fw_config.dts
@@ -10,7 +10,7 @@
/ {
dtb-registry {
- compatible = "arm,dyn_cfg-dtb_registry";
+ compatible = "fconf,dyn_cfg-dtb_registry";
/* tb_fw_config is temporarily contained on this dtb */
tb_fw-config {
diff --git a/plat/arm/board/rde1edge/fdts/rde1edge_fw_config.dts b/plat/arm/board/rde1edge/fdts/rde1edge_fw_config.dts
index 2719ab415..a5b4a583d 100644
--- a/plat/arm/board/rde1edge/fdts/rde1edge_fw_config.dts
+++ b/plat/arm/board/rde1edge/fdts/rde1edge_fw_config.dts
@@ -10,7 +10,7 @@
/ {
dtb-registry {
- compatible = "arm,dyn_cfg-dtb_registry";
+ compatible = "fconf,dyn_cfg-dtb_registry";
/* tb_fw_config is temporarily contained on this dtb */
tb_fw-config {
diff --git a/plat/arm/board/rdn1edge/fdts/rdn1edge_fw_config.dts b/plat/arm/board/rdn1edge/fdts/rdn1edge_fw_config.dts
index ba74b75bc..1f460f185 100644
--- a/plat/arm/board/rdn1edge/fdts/rdn1edge_fw_config.dts
+++ b/plat/arm/board/rdn1edge/fdts/rdn1edge_fw_config.dts
@@ -9,7 +9,7 @@
/dts-v1/;
/ {
dtb-registry {
- compatible = "arm,dyn_cfg-dtb_registry";
+ compatible = "fconf,dyn_cfg-dtb_registry";
/* tb_fw_config is temporarily contained on this dtb */
tb_fw-config {
diff --git a/plat/arm/board/sgi575/fdts/sgi575_fw_config.dts b/plat/arm/board/sgi575/fdts/sgi575_fw_config.dts
index 605cc08b7..da933e546 100644
--- a/plat/arm/board/sgi575/fdts/sgi575_fw_config.dts
+++ b/plat/arm/board/sgi575/fdts/sgi575_fw_config.dts
@@ -10,7 +10,7 @@
/ {
dtb-registry {
- compatible = "arm,dyn_cfg-dtb_registry";
+ compatible = "fconf,dyn_cfg-dtb_registry";
/* tb_fw_config is temporarily contained on this dtb */
tb_fw-config {
diff --git a/plat/arm/board/sgm775/fdts/sgm775_fw_config.dts b/plat/arm/board/sgm775/fdts/sgm775_fw_config.dts
index c5702ca3d..306bd89b9 100644
--- a/plat/arm/board/sgm775/fdts/sgm775_fw_config.dts
+++ b/plat/arm/board/sgm775/fdts/sgm775_fw_config.dts
@@ -10,7 +10,7 @@
/ {
dtb-registry {
- compatible = "arm,dyn_cfg-dtb_registry";
+ compatible = "fconf,dyn_cfg-dtb_registry";
/* tb_fw_config is temporarily contained on this dtb */
tb_fw-config {