Merge branch '2023-04-05-blkmap-composable-virtual-block-devices'
authorTom Rini <trini@konsulko.com>
Wed, 5 Apr 2023 22:59:47 +0000 (18:59 -0400)
committerTom Rini <trini@konsulko.com>
Wed, 5 Apr 2023 22:59:47 +0000 (18:59 -0400)
commit487e42f7bc5e685c9337890a38358581bb4f31bc
tree03133e406371e92ce12b03b50c61a82637eea827
parent25eeda170c5e533ca0e3837c8b2d7404cdd749d1
parent272ec6b453049beaf0de6654dabf9bbd5f617022
Merge branch '2023-04-05-blkmap-composable-virtual-block-devices'

To quote the author:
Block maps are a way of looking at various sources of data through the
lens of a regular block device. It lets you treat devices that are not
block devices, like RAM, as if they were. It also lets you export a
slice of an existing block device, which does not have to correspond to
a partition boundary, as a new block device.

This is primarily useful because U-Boot's filesystem drivers only
operate on block devices, so a block map lets you access filesystems
wherever they might be located.

The implementation is loosely modeled on Linux's "Device Mapper"
subsystem, see the kernel documentation [1] for more information.

The primary use-cases are to access filesystem images stored in RAM, and
within FIT images stored on disk. See doc/usage/blkmap.rst for more
details.

The architecture is pluggable, so adding other types of mappings should
be quite easy.

[1]: https://docs.kernel.org/admin-guide/device-mapper/index.html