[PATCH 00/10] Add barebox TLV infrastructure
Ahmad Fatoum
a.fatoum at pengutronix.de
Tue Apr 22 04:40:48 PDT 2025
Hello Sascha,
Could the first three patches that are applicable on their own be applied?
Thanks,
On 4/11/25 09:40, Ahmad Fatoum wrote:
> barebox TLV is a system to store and retrieve a device's (read-only)
> meta-data from non-volatile memory.
> It is intended to handle information that are usually only set in
> the factory - like serial number, MAC-addresses, analog calibration
> data, etc.
> Data is stored in a tag-length-value format (hence the name) and read
> from non-volatile memory during startup.
>
> Unpacked values are fixed up into the devicetree ``chosen``-node
> for consumption by the operating system.
>
> This system has already been deployed in the field for a couple of years
> now on the LXA TAC. The feature is given a generic name though, because
> it's hoped it will be useful to a more general audience.
>
> Nowadays, this could be implemented as a NVMEM layout in Linux.
> The benefit of doing it in barebox is that, when signing is added
> in the future, we preclude an attacker from showing barebox
> and Linux different content.
>
> Nevertheless, NVMEM layout infrastructure in barebox could be
> useful, but our NVMEM support needs an overhaul to support layouts,
> so fixed-partitions is the only supported binding for now.
>
> Ahmad Fatoum (8):
> net: factor out eth_of_get_fixup_node
> net: export list of registered ethernet addresses
> common: add optional systemd.hostname generation
> common: add barebox TLV support
> commands: add TLV debugging command
> scripts: add bareboxtlv host/target tool
> boards: add decoder for LXA TLV v1 format
> ARM: stm32mp: lxa: enable TLV support for TAC & FairyTux2
>
> Chris Fiege (2):
> scripts: Add Barebox TLV Generator Tooling
> doc: Add User-Documentation for Barebox TLV
>
> .../bindings/nvmem/barebox,tlv.yaml | 60 ++++
> Documentation/user/barebox-tlv.rst | 93 +++++
> Documentation/user/user-manual.rst | 1 +
> arch/arm/boards/lxa-fairytux2/board.c | 8 +
> arch/arm/boards/lxa-tac/board.c | 8 +
> .../dts/stm32mp153c-lxa-fairytux2-gen2.dts | 1 +
> arch/arm/dts/stm32mp153c-lxa-fairytux2.dtsi | 1 +
> arch/arm/dts/stm32mp15xc-lxa-tac.dtsi | 2 +
> arch/arm/mach-stm32mp/Kconfig | 2 +
> commands/Kconfig | 12 +
> commands/Makefile | 1 +
> commands/tlv.c | 55 +++
> common/Kconfig | 34 ++
> common/Makefile | 1 +
> common/boards/Kconfig | 5 +
> common/boards/Makefile | 1 +
> common/boards/lxa/Makefile | 2 +
> common/boards/lxa/factory-data.c | 132 +++++++
> common/bootm.c | 9 +-
> common/tlv/Makefile | 4 +
> common/tlv/barebox.c | 183 ++++++++++
> common/tlv/bus.c | 133 ++++++++
> common/tlv/drv.c | 49 +++
> common/tlv/parser.c | 211 ++++++++++++
> common/tlv/register.c | 94 +++++
> include/net.h | 21 ++
> include/string.h | 7 +
> include/tlv/format.h | 72 ++++
> include/tlv/tlv.h | 99 ++++++
> lib/string.c | 21 ++
> net/eth.c | 40 +--
> scripts/.gitignore | 2 +
> scripts/Makefile | 2 +
> .../bareboxtlv-generator.py | 321 ++++++++++++++++++
> .../bareboxtlv-generator/data-example.yaml | 12 +
> scripts/bareboxtlv-generator/requirements.txt | 2 +
> .../bareboxtlv-generator/schema-example.yaml | 48 +++
> scripts/bareboxtlv-target.c | 1 +
> scripts/bareboxtlv.c | 183 ++++++++++
> scripts/include/asm/unaligned.h | 21 ++
> scripts/include/linux/build_bug.h | 8 +
> scripts/include/linux/stringify.h | 14 +
> test/self/Kconfig | 7 +
> test/self/Makefile | 1 +
> test/self/tlv.c | 89 +++++
> test/self/tlv.dts | 27 ++
> 46 files changed, 2080 insertions(+), 20 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/nvmem/barebox,tlv.yaml
> create mode 100644 Documentation/user/barebox-tlv.rst
> create mode 100644 commands/tlv.c
> create mode 100644 common/boards/lxa/Makefile
> create mode 100644 common/boards/lxa/factory-data.c
> create mode 100644 common/tlv/Makefile
> create mode 100644 common/tlv/barebox.c
> create mode 100644 common/tlv/bus.c
> create mode 100644 common/tlv/drv.c
> create mode 100644 common/tlv/parser.c
> create mode 100644 common/tlv/register.c
> create mode 100644 include/tlv/format.h
> create mode 100644 include/tlv/tlv.h
> create mode 100755 scripts/bareboxtlv-generator/bareboxtlv-generator.py
> create mode 100644 scripts/bareboxtlv-generator/data-example.yaml
> create mode 100644 scripts/bareboxtlv-generator/requirements.txt
> create mode 100644 scripts/bareboxtlv-generator/schema-example.yaml
> create mode 100644 scripts/bareboxtlv-target.c
> create mode 100644 scripts/bareboxtlv.c
> create mode 100644 scripts/include/asm/unaligned.h
> create mode 100644 scripts/include/linux/build_bug.h
> create mode 100644 scripts/include/linux/stringify.h
> create mode 100644 test/self/tlv.c
> create mode 100644 test/self/tlv.dts
>
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list