u-boot/doc
Tom Rini d5d9770f58 bootX measurements and measurement API moved to u-boot core
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEgWII69YpahbL5iK5gS8AYozs+qIFAmU7j50ACgkQgS8AYozs
 +qIh8w/+O4UjT0sG1NLwmyV7U1Ypk+EyYaE6wmSWzpsJLfH/YvtObBJOYRuXxRVh
 J9lkgCsw8Ct1ZNCrp8iVO+Dz1DtV8+QvTecrUHZqcOhTYDaqxXnlvEH2/EUhgo5T
 9a/ZaDtOP1mKz754C4G6G363+iRCvbcqDECeKg9VYxfWCo1cINOmqyQCqlGxFT+h
 PKiB5VzUpN/K/yiie+Hr42/+6XaykAUjUvEWeyKOsRmYY4lNiK22vG/puE42bFTh
 catXwTE2a7x+yzPKkdhR0UGvDUlIKET2kF6mi+pYN2h/cSUxWTzbP/OxcU9yJOnm
 qJiRZ+Woez1I7ul6ln4ci2kiWc3CTYFXfctwrBJPuJ/EO+2EEb3oHqG2S3Fc9VBZ
 N17flHW7XZHEQbNexlUhk9cRpCwRuSA5OJXwW+IZIuydgNeo3xF0iYvipbjkEGgW
 BBkt8PH+ivTLjEz6Gcmquvo1fHGJLHRIPg7DNb0phGHviuC0zlDJ7N5DZk0CpkiT
 36siV9xK4X6qvWkOTa6Ldw60e4tN9nv3VG30uXtPHi3XdOkKfNkyIuqO/5BkkQPt
 6yEc9IYXYoWNKDVUGme5+xszZp1sSvqltajG9VVNupt958dFyOSgS5aNa6B4UsWX
 3XfndP1/s2bezUHoQx5zjraapKVrqBFLkGeTlCDUD+mEgP440G8=
 =gvDs
 -----END PGP SIGNATURE-----

Merge tag 'tpm-next-27102023' of https://source.denx.de/u-boot/custodians/u-boot-tpm

bootX measurements and measurement API moved to u-boot core:

Up to now, U-Boot could perform measurements and EventLog creation as
described by the TCG spec when booting via EFI.

The EFI code was residing in lib/efi_loader/efi_tcg2.c and contained
both EFI specific code + the API needed to access the TPM, extend PCRs
and create an EventLog. The non-EFI part proved modular enough and
moving it around to the TPM subsystem was straightforward.

With that in place we can have a common API for measuring binaries
regardless of the boot command, EFI or boot(m|i|z), and contructing an
EventLog.

I've tested all of the EFI cases -- booting with an empty EventLog and
booting with a previous stage loader providing one and found no
regressions.  Eddie tested the bootX part.

Eddie also fixed the sandbox TPM which couldn't be used for the EFI code
and it now supports all the required capabilities. This had a slight
sideeffect in our testing since the EFI subsystem initializes the TPM
early and 'tpm2 init' failed during some python tests. That code only
opens the device though, so we can replace it with 'tpm2 autostart'
which doesn't error out and still allows you to perfom the rest of the
tests but doesn't report an error if the device is already opened.

There's a few minor issues with this PR as well but since testing and
verifying the changes takes a considerable amount of time, I prefer
merging it now.

Heinrich has already sent a PR for -master containing "efi_loader: fix
EFI_ENTRY point on get_active_pcr_banks" and I am not sure if that will
cause any conflicts, but in any case they should be trivial to resolve.

Both the EFI and non-EFI code have a Kconfig for measuring the loaded
Device Tree.  The reason this is optional is that we can't reason
when/if devices add random info like kaslr-seed, mac addresses etc in
the DT. In that case measurements are random, board specific and
eventually useless.  The reason it was difficult to fix it prior to this
patchset is because the EFI subsystem and thus measurements was brought
up late and DT fixups might have already been applied. With this
patchset we can measure the DT really early in the future.

