Message ID | 20220704133444.1110715-1-sughosh.ganu@linaro.org |
---|---|
Headers | show |
Series | tpm: rng: Move TPM RNG functionality to driver model | expand |
Hi Sughosh, On Mon, 4 Jul 2022 at 07:35, Sughosh Ganu <sughosh.ganu@linaro.org> wrote: > > > The TPM device provides the random number generator(RNG) > functionality, whereby sending a command to the TPM device results in > the TPM device responding with random bytes. > > There was a discussion on the mailing list earlier[1], where it was > explained that platforms with a TPM device can install the > EFI_RNG_PROTOCOL for getting the random bytes instead of populating > the dtb with the kaslr-seed property. That would make it possible to > measure the dtb. > > The TPM uclass driver adds the RNG child device as part of it's > post_probe function. > > Some additional changes have also been made to facilitate the > use of the RNG devices, including extending the 'rng' command to take > the RNG device as one of the command-line parameters. > > This series depends on a patch[2] from Simon Glass for moving the TPM > device version detection functions to the tpm_api.h header as static > inline functions. > > These patches were under discussion earlier, specifically the patch to > add the RNG functionality under the TPM device as a child, either > through manual binding or through the device tree. Ilias had commented > on the discussion last[3]. The discussion can be resumed through this > version. > > I have dropped certain patches which were changing some of the TPM API > functions to return an int instead of the current u32. These patches > have been dropped due to review comments from Simon[4]. This work can > be taken up separately, if desired. > > [1] - https://lore.kernel.org/u-boot/20220103120738.47835-1-ilias.apalodimas@linaro.org/ > [2] - https://lore.kernel.org/u-boot/20220301001125.1554442-2-sjg@chromium.org/T/#u > [3] - https://lists.denx.de/pipermail/u-boot/2022-April/481708.html > [4] - https://lists.denx.de/pipermail/u-boot/2022-March/477883.html > > Simon Glass (1): > tpm: Export the TPM-version functions > > Sughosh Ganu (6): > tpm: rng: Add driver model interface for TPM RNG device > tpm: Add the RNG child device > cmd: rng: Add support for selecting RNG device > cmd: rng: Use a statically allocated array for random bytes > doc: rng: Add documentation for the rng command > test: rng: Add a UT testcase for the rng command > > cmd/Kconfig | 1 + > cmd/rng.c | 42 +++++++++++------ > doc/usage/cmd/rng.rst | 26 +++++++++++ > doc/usage/index.rst | 1 + > drivers/rng/Kconfig | 11 +++++ > drivers/rng/Makefile | 1 + > drivers/rng/tpm_rng.c | 23 ++++++++++ > drivers/tpm/tpm-uclass.c | 37 +++++++++++++-- > include/tpm_api.h | 10 ++++ > lib/Kconfig | 1 + > lib/tpm-v1.c | 13 +++--- > lib/tpm-v2.c | 6 +-- > lib/tpm_api.c | 98 ++++++++++++++++++---------------------- > test/dm/rng.c | 29 ++++++++++++ > 14 files changed, 217 insertions(+), 82 deletions(-) > create mode 100644 doc/usage/cmd/rng.rst > create mode 100644 drivers/rng/tpm_rng.c > > -- > 2.25.1 > > This looks OK to me. Regards, Simon