All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ilias Apalodimas <ilias.apalodimas@linaro.org>
To: u-boot@lists.denx.de
Subject: [PATCH v3 1/8] dm: rng: Add random number generator(rng) uclass
Date: Fri, 13 Dec 2019 14:21:24 +0200	[thread overview]
Message-ID: <20191213122124.GB28025@apalos.home> (raw)
In-Reply-To: <1576221267-5948-2-git-send-email-sughosh.ganu@linaro.org>

On Fri, Dec 13, 2019 at 12:44:20PM +0530, Sughosh Ganu wrote:
> Add a uclass for reading a random number seed from a random number
> generator device.
> 
> Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
> Reviewed-by: Patrice Chotard <patrice.chotard@st.com>
> ---
>  drivers/Kconfig          |  2 ++
>  drivers/Makefile         |  1 +
>  drivers/rng/Kconfig      |  7 +++++++
>  drivers/rng/Makefile     |  6 ++++++
>  drivers/rng/rng-uclass.c | 23 +++++++++++++++++++++++
>  include/dm/uclass-id.h   |  1 +
>  include/rng.h            | 30 ++++++++++++++++++++++++++++++
>  7 files changed, 70 insertions(+)
>  create mode 100644 drivers/rng/Kconfig
>  create mode 100644 drivers/rng/Makefile
>  create mode 100644 drivers/rng/rng-uclass.c
>  create mode 100644 include/rng.h
> 
> diff --git a/drivers/Kconfig b/drivers/Kconfig
> index 9d99ce0..e34a227 100644
> --- a/drivers/Kconfig
> +++ b/drivers/Kconfig
> @@ -90,6 +90,8 @@ source "drivers/remoteproc/Kconfig"
>  
>  source "drivers/reset/Kconfig"
>  
> +source "drivers/rng/Kconfig"
> +
>  source "drivers/rtc/Kconfig"
>  
>  source "drivers/scsi/Kconfig"
> diff --git a/drivers/Makefile b/drivers/Makefile
> index e977f19..6c619b1 100644
> --- a/drivers/Makefile
> +++ b/drivers/Makefile
> @@ -115,4 +115,5 @@ obj-$(CONFIG_W1_EEPROM) += w1-eeprom/
>  
>  obj-$(CONFIG_MACH_PIC32) += ddr/microchip/
>  obj-$(CONFIG_DM_HWSPINLOCK) += hwspinlock/
> +obj-$(CONFIG_DM_RNG) += rng/
>  endif
> diff --git a/drivers/rng/Kconfig b/drivers/rng/Kconfig
> new file mode 100644
> index 0000000..dd44cc0
> --- /dev/null
> +++ b/drivers/rng/Kconfig
> @@ -0,0 +1,7 @@
> +config DM_RNG
> +	bool "Driver support for Random Number Generator devices"
> +	depends on DM
> +	help
> +	  Enable driver model for random number generator(rng) devices.
> +	  This interface is used to initialise the rng device and to
> +	  read the random seed from the device.
> diff --git a/drivers/rng/Makefile b/drivers/rng/Makefile
> new file mode 100644
> index 0000000..311705b
> --- /dev/null
> +++ b/drivers/rng/Makefile
> @@ -0,0 +1,6 @@
> +# SPDX-License-Identifier: GPL-2.0+
> +#
> +# Copyright (c) 2019, Linaro Limited
> +#
> +
> +obj-$(CONFIG_DM_RNG) += rng-uclass.o
> diff --git a/drivers/rng/rng-uclass.c b/drivers/rng/rng-uclass.c
> new file mode 100644
> index 0000000..b6af3b8
> --- /dev/null
> +++ b/drivers/rng/rng-uclass.c
> @@ -0,0 +1,23 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright (c) 2019, Linaro Limited
> + */
> +
> +#include <common.h>
> +#include <dm.h>
> +#include <rng.h>
> +
> +int dm_rng_read(struct udevice *dev, void *buffer, size_t size)
> +{
> +	const struct dm_rng_ops *ops = device_get_ops(dev);
> +
> +	if (!ops->read)
> +		return -ENOSYS;
> +
> +	return ops->read(dev, buffer, size);
> +}
> +
> +UCLASS_DRIVER(rng) = {
> +	.name = "rng",
> +	.id = UCLASS_RNG,
> +};
> diff --git a/include/dm/uclass-id.h b/include/dm/uclass-id.h
> index 0c563d8..192202d 100644
> --- a/include/dm/uclass-id.h
> +++ b/include/dm/uclass-id.h
> @@ -86,6 +86,7 @@ enum uclass_id {
>  	UCLASS_REGULATOR,	/* Regulator device */
>  	UCLASS_REMOTEPROC,	/* Remote Processor device */
>  	UCLASS_RESET,		/* Reset controller device */
> +	UCLASS_RNG,		/* Random Number Generator */
>  	UCLASS_RTC,		/* Real time clock device */
>  	UCLASS_SCSI,		/* SCSI device */
>  	UCLASS_SERIAL,		/* Serial UART */
> diff --git a/include/rng.h b/include/rng.h
> new file mode 100644
> index 0000000..61d5da9
> --- /dev/null
> +++ b/include/rng.h
> @@ -0,0 +1,30 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright (c) 2019, Linaro Limited
> + */
> +
> +#if !defined _RNG_H_
> +#define _RNG_H_
> +
> +#include <dm.h>
> +
> +/**
> + * dm_rng_read() - read a random number seed from the rng device
> + * @buffer:	input buffer to put the read random seed into
> + * @size:	number of bytes of random seed read
> + *
> + */
> +int dm_rng_read(struct udevice *dev, void *buffer, size_t size);
> +
> +/* struct dm_rng_ops - Operations for the hwrng uclass */
> +struct dm_rng_ops {
> +	/**
> +	 * @read() - read a random number seed
> +	 *
> +	 * @data:	input buffer to read the random seed
> +	 * @max:	total number of bytes to read
> +	 */
> +	int (*read)(struct udevice *dev, void *data, size_t max);
> +};
> +
> +#endif /* _RNG_H_ */
> -- 
> 2.7.4
> 

Tested-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>

  reply	other threads:[~2019-12-13 12:21 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-13  7:14 [PATCH v3 0/8] Add a random number generator uclass Sughosh Ganu
2019-12-13  7:14 ` [PATCH v3 1/8] dm: rng: Add random number generator(rng) uclass Sughosh Ganu
2019-12-13 12:21   ` Ilias Apalodimas [this message]
2019-12-16 11:59   ` Patrick DELAUNAY
2019-12-16 12:13   ` Patrick DELAUNAY
2019-12-16 18:55     ` Sughosh Ganu
2019-12-13  7:14 ` [PATCH v3 2/8] clk: stm32mp1: Add a clock entry for RNG1 device Sughosh Ganu
2019-12-16  8:55   ` Patrick DELAUNAY
2019-12-13  7:14 ` [PATCH v3 3/8] stm32mp1: rng: Add a driver for random number generator(rng) device Sughosh Ganu
2019-12-16 11:58   ` Patrick DELAUNAY
2019-12-13  7:14 ` [PATCH v3 4/8] configs: stm32mp15: Enable " Sughosh Ganu
2019-12-16 12:00   ` Patrick DELAUNAY
2019-12-13  7:14 ` [PATCH v3 5/8] sandbox: rng: Add a random number generator(rng) driver Sughosh Ganu
2019-12-16 12:30   ` Patrick DELAUNAY
2019-12-16 18:59     ` Sughosh Ganu
2019-12-13  7:14 ` [PATCH v3 6/8] configs: sandbox: Enable random number generator(rng) device Sughosh Ganu
2019-12-16 12:07   ` Patrick DELAUNAY
2019-12-13  7:14 ` [PATCH v3 7/8] test: rng: Add basic test for random number generator(rng) uclass Sughosh Ganu
2019-12-16 12:42   ` Patrick DELAUNAY
2019-12-16 19:01     ` Sughosh Ganu
2019-12-13  7:14 ` [PATCH v3 8/8] virtio: rng: Add a random number generator(rng) driver Sughosh Ganu
2019-12-13 12:21   ` Ilias Apalodimas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191213122124.GB28025@apalos.home \
    --to=ilias.apalodimas@linaro.org \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.