Heinrich also pointed out that the two Kconfigs for the DTB measurements
can be squashed in a single one and that the documentation only explains
the non-EFI case.  I agree on both but as I said this is a sane working
version, so let's pull this first it's aleady big enough and painful to
test.
2023-10-27 19:27:29 -04:00
..
android android_ab: Try backup booloader_message 2023-07-17 16:20:08 -04:00
api doc: add events.h to documentation 2023-09-02 06:03:42 +02:00
arch sandbox: Move the bloblist down a little in memory 2023-10-06 14:38:13 -04:00
board rockchip: doc: add rkmtd.rst 2023-10-24 15:55:17 +08:00
build doc: build: update description of build dependencies for Alpine Linux 2023-10-26 00:36:07 +02:00
chromium Rename CONFIG_SYS_TEXT_BASE to CONFIG_TEXT_BASE 2022-10-31 11:01:31 -04:00
develop doc: Replace dm_dump_all() with dm_dump_tree() 2023-10-27 16:01:47 -04:00
device-tree-bindings doc: Add the link for the documentation of the .its 2023-08-09 08:41:52 +02:00
imx mx8m: csf.sh: pad csf blob for u-boot.itb to CSF_SIZE minus IVT header 2023-10-16 08:46:01 +02:00
learn doc: Add a short intro video 2023-10-12 08:32:27 +02:00
media doc: add texinfodocs and infodocs targets 2022-12-29 10:51:50 +01:00
mvebu cmd: mvebu/bubt: Add support for reading image from the SATA disk partition 2023-03-01 06:39:17 +01:00
sphinx sphinx: Bump urllib3 version 2023-10-27 16:01:05 -04:00
sphinx-static doc: Remove duplicated documentation directory 2019-06-20 10:57:08 -04:00
SPI doc: board: ti: Move documentation from README to .rst 2023-09-09 06:12:47 +02:00
SPL global: Use proper project name U-Boot 2023-06-12 13:24:31 +02:00
usage bootX measurements and measurement API moved to u-boot core 2023-10-27 19:27:29 -04:00
.gitignore doc: Add .gitignore for the Sphinx build output directory 2019-07-24 14:15:37 -04:00
bounces patman: add support for omitting bouncing addresses 2017-09-11 21:43:58 -06:00
conf.py doc: sphinx: Add sphinx-prompt 2023-08-27 08:21:08 +02:00
dumpimage.1 doc: Add man page for dumpimage 2022-07-13 20:05:49 +02:00
feature-removal-schedule.txt treewide: mem: Move mtest related defines to Kconfig 2020-05-08 12:02:56 -04:00
git-mailrc git-mailrc: add alias for Eugen Hristev 2023-07-05 11:27:15 -04:00
I2C_Edge_Conditions
index.rst doc: Link to some useful talks 2023-02-10 13:05:39 +01:00
kwboot.1 doc/kwboot.1: Update Armada 38x BootROM bug description 2023-03-24 13:11:47 +01:00
Makefile doc: add texinfodocs and infodocs targets 2022-12-29 10:51:50 +01:00
mkeficapsule.1 mkeficapsule: add FMP Payload Header 2023-06-08 09:20:36 +02:00
mkfwumdata.1 tools: Add mkfwumdata tool for FWU metadata image 2023-06-09 13:52:40 -04:00
mkimage.1 Revert "mkimage: update man page and -h output" 2023-10-11 15:32:39 -04:00
README.arm-caches
README.arm-relocation global: Move remaining CONFIG_SYS_NAND_* to CFG_SYS_NAND_* 2022-12-05 16:05:38 -05:00
README.armada-secureboot Makefile: Rename u-boot-spl.kwb to u-boot-with-spl.kwb 2022-11-07 07:17:55 +01:00
README.asn1 doc: add README for asn1 compiler and decoder 2019-12-06 16:44:20 -05:00
README.atmel_mci global: Move remaining CONFIG_SYS_* to CFG_SYS_* 2022-12-05 16:06:08 -05:00
README.atmel_pmecc ARM: at91: Convert SPL_GENERATE_ATMEL_PMECC_HEADER to Kconfig 2019-01-21 08:36:11 -05:00
README.autoboot autoboot: Rename CONFIG_MENUKEY to CONFIG_AUTOBOOT_MENUKEY 2019-08-02 11:19:14 -04:00
README.bcmns3 doc: add README doc for bcmns3 platform 2020-07-29 10:37:11 -04:00
README.bitbangMII
README.bootcount bootcount: clarify documentation 2022-03-23 07:27:38 +01:00
README.boston boston: Introduce support for the MIPS Boston development board 2016-09-21 16:24:36 +02:00
README.cfi global: Move remaining CONFIG_SYS_* to CFG_SYS_* 2022-12-05 16:06:08 -05:00
README.commands.itest
README.commands.spl WS cleanup: remove SPACE(s) followed by TAB 2021-09-30 09:08:16 -04:00
README.console treewide: convert bd_t to struct bd_info manually 2020-07-17 10:46:44 -04:00
README.davinci global: Finish CONFIG -> CFG migration 2023-01-20 12:27:24 -05:00
README.davinci.nand_spl
README.dfutftp WS cleanup: remove excessive empty lines 2021-09-30 08:08:56 -04:00
README.displaying-bmps
README.dns
README.enetaddr net: Always build the string_to_enetaddr() helper 2019-12-09 09:47:41 -06:00
README.esbc_validate SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
README.ext4 fs: Migrate ext4 to Kconfig 2018-01-22 16:43:30 -05:00
README.fec_mxc global: Finish CONFIG -> CFG migration 2023-01-20 12:27:24 -05:00
README.fsl-ddr global: Migrate CONFIG_EXTRA_ENV_SETTINGS to CFG 2022-12-23 10:09:42 -05:00
README.fsl-esdhc Move eSDHC adapter card identification to board files 2020-07-27 14:16:28 +05:30
README.fsl-hwconfig
README.fsl-trustzone-components armv8: LS2080A: Rename LS2085A to reflect LS2080A 2015-11-30 08:53:04 -08:00
README.fsl_iim Convert CONFIG_FSL_IIM to Kconfig 2022-12-05 16:06:43 -05:00
README.fuse
README.generic-board treewide: convert bd_t to struct bd_info manually 2020-07-17 10:46:44 -04:00
README.generic_usb_ohci global: Move remaining CONFIG_SYS_* to CFG_SYS_* 2022-12-05 16:06:08 -05:00
README.gpio gpio: Get rid of gpio_hog_probe_all() 2023-01-12 14:06:16 -05:00
README.gpt doc: fix references to distro documentation 2023-01-20 16:38:52 +01:00
README.Heterogeneous-SoCs powerpc/mpc85xx: Add DSP side awareness for Freescale Heterogeneous SoCs 2015-03-04 10:15:29 -08:00
README.hwconfig Convert CONFIG_HWCONFIG to Kconfig 2022-12-05 16:07:12 -05:00
README.i2c i2c: Add a mux for GPIO-based I2C bus arbitration 2015-08-05 21:06:10 -06:00
README.iomux SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
README.JFFS2_NAND README: Drop unused JFFS2 options 2016-10-06 20:40:26 -04:00
README.kconfig Revert "Revert "global: Remove CONFIG_SYS_EXTRA_OPTIONS support"" 2022-08-05 11:47:56 -04:00
README.kwbimage global: Migrate CONFIG_BOARDDIR to CFG 2022-12-23 10:07:03 -05:00
README.LED powerpc, 8xx: remove support for 8xx 2017-06-12 08:37:55 -04:00
README.link-local global: Migrate CONFIG_EXTRA_ENV_SETTINGS to CFG 2022-12-23 10:09:42 -05:00
README.malta Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
README.marvell Revert "arm64: dts: a3720: add support for espressobin with populated emmc" 2020-12-07 07:11:37 +01:00
README.mediatek doc: README.mediatek: Add a simple README for MediaTek 2018-11-28 23:04:54 -05:00
README.memory-test
README.mpc83xx.ddrecc
README.mpc83xxads README: Drop CONFIG_MPC8349ADS 2016-10-06 20:40:51 -04:00
README.mpc85xx global: Move remaining CONFIG_SYS_* to CFG_SYS_* 2022-12-05 16:06:08 -05:00
README.mpc85xx-sd-spi-boot README.mpc85xx-sd-spi-boot: Suggest the NXP boot format github repo 2023-03-22 12:51:02 -04:00
README.mpc85xx-spin-table Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
README.mpc85xxcds Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
README.multi-dtb-fit doc: multi-dtb-fit: Remove double underscores 2020-07-17 10:47:19 -04:00
README.mxc_ocotp
README.nand global: Move remaining CONFIG_SYS_* to CFG_SYS_* 2022-12-05 16:06:08 -05:00
README.odroid WS cleanup: remove SPACE(s) followed by TAB 2021-09-30 09:08:16 -04:00
README.OFT
README.omap-ulpi-viewport
README.omap3 global: Move remaining CONFIG_SYS_NAND_* to CFG_SYS_NAND_* 2022-12-05 16:05:38 -05:00
README.pblimage ppc: Remove corenet_ds boards 2022-08-20 21:18:15 -04:00
README.pcap global: Use proper project name U-Boot 2023-06-12 13:24:31 +02:00
README.POST post: Remove unused NEEDS_MANUAL_RELOC code bits 2023-09-14 10:42:25 -04:00
README.power-framework
README.pxe cmd: pxe: support INITRD and FDT selection with FIT 2022-12-12 14:03:12 -05:00
README.ramboot-ppc85xx powerpc: mpc85xx: Convert CONFIG_SYS_CCSRBAR_DEFAULT to Kconfig option 2016-12-02 08:52:34 -08:00
README.rockchip doc: rockchip: Update and improve info on rk3308, TPL and TF-A 2023-10-07 16:49:41 +08:00
README.rockusb usb: rockchip: implement K_FW_LBA_ERASE_10 command 2018-08-08 22:22:07 +02:00
README.s5p4418 global: Use proper project name U-Boot 2023-06-12 13:24:31 +02:00
README.s5pc1xx
README.sata Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
README.sched
README.scrapyard scrapyard: Delete this file and script 2019-09-19 12:54:29 -04:00
README.serial_multi global: Move remaining CONFIG_SYS_* to CFG_SYS_* 2022-12-05 16:06:08 -05:00
README.sha1 Drop references to MAKEALL in the documentation 2016-07-31 19:37:08 -06:00
README.silent Convert CONFIG_SYS_DEVICE_NULLDEV to Kconfig 2020-08-23 13:43:10 -04:00
README.SNTP
README.socfpga global: Remove unused CONFIG defines 2023-01-20 12:27:06 -05:00
README.splashprepare splash: Use splashfile instead of location->name 2019-05-20 11:55:42 +02:00
README.srio-pcie-boot-corenet
README.standalone nds32: Remove the architecture 2022-04-25 16:04:05 -04:00
README.t1040-l2switch drivers: net: vsc9953: Add LAG support 2016-01-28 12:22:19 -06:00
README.tee Documentation: tee uclass and op-tee driver 2018-10-07 10:47:38 -04:00
README.TPL dm: doc: Update documentation for new driver model schema 2023-02-14 09:43:27 -07:00
README.ubi ubi: Add "skipcheck" command to set/clear this bit in the UBI volume hdr 2019-10-16 05:42:36 +02:00
README.ubispl spl: Lightweight UBI and UBI fastmap support 2016-07-22 09:53:00 -04:00
README.ublimage
README.udp net: add a generic udp protocol 2020-09-30 16:55:03 -04:00
README.unaligned-memory-access.txt
README.uniphier doc: fix references to distro documentation 2023-01-20 16:38:52 +01:00
README.update cmd: drop fitupd command 2020-07-16 12:37:01 +02:00
README.usb usb: doc: Fix spelling issues in README.usb 2021-11-15 14:33:33 -05:00
README.vf610
README.video video: Add information about using TrueType fonts 2018-12-28 12:26:58 +01:00
README.VLAN
README.VSC3316-3308
README.watchdog nds32: Remove the architecture 2022-04-25 16:04:05 -04:00
README.zfs

This patch series adds support for ZFS listing and load to u-boot.

To Enable zfs ls and load commands, modify the board specific config file with
#define CONFIG_CMD_ZFS

Steps to test:

1. After applying the patch, zfs specific commands can be seen
   in the boot loader prompt using
	UBOOT #help

	zfsload- load binary file from a ZFS file system
	zfsls  - list files in a directory (default /)

2. To list the files in zfs pool, device or partition, execute
	zfsls <interface> <dev[:part]> [POOL/@/dir/file]
	For example:
	UBOOT #zfsls mmc 0:5 /rpool/@/usr/bin/

3. To read and load a file from an ZFS formatted partition to RAM, execute
	zfsload <interface> <dev[:part]> [addr] [filename] [bytes]
	For example:
	UBOOT #zfsload mmc 2:2 0x30007fc0 /rpool/@/boot/uImage

References :
	-- ZFS GRUB sources from Solaris GRUB-0.97
	-- GRUB Bazaar repository

Jorgen Lundman <lundman at lundman.net> 2012.