9
0
Fork 0

docs: Add/Update state documentation

Signed-off-by: Markus Pargmann <mpa@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Markus Pargmann 2016-07-06 10:19:44 +02:00 committed by Sascha Hauer
parent c999b507da
commit 46f26c0dee
3 changed files with 53 additions and 1 deletions

View File

@ -36,7 +36,12 @@ Optional properties:
* ``algo``: A HMAC algorithm used to detect manipulation of the data
or header, sensible values follow this pattern ``hmac(<HASH>)``,
e.g. ``hmac(sha256)``.
e.g. ``hmac(sha256)``. Only used for ``raw``.
* ``backend-stridesize``: Maximum size per copy of the data. Only important for
non-MTD devices
* ``backend-storage-type``: Type of the storage. This has two options at the
moment. For MTD with erasing the correct type is ``circular``. For all other
devices and files, ``direct`` is the needed type.
Variable nodes
--------------

View File

@ -0,0 +1,46 @@
Barebox State Framework
=======================
The state framework is build to exchange data between Barebox and Linux
userspace using a non-volatile storage. There are several components involved.
Barebox has a state driver to access the variables. For the Linux Userspace
there is a userspace tool.
Devicetree
----------
Currently the devicetree defines the layout of the variables and data.
Variables are fixed size. Several types are supported, see the binding
documentation for details.
Data Formats
------------
The state data can be stored in different ways. Currently two formats are
available, ``raw`` and ``dtb``. Both format the state data differently.
Basically these are serializers. The raw serializer additionally supports a
HMAC algorithm to detect manipulations.
Storage Backends
----------------
The serialized data can be stored to different backends which are automatically
selected depending on the defined backend in the devicetree. Currently two
implementations exist, ``circular`` and ``direct``. ``circular`` writes the
data sequentially on the backend storage device. Each save is appended until
the storage area is full. It then erases the block and starts from offset 0.
``circular`` is used for MTD devices with erase functionality. ``direct``
writes the data directly to the file without erasing.
For all backends multiple copies are written to handle read errors.
Commands
--------
The ``state`` command can be used to store and manipulate the state. Using
``state`` without argument lists you all available states with their name.
``devinfo STATE_NAME`` shows you all variables and their values. ``state -s``
stores the state.
Starting Barebox will automatically load the last written state. If loading the
state fails the defaults are used.

View File

@ -31,6 +31,7 @@ Contents:
system-setup
reset-reason
system-reset
state
* :ref:`search`
* :ref:`genindex`