linux-xiaomi-chiron/drivers/of
David Brazdil f396ededbd misc: open-dice: Add driver to expose DICE data to userspace
Open Profile for DICE is an open protocol for measured boot compatible
with the Trusted Computing Group's Device Identifier Composition
Engine (DICE) specification. The generated Compound Device Identifier
(CDI) certificates represent the hardware/software combination measured
by DICE, and can be used for remote attestation and sealing.

Add a driver that exposes reserved memory regions populated by firmware
with DICE CDIs and exposes them to userspace via a character device.

Userspace obtains the memory region's size from read() and calls mmap()
to create a mapping of the memory region in its address space. The
mapping is not allowed to be write+shared, giving userspace a guarantee
that the data were not overwritten by another process.

Userspace can also call write(), which triggers a wipe of the DICE data
by the driver. Because both the kernel and userspace mappings use
write-combine semantics, all clients observe the memory as zeroed after
the syscall has returned.

Cc: Andrew Scull <ascull@google.com>
Cc: Will Deacon <will@kernel.org>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: David Brazdil <dbrazdil@google.com>
Link: https://lore.kernel.org/r/20220126231237.529308-3-dbrazdil@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-02-04 16:45:39 +01:00
..
unittest-data of: unittest: document intentional interrupt-map provider build warning 2021-11-01 20:33:56 -05:00
address.c of: Move of_dma_set_restricted_buffer() into device.c 2021-08-23 06:32:02 -04:00
base.c of: base: make small of_parse_phandle() variants static inline 2022-01-20 12:55:26 -06:00
device.c of: Check 'of_node_reused' flag on of_match_device() 2022-01-20 12:55:26 -06:00
dynamic.c of: Add missing 'Return' section in kerneldoc comments 2021-03-27 12:59:03 -06:00
fdt.c Merge branch 'akpm' (patches from Andrew) 2022-01-15 20:37:06 +02:00
fdt_address.c of: Use SPDX license tag for DT files 2018-01-08 08:22:45 -06:00
irq.c of/irq: Add a quirk for controllers with their own definition of interrupt-map 2021-12-03 11:30:22 -06:00
Kconfig of: net: move of_net under net/ 2021-10-07 13:39:51 +01:00
kexec.c memblock: rename memblock_free to memblock_phys_free 2021-11-06 13:30:41 -07:00
kobj.c of: kobj: make of_node_is_(initialized|attached) parameters const 2021-10-20 13:37:25 -05:00
Makefile of: net: move of_net under net/ 2021-10-07 13:39:51 +01:00
of_numa.c of, numa: Fetch empty NUMA node ID from distance map 2021-10-04 13:13:44 -05:00
of_private.h of: kobj: make of_node_is_(initialized|attached) parameters const 2021-10-20 13:37:25 -05:00
of_reserved_mem.c memblock: rename memblock_free to memblock_phys_free 2021-11-06 13:30:41 -07:00
overlay.c of: overlay: Remove redundant assignment to ret 2021-05-03 13:57:56 -05:00
pdt.c of: Remove struct device_node.type pointer 2019-01-10 16:24:44 -06:00
platform.c misc: open-dice: Add driver to expose DICE data to userspace 2022-02-04 16:45:39 +01:00
property.c of: property: fw_devlink: Fixup behaviour when 'node_not_dev' is set 2021-11-18 08:13:52 -06:00
resolver.c of: overlay: log the error cause on resolver failure 2020-03-02 11:32:44 -06:00
unittest.c of: unittest: remove unneeded semicolon 2022-01-08 08:50:39 -06:00