[PATCH] doc: tlv: add images and custom format documentation

Fabian Pflug f.pflug at pengutronix.de
Tue Apr 21 03:15:35 PDT 2026


Improve the documentation by adding some images to make the
interdependencies clearer and add an example on how to define custom TLV
data format.

---
Signed-off-by: Fabian Pflug <f.pflug at pengutronix.de>
---
 Documentation/user/barebox-tlv.rst           | 113 +++++++++++++++++++++++++++
 Documentation/user/figures/tlv_generator.svg |   4 +
 Documentation/user/figures/tlv_usage.svg     |   4 +
 3 files changed, 121 insertions(+)

diff --git a/Documentation/user/barebox-tlv.rst b/Documentation/user/barebox-tlv.rst
index adade8a29b..3884d17409 100644
--- a/Documentation/user/barebox-tlv.rst
+++ b/Documentation/user/barebox-tlv.rst
@@ -10,6 +10,10 @@ Data is stored in a tag-length-value format (hence the name) and read
 from non-volatile memory during startup.
 Unpacked values are stored in the devicetree ``chosen``-node.
 
+.. image:: figures/tlv_usage.svg
+  :width: 40%
+  :align: center
+
 barebox TLV consists of two components:
 
 * The parser inside barebox (``common/tlv``).
@@ -61,6 +65,21 @@ The tag range ``0x0000`` to ``0x7FFF`` is intended for common tags,
 that can be used in every schema.
 These common tags are defined in ``common/tlv/barebox.c``.
 
+.. csv-table:: TLV predefined tags
+  :header: "ID", "Name", "Description"
+  :widths: 10, 20, 30
+
+	0x0002, device-hardware-release, "Detailed release information string for the device"
+	0x0003, factory-timestamp, "UNIX timestamp of fabrication"
+	0x0004, device-serial-number, "Device serial number string"
+	0x0005, modification, "Modification: 0: Device unmodified; 1: undocumented modifications"
+	0x0006, featureset, "A comma separated list of features"
+	0x0007, pcba-serial-number, "Printed Circuit Board Assembly serial number string"
+	0x0008, pcba-hardware-release, "Printed Circuit Board Assembly hardware release"
+	0x0011, ethernet-address, "A list of Ethernet addresses or a single Ethernet address"
+	0x0012, ethernet-address, "A sequence of subsequent Ethernet addresses, by number and starting address"
+	0x0024, bound-soc-uid, "Reject TLV if supplied binary data does not match UID SoC register"
+
 The tag range ``0x8000`` to ``0xFFFF`` is intended for custom extensions.
 Parsing must be handled by board-specific extensions.
 
@@ -102,6 +121,8 @@ This schema defines some well-known tags and two board-specific tags.
 Afterwards another yaml-file with the data for the TLV binary is needed.
 An example can be found in ``scripts/bareboxtlv-generator/data-example.yaml``.
 
+.. image:: figures/tlv_generator.svg
+
 With these information in place a TLV binary can be created:
 
 .. code-block:: shell
@@ -118,3 +139,95 @@ that is correctly configured, can be used as KEY.
 .. note::
   The ``FactoryDataset`` class in ``bareboxtlv-generator.py``
    is intended to be used as a library.
