e67ffb5aa5
The TPM device has a builtin random number generator(RNG) functionality. Expose the RNG functions of the TPM device to the driver model so that they can be used by the EFI_RNG_PROTOCOL if the protocol is installed. Also change the function arguments and return type of the random number functions to comply with the driver model api. Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org> Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
24 lines
459 B
C
24 lines
459 B
C
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
/*
|
|
* Copyright (c) 2022, Linaro Limited
|
|
*/
|
|
|
|
#include <dm.h>
|
|
#include <rng.h>
|
|
#include <tpm_api.h>
|
|
|
|
static int rng_tpm_random_read(struct udevice *dev, void *data, size_t count)
|
|
{
|
|
return tpm_get_random(dev_get_parent(dev), data, count);
|
|
}
|
|
|
|
static const struct dm_rng_ops tpm_rng_ops = {
|
|
.read = rng_tpm_random_read,
|
|
};
|
|
|
|
U_BOOT_DRIVER(tpm_rng) = {
|
|
.name = "tpm-rng",
|
|
.id = UCLASS_RNG,
|
|
.ops = &tpm_rng_ops,
|
|
};
|