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:
parent
c999b507da
commit
46f26c0dee
|
@ -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
|
||||
--------------
|
||||
|
|
|
@ -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.
|
|
@ -31,6 +31,7 @@ Contents:
|
|||
system-setup
|
||||
reset-reason
|
||||
system-reset
|
||||
state
|
||||
|
||||
* :ref:`search`
|
||||
* :ref:`genindex`
|
||||
|
|
Loading…
Reference in New Issue