linux/Documentation
Russell Currey ccadf154cb powerpc/pseries: Implement secvars for dynamic secure boot
The pseries platform can support dynamic secure boot (i.e. secure boot
using user-defined keys) using variables contained with the PowerVM LPAR
Platform KeyStore (PLPKS).  Using the powerpc secvar API, expose the
relevant variables for pseries dynamic secure boot through the existing
secvar filesystem layout.

The relevant variables for dynamic secure boot are signed in the
keystore, and can only be modified using the H_PKS_SIGNED_UPDATE hcall.
Object labels in the keystore are encoded using ucs2 format.  With our
fixed variable names we don't have to care about encoding outside of the
necessary byte padding.

When a user writes to a variable, the first 8 bytes of data must contain
the signed update flags as defined by the hypervisor.

When a user reads a variable, the first 4 bytes of data contain the
policies defined for the object.

Limitations exist due to the underlying implementation of sysfs binary
attributes, as is the case for the OPAL secvar implementation -
partial writes are unsupported and writes cannot be larger than PAGE_SIZE.
(Even when using bin_attributes, which can be larger than a single page,
sysfs only gives us one page's worth of write buffer at a time, and the
hypervisor does not expose an interface for partial writes.)

Co-developed-by: Nayna Jain <nayna@linux.ibm.com>
Signed-off-by: Nayna Jain <nayna@linux.ibm.com>
Co-developed-by: Andrew Donnellan <ajd@linux.ibm.com>
Signed-off-by: Andrew Donnellan <ajd@linux.ibm.com>
Signed-off-by: Russell Currey <ruscur@russell.cc>
[mpe: Add NLS dependency to fix build errors, squash fix from ajd]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20230210080401.345462-25-ajd@linux.ibm.com
2023-02-13 22:34:33 +11:00
..
ABI powerpc/pseries: Implement secvars for dynamic secure boot 2023-02-13 22:34:33 +11:00
accel
accounting
admin-guide IOMMU Updates for Linux v6.2 2022-12-19 08:34:39 -06:00
arc
arm
arm64 Revert "arm64: errata: Workaround possible Cortex-A715 [ESR|FAR]_ELx corruption" 2022-12-15 17:59:12 +00:00
block
bpf docs/bpf: Reword docs for BPF_MAP_TYPE_SK_STORAGE 2022-12-14 18:35:41 +01:00
cdrom
core-api hardening updates for v6.2-rc1 2022-12-14 12:20:00 -08:00
cpu-freq cpufreq: Remove CVS version control contents from documentation 2022-12-06 12:24:51 +01:00
crypto
dev-tools linux-kselftest-kunit-next-6.2-rc1 2022-12-12 16:42:57 -08:00
devicetree More sound updates for 6.2-rc1 2022-12-23 11:15:48 -08:00
doc-guide
driver-api dmaengine updates for v6.2 2022-12-19 08:54:17 -06:00
fault-injection debugfs: fix error when writing negative value to atomic_t debugfs file 2022-11-30 16:13:16 -08:00
fb
features RISC-V Patches for the 6.2 Merge Window, Part 1 2022-12-14 15:23:49 -08:00
filesystems ntfs3 for 6.2 2022-12-21 10:18:17 -08:00
firmware-guide
firmware_class
fpga
gpu drm/amdgpu: add GART, GPUVM, and GTT to glossary 2022-12-02 10:05:33 -05:00
hid
hwmon hwmon: (aquacomputer_d5next) Add support for Quadro flow sensor pulses 2022-12-04 16:45:03 -08:00
i2c
ia64
iio
images
infiniband
input
isdn
kbuild
kernel-hacking Updates for timers, timekeeping and drivers: 2022-12-12 12:52:02 -08:00
leds
litmus-tests
livepatch
locking
loongarch This was a not-too-busy cycle for documentation; highlights include: 2022-12-12 17:18:50 -08:00
m68k
maintainer docs, nvme: add a feature and quirk policy document 2022-12-28 05:37:12 -10:00
mhi
mips
misc-devices
mm MM patches for 6.2-rc1. 2022-12-13 19:29:45 -08:00
netlabel
networking Documentation: devlink: add missing toc entry for etas_es58x devlink doc 2022-12-19 16:08:27 +01:00
nios2
nvdimm
nvme docs, nvme: add a feature and quirk policy document 2022-12-28 05:37:12 -10:00
openrisc
parisc
PCI cxl for 6.2 2022-12-12 13:55:31 -08:00
pcmcia
peci
power
powerpc docs: powerpc: add POWER9 and POWER10 to CPU families 2022-11-24 23:31:47 +11:00
process Kbuild updates for v6.2 2022-12-19 12:33:32 -06:00
RCU Updates for timers, timekeeping and drivers: 2022-12-12 12:52:02 -08:00
riscv RISC-V Patches for the 6.2 Merge Window, Part 1 2022-12-14 15:23:49 -08:00
rust
s390
scheduler
scsi
security
sh
sound
sparc
sphinx
sphinx-static
spi
staging
target
timers Documentation: Replace del_timer/del_timer_sync() 2022-11-24 15:09:11 +01:00
tools Documentation/rv: Add verification/rv man pages 2022-12-09 18:06:24 -05:00
trace Trace probes updates for 6.2: 2022-12-21 18:57:24 -08:00
translations This was a not-too-busy cycle for documentation; highlights include: 2022-12-12 17:18:50 -08:00
usb
userspace-api iommufd for 6.2 2022-12-14 09:15:43 -08:00
virt Merge branch 'kvm-late-6.1-fixes' into HEAD 2022-12-28 07:19:14 -05:00
w1
watchdog
x86 Add TDX guest attestation infrastructure and driver 2022-12-12 14:27:49 -08:00
xtensa
.gitignore
arch.rst
atomic_bitops.txt
atomic_t.txt
Changes
CodingStyle
conf.py
docutils.conf
dontdiff
index.rst
Kconfig
Makefile
memory-barriers.txt
SubmittingPatches
subsystem-apis.rst