+
+Data Location
+-------------
+
+The generated ``tlv.bin`` file has to be stored on the device in a known location.
+This location can for example be described inside the devicetree of the device.
+
+.. code-block:: dts
+    :emphasize-lines: 8,10
+
+    &eeprom1 {
+      partitions {
+        compatible = "fixed-partitions";
+        #address-cells = <1>;
+        #size-cells = <1>;
+
+        tlv_partition: partition at 0 {
+          compatible = "barebox,tlv-v1";
+          label = "barebox_tlv";
+          reg = <0x0 0x1000>;
+        };
+      };
+    };
+
+The ``compatible`` defines the format to parse the TLV data as and the ``reg``
+describes the size of the data.
+
+Custom TLV format
+-----------------
+
+A custom TLV format can be created for example like this:
+
+.. code-block:: c
+   :linenos:
+
+    #include <string.h>
+    #include <tlv/tlv.h>
+    #include <common.h>
+
+    #define TLV_MAGIC_CUSTOM_V1_SIGNED 0xe3573cd3
+
+    static struct tlv_mapping custom_tlv_v1_mappings[] = {
+      /* UNIX timestamp of fabrication */
+      { 0x0003, tlv_format_timestamp, "factory-timestamp" },
+      /* Device serial number string */
+      { 0x0004, tlv_handle_serial, "device-serial-number" },
+      /* a comma separated list of features */
+      { 0x0006, tlv_format_str, "featureset" },
+      /* Printed Circuit Board Assembly serial number string */
+      { 0x0007, tlv_format_str, "pcba-serial-number" },
+      /* Reject TLV if supplied binary data does not match UID SoC register */
+      { 0x0024, tlv_bind_soc_uid, "bound-soc-uid" },
+      /* Custom key */
+      { 0x8001, tlv_format_str, "custom-key"},
+      { /* sentintel */ },
+    };
+
+    static struct tlv_mapping *mappings[] = {
+      custom_tlv_v1_mappings,
+      NULL
+    };
+
+    static struct of_device_id matches[] = {
+      { .compatible = "custom,tlv-v1" },
+      { /* sentinel */ }
+    };
+
+    static struct tlv_decoder custom_tlv_v1 = {
+      .magic = TLV_MAGIC_CUSTOM_V1_SIGNED,
+      .driver.name = "custom-tlv-v1",
+      .driver.of_compatible = matches,
+      .mappings = mappings,
+      .signature_keyring = "tlv-custom",
+    };
+
+    static int custom_tlv_v1_register(void)
+    {
+      return tlv_register_decoder(&custom_tlv_v1);
+    }
+    of_populate_initcall(custom_tlv_v1_register);
+
+* line 7-21: Every possible mapping, that is used must be listed here.
+* line 19: The mapping includes a custom tag.
+  All tags above ``0x8000`` are reserved for custom use.
+* line 29: The compatible string of the partition, that will contain the data.
+* line 5,34: Some randomly generated 32bit value to uniquely identify the
+  mapping-table.
+* line 38: The keyring tlv-stange should be used to validate the signature.
+  Keys for the keyring are specified in the barebox config
+  ``CONFIG_CRYPTO_PUBLIC_KEYS`` with for example:
+  ``keyring=tlv-custom:__ENV__TLV_KEY``.
+* line 41-45: Registers the format into barebox.
diff --git a/Documentation/user/figures/tlv_generator.svg b/Documentation/user/figures/tlv_generator.svg
new file mode 100644
index 0000000000..84ab826145
--- /dev/null
+++ b/Documentation/user/figures/tlv_generator.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1084.0095900272352 540.311838317604" width="1084.0095900272352" height="540.311838317604"><!-- svg-source:excalidraw --><metadata></metadata><defs><style class="style-fonts">
+      @font-face { font-family: Excalifont; src: url(data:font/woff2;base64,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); }</style></defs><g stroke-linecap="round" transform="translate(416.89641633336134 271.0077802638913) rotate(0 189.0167457221924 48.53427506946089)"><path d="M-0.64 0.19 C119.08 0.52, 233.49 1.38, 380.09 2.14 M-0.63 -0.01 C97.34 1.34, 195.25 0.86, 378.7 -0.88 M379.17 0.14 C376.42 25.12, 375.19 56.58, 374.67 99.98 M379.48 1.91 C378.74 21.05, 379.04 44.58, 376.14 95.16 M377.11 95.89 C252.58 101.34, 128.9 102.3, -1.85 96.05 M377.8 95.97 C296.73 97.83, 215.9 98.82, -0.3 96.68 M-2.03 100.82 C2.25 75.74, -1.78 51.48, -0.58 0.79 M1.62 97.68 C0.21 63.76, -0.06 28.19, 0.82 -1.43" stroke="#2f9e44" stroke-width="2" fill="none"></path></g><g transform="translate(439.7587897200251 300.3576641198016) rotate(0 166.01666259765625 17.5)"><text x="0" y="24.668" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="28px" fill="#2f9e44" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">barebox-tlv-generator.py</text></g><g transform="translate(39.34483209583493 82.35012393287138) rotate(0 128.54198394436622 212.5)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">magic: 0x61bb95f3</text><text x="0" y="42.62" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">max_size: 0x1000</text><text x="0" y="67.62" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic"></text><text x="0" y="92.62" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">tags:</text><text x="0" y="117.62" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">  factory-timestamp:</text><text x="0" y="142.62" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">    tag: 0x0003</text><text x="0" y="167.62" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">    format: "decimal"</text><text x="0" y="192.62" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">    length: 8</text><text x="0" y="217.62" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">    example: 1636451762</text><text x="0" y="242.62" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic"></text><text x="0" y="267.62" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">  featureset:</text><text x="0" y="292.62" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">    tag: 0x0006</text><text x="0" y="317.62" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">    format: "string"</text><text x="0" y="342.62" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">    example: "base"</text><text x="0" y="367.62" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">    purpose: For later use.</text><text x="0" y="392.62" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">May encode a set of</text><text x="0" y="417.62" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">features of this device.</text></g><g stroke-linecap="round" transform="translate(10 65.14706631481857) rotate(0 157.16666666666674 232.58238600139276)"><path d="M-0.97 1.32 C125.25 0.94, 245.16 4.75, 312.16 0.94 M314.42 -0.1 C313.38 126.94, 312.23 256.85, 313.4 465.19 M315.12 463.41 C212.15 462.84, 106.89 463.38, 0.14 465 M0.92 465.46 C0.63 312.71, 1.89 162.16, -0.87 -0.49" stroke="#1e1e1e" stroke-width="2.5" fill="none" stroke-dasharray="1.5 8"></path></g><g transform="translate(18 18.147066314818517) rotate(0 147.0333333333328 17.5)"><text x="147.0333333333328" y="24.668" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="28px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">schema.yaml</text></g><g transform="translate(382.9144620184677 102) rotate(0 180 37.5)"><text x="0" y="17.619999999999997" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">factory-timestamp: 1636451762</text><text x="0" y="42.62" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">featureset: "base"</text><text x="0" y="67.62" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic"></text></g><g stroke-linecap="round" transform="translate(365.9144620184677 61) rotate(0 186 67)"><path d="M0 0 C106.15 -0.52, 211.28 1.7, 372 0 M0 0 C102.84 1.4, 205.53 1.47, 372 0 M372 0 C371.97 38.68, 369.94 77.84, 372 134 M372 0 C372.71 42.06, 372.38 83.04, 372 134 M372 134 C246.21 132.73, 120.98 132.49, 0 134 M372 134 C231.47 134.23, 89.73 133.72, 0 134 M0 134 C-0.68 99.66, 0.92 64.19, 0 0 M0 134 C-0.01 103.06, 0.39 70.82, 0 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(360.9144620184677 10) rotate(0 189 17.5)"><text x="189" y="24.668" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="28px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">data.yaml</text></g><g stroke-linecap="round"><g transform="translate(552.9144620184677 195) rotate(0 11.302238134845197 35.93924112423406)"><path d="M-0.24 0.77 C3.93 12.33, 20.26 58.59, 24.43 70.14 M-1.83 0.13 C2.2 11.84, 18.96 59.87, 23.26 71.75" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(552.9144620184677 195) rotate(0 11.302238134845197 35.93924112423406)"><path d="M7.35 52.46 C12.76 56.62, 15.69 62, 23.26 71.75 M7.35 52.46 C11.99 58.49, 17.71 64.09, 23.26 71.75" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(552.9144620184677 195) rotate(0 11.302238134845197 35.93924112423406)"><path d="M23.47 46.75 C24.87 52.31, 23.75 59.13, 23.26 71.75 M23.47 46.75 C23.21 54.4, 24.07 61.73, 23.26 71.75" stroke="#1971c2" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(330.3333333333336 328.79569953093824) rotate(0 40.81442591384666 -3.9218069799444777)"><path d="M-0.59 -0.77 C12.59 -2.02, 66.4 -6.38, 79.87 -7.66 M1.3 1.45 C14.81 -0.12, 69.21 -7.87, 82.22 -9.29" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(330.3333333333336 328.79569953093824) rotate(0 40.81442591384666 -3.9218069799444777)"><path d="M60.01 2.18 C66.84 -3.05, 77.78 -6.59, 82.22 -9.29 M60.01 2.18 C67.29 -1.87, 73.6 -5.63, 82.22 -9.29" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(330.3333333333336 328.79569953093824) rotate(0 40.81442591384666 -3.9218069799444777)"><path d="M57.83 -14.78 C65.44 -13.81, 77.18 -11.17, 82.22 -9.29 M57.83 -14.78 C65.9 -13.56, 72.89 -12.07, 82.22 -9.29" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(822.8748601382113 69.31431032470829) rotate(0 125.56736494451195 52.07638778706499)"><path d="M0 0 C59.82 -0.1, 119.87 0.98, 251.13 0 M0 0 C61.68 1.8, 122.79 1.58, 251.13 0 M251.13 0 C252.18 30.14, 251.94 58.64, 251.13 104.15 M251.13 0 C250.92 20.21, 252.47 41.74, 251.13 104.15 M251.13 104.15 C192.85 104.6, 134.66 104.48, 0 104.15 M251.13 104.15 C185.48 104.2, 120.4 104.41, 0 104.15 M0 104.15 C0.22 66.73, 0.15 26.03, 0 0 M0 104.15 C-1.06 71.26, -0.7 39.27, 0 0" stroke="#e03131" stroke-width="1" fill="none"></path></g><g transform="translate(851.7489513851142 104.37739332473643) rotate(0 97.66666412353516 17.5)"><text x="97.66666412353516" y="24.668" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="28px" fill="#e03131" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">PRIVATE KEY</text></g><g stroke-linecap="round"><g transform="translate(861.6555836381003 178.96708589883826) rotate(0 -32.38692971151636 43.20106573967826)"><path d="M0.83 0.56 C-9.98 14.69, -54.87 71.15, -65.6 85.55 M-0.2 -0.19 C-10.59 13.99, -52.88 72.42, -63.48 86.59" stroke="#e03131" stroke-width="1" fill="none"></path></g><g transform="translate(861.6555836381003 178.96708589883826) rotate(0 -32.38692971151636 43.20106573967826)"><path d="M-56.47 62.59 C-57.04 66.49, -61.2 75.66, -63.48 86.59 M-56.47 62.59 C-59.38 70.57, -62.09 79.65, -63.48 86.59" stroke="#e03131" stroke-width="1" fill="none"></path></g><g transform="translate(861.6555836381003 178.96708589883826) rotate(0 -32.38692971151636 43.20106573967826)"><path d="M-42.68 72.71 C-46.61 74.29, -54.05 81.06, -63.48 86.59 M-42.68 72.71 C-50.21 77.11, -57.59 82.76, -63.48 86.59" stroke="#e03131" stroke-width="1" fill="none"></path></g></g><mask></mask><g transform="translate(910.7892908889155 14.825474139503228) rotate(0 44.46666717529297 17.5)"><text x="44.46666717529297" y="24.668" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="28px" fill="#e03131" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">tlv.key</text></g><g stroke-linecap="round" transform="translate(611.649137712172 418.76147323230333) rotate(0 225.33988360197293 49.64291172224887)"><path d="M0 0 C112.71 -1.47, 227.21 -1.52, 450.68 0 M0 0 C151.83 1.59, 303.4 2.1, 450.68 0 M450.68 0 C452.26 37.82, 452.15 73.83, 450.68 99.29 M450.68 0 C451.29 36.64, 451.02 70.86, 450.68 99.29 M450.68 99.29 C290.57 99.59, 130.69 99.65, 0 99.29 M450.68 99.29 C359.85 100.36, 269.56 100.86, 0 99.29 M0 99.29 C-0.91 75.32, -2.06 45.54, 0 0 M0 99.29 C-0.59 60.38, -0.76 20.68, 0 0" stroke="#f08c00" stroke-width="2" fill="none"></path></g><g transform="translate(725.7208847531294 449.93099452862583) rotate(0 114.67500305175781 17.5)"><text x="0" y="24.668" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="28px" fill="#f08c00" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Signed TLV data</text></g><g stroke-linecap="round"><g transform="translate(462.34470626693155 374.076330402813) rotate(0 68.77793522494312 47.96468078588268)"><path d="M1.2 0.85 C2.23 14.81, -16.74 69.03, 7 84.5 C30.73 99.97, 120.91 92.01, 143.62 93.68 M0.37 0.26 C1.15 14.26, -17.83 69.71, 5.95 85.48 C29.72 101.24, 120.09 93.71, 143.03 94.85" stroke="#2f9e44" stroke-width="2" fill="none"></path></g><g transform="translate(462.34470626693155 374.076330402813) rotate(0 68.77793522494312 47.96468078588268)"><path d="M119.65 103.7 C129.61 99.89, 135.01 97.49, 143.03 94.85 M119.65 103.7 C126.72 100.36, 132.35 98.08, 143.03 94.85" stroke="#2f9e44" stroke-width="2" fill="none"></path></g><g transform="translate(462.34470626693155 374.076330402813) rotate(0 68.77793522494312 47.96468078588268)"><path d="M119.43 86.6 C129.58 89.08, 135.06 92.96, 143.03 94.85 M119.43 86.6 C126.56 87.99, 132.25 90.42, 143.03 94.85" stroke="#2f9e44" stroke-width="2" fill="none"></path></g></g><mask></mask><g transform="translate(849.8771273470225 369.48303155496075) rotate(0 101.79166412353516 17.5)"><text x="0" y="24.668" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="28px" fill="#f08c00" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">TLV_signed.bin</text></g></svg>
\ No newline at end of file
diff --git a/Documentation/user/figures/tlv_usage.svg b/Documentation/user/figures/tlv_usage.svg
new file mode 100644
index 0000000000..7aed416a39
--- /dev/null
+++ b/Documentation/user/figures/tlv_usage.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 657.4080365056418 596.8771015144298" width="657.4080365056418" height="596.8771015144298"><!-- svg-source:excalidraw --><metadata></metadata><defs><style class="style-fonts">
+      @font-face { font-family: Excalifont; src: url(data:font/woff2;base64,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); }</style></defs><g stroke-linecap="round" transform="translate(62.23142252509001 49.39500667942377) rotate(0 109.06443343695082 44.24104741750298)"><path d="M0 0 C54.51 0.83, 107.59 0.02, 218.13 0 M0 0 C68.12 -2.18, 134.7 -1.86, 218.13 0 M218.13 0 C216.71 36.65, 218.12 68.39, 218.13 88.48 M218.13 0 C218.57 31.27, 217.73 60.84, 218.13 88.48 M218.13 88.48 C166.73 85.71, 115.08 88.54, 0 88.48 M218.13 88.48 C158.58 89.18, 97.97 89.89, 0 88.48 M0 88.48 C1.26 58.91, -2.32 32.46, 0 0 M0 88.48 C-0.06 62.17, -0.26 35.37, 0 0" stroke="#2f9e44" stroke-width="2" fill="none"></path></g><g transform="translate(101.23142252509001 78.37710151442974) rotate(0 52.40833282470703 17.5)"><text x="0" y="24.668" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="28px" fill="#2f9e44" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">SOC ID</text></g><g transform="translate(64.04287176787511 10.5) rotate(0 108.5 17.5)"><text x="0" y="24.668" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="28px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">read from fuses</text></g><g stroke-linecap="round" transform="translate(305.4080365056418 267.0417787183192) rotate(0 171 41.5)"><path d="M0 0 C76.61 -1.94, 151.15 -2.29, 342 0 M0 0 C70.66 1.14, 140.36 1.37, 342 0 M342 0 C341.16 21.28, 341.86 43.93, 342 83 M342 0 C340.91 33.11, 341.95 63.87, 342 83 M342 83 C207.6 84.88, 76.26 84.44, 0 83 M342 83 C239.27 81.46, 136.69 81.13, 0 83 M0 83 C-1.65 51.92, -1.96 19.33, 0 0 M0 83 C-0.68 60.04, -0.29 34.75, 0 0" stroke="#f08c00" stroke-width="2" fill="none"></path></g><g transform="translate(363.23142252509 286.37710151442974) rotate(0 114.67500305175781 17.5)"><text x="0" y="24.668" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="28px" fill="#f08c00" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Signed TLV data</text></g><g transform="translate(64.89013134064817 286.2482346405281) rotate(0 117.1500015258789 17.5)"><text x="0" y="24.668" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="28px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">read from eeprom</text></g><g stroke-linecap="round" transform="translate(316.23142252509 47.87710151442974) rotate(0 161.5 45.5)"><path d="M0 0 C128.04 -1.59, 252.61 -1.11, 323 0 M0 0 C82.29 0.85, 165.72 -0.18, 323 0 M323 0 C324.15 22.82, 321.26 42.11, 323 91 M323 0 C323.64 31.66, 323.78 65.24, 323 91 M323 91 C245.34 92.88, 168.7 92.79, 0 91 M323 91 C250.4 91.89, 176.38 91.63, 0 91 M0 91 C-1.42 60.51, 1.08 31.86, 0 0 M0 91 C-1.06 67.49, -0.5 46.32, 0 0" stroke="#e03131" stroke-width="2" fill="none"></path></g><g transform="translate(366.23142252509 74.37710151442974) rotate(0 100.89167022705078 17.5)"><text x="0" y="24.668" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="28px" fill="#e03131" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">TLV Public Key</text></g><g transform="translate(333.07868209786307 10) rotate(0 147.68333435058594 17.5)"><text x="0" y="24.668" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="28px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Compiled into barebox</text></g><g stroke-linecap="round"><g transform="translate(477.70185745984986 144.87710151442968) rotate(0 -0.7094216862008125 58.59112767090815)"><path d="M-1.16 0.34 C-1.65 19.71, -2.04 96.86, -1.89 116.17 M0.44 -0.52 C0.24 19.05, 0.62 98.04, 0.46 117.71" stroke="#e03131" stroke-width="2" fill="none"></path></g><g transform="translate(477.70185745984986 144.87710151442968) rotate(0 -0.7094216862008125 58.59112767090815)"><path d="M-8.07 94.21 C-4.19 102.28, -1.44 114.13, 0.46 117.71 M-8.07 94.21 C-4.8 101.53, -3.33 108.2, 0.46 117.71" stroke="#e03131" stroke-width="2" fill="none"></path></g><g transform="translate(477.70185745984986 144.87710151442968) rotate(0 -0.7094216862008125 58.59112767090815)"><path d="M9.03 94.22 C6.26 102.12, 2.36 113.97, 0.46 117.71 M9.03 94.22 C7.17 101.52, 3.52 108.18, 0.46 117.71" stroke="#e03131" stroke-width="2" fill="none"></path></g></g><mask></mask><g transform="translate(496.23142252509 178.37710151442974) rotate(0 50.34166717529297 17.5)"><text x="0" y="24.668" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="28px" fill="#e03131" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Verifies</text></g><g transform="translate(10 205.83532279611035) rotate(0 119.17500305175781 17.5)"><text x="0" y="24.668" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="28px" fill="#2f9e44" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Compared against</text></g><g stroke-linecap="round" transform="translate(315.23142252509 459.87710151442974) rotate(0 162 63.5)"><path d="M0 0 C72.25 -0.78, 147.52 -0.79, 324 0 M0 0 C104.53 -1.67, 209.95 -1.75, 324 0 M324 0 C322.39 30.85, 323.13 59.87, 324 127 M324 0 C324.97 27.84, 324.15 54.3, 324 127 M324 127 C229.94 125.86, 135.62 125.73, 0 127 M324 127 C208.28 126.32, 92.48 126.26, 0 127 M0 127 C-1.23 95.98, -0.59 67.42, 0 0 M0 127 C-0.46 88.11, -1.19 48.91, 0 0" stroke="#1971c2" stroke-width="2" fill="none"></path></g><g transform="translate(391.23142252509 505.37710151442974) rotate(0 80.92500305175781 17.5)"><text x="0" y="24.668" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="28px" fill="#1971c2" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Device-Tree</text></g><g transform="translate(512.23142252509 385.37710151442974) rotate(0 57.125 17.5)"><text x="0" y="24.668" font-family="Excalifont, Xiaolai, sans-serif, Segoe UI Emoji" font-size="28px" fill="#f08c00" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="alphabetic">Updates</text></g><g stroke-linecap="round"><g transform="translate(476.48711747827633 356.0417787183192) rotate(0 0.1670692346838223 48.7232466425674)"><path d="M0.23 -0.24 C0.35 16.3, 1.38 82.52, 1.45 98.86 M-1.11 -1.41 C-1.14 14.84, 0.72 80.52, 0.88 97.27" stroke="#f08c00" stroke-width="2" fill="none"></path></g><g transform="translate(476.48711747827633 356.0417787183192) rotate(0 0.1670692346838223 48.7232466425674)"><path d="M-8.14 73.95 C-5.38 83.48, -0.05 90.51, 0.88 97.27 M-8.14 73.95 C-6.37 81.28, -1.77 87.96, 0.88 97.27" stroke="#f08c00" stroke-width="2" fill="none"></path></g><g transform="translate(476.48711747827633 356.0417787183192) rotate(0 0.1670692346838223 48.7232466425674)"><path d="M8.96 73.61 C5.6 83.29, 4.8 90.45, 0.88 97.27 M8.96 73.61 C5.67 80.96, 5.21 87.74, 0.88 97.27" stroke="#f08c00" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(179.64227191431655 143.87710151442974) rotate(0 60.00845137459498 59.309049379523714)"><path d="M-1.04 -0.92 C11.05 7.78, 51.87 31.65, 72.22 51.6 C92.57 71.55, 112.83 107.35, 121.06 118.79 M0.62 1.21 C12.56 10.11, 51.17 33.09, 71.14 52.81 C91.12 72.53, 111.92 108.1, 120.44 119.54" stroke="#2f9e44" stroke-width="2" fill="none"></path></g><g transform="translate(179.64227191431655 143.87710151442974) rotate(0 60.00845137459498 59.309049379523714)"><path d="M23.24 5.06 C15.15 2.83, 9.06 2.1, -1.04 -0.92 M23.24 5.06 C17.32 3.66, 12.11 1.94, -1.04 -0.92" stroke="#2f9e44" stroke-width="2" fill="none"></path></g><g transform="translate(179.64227191431655 143.87710151442974) rotate(0 60.00845137459498 59.309049379523714)"><path d="M13.71 19.26 C8.27 13.26, 4.77 8.68, -1.04 -0.92 M13.71 19.26 C9.71 14.85, 6.5 10.14, -1.04 -0.92" stroke="#2f9e44" stroke-width="2" fill="none"></path></g><g transform="translate(179.64227191431655 143.87710151442974) rotate(0 60.00845137459498 59.309049379523714)"><path d="M100.21 104.86 C104.09 108.62, 110.08 113.49, 120.44 119.54 M100.21 104.86 C103.8 107.68, 107.96 110.31, 120.44 119.54" stroke="#2f9e44" stroke-width="2" fill="none"></path></g><g transform="translate(179.64227191431655 143.87710151442974) rotate(0 60.00845137459498 59.309049379523714)"><path d="M114.38 95.29 C114.37 101.52, 116.51 108.99, 120.44 119.54 M114.38 95.29 C115.06 100.16, 116.23 104.8, 120.44 119.54" stroke="#2f9e44" stroke-width="2" fill="none"></path></g></g><mask></mask></svg>
\ No newline at end of file

---
base-commit: c3e3a36f1511a7b4f34061b7be118085b80f7165
change-id: 20260421-v2026-04-0-topic-tlv-doc-e1e56321f477

Best regards,
-- 
Fabian Pflug <f.pflug at pengutronix.de>




More information about the barebox mailing list