All of lore.kernel.org
 help / color / mirror / Atom feed
From: Francisco Iglesias <frasse.iglesias@gmail.com>
To: Tong Ho <tong.ho@amd.com>
Cc: qemu-arm@nongnu.org, qemu-devel@nongnu.org,
	alistair@alistair23.me, edgar.iglesias@gmail.com,
	peter.maydell@linaro.org
Subject: Re: [PATCH v3 2/3] hw/arm: xlnx-versal-virt: Add AMD/Xilinx TRNG device
Date: Wed, 4 Oct 2023 21:11:16 +0200	[thread overview]
Message-ID: <20231004191115.GB20007@fralle-msi> (raw)
In-Reply-To: <20231004142746.350225-3-tong.ho@amd.com>

On [2023 Oct 04] Wed 07:27:45, Tong Ho wrote:
> Connect the support for Versal True Random Number Generator
> (TRNG) device.
> 
> Warning: unlike the TRNG component in a real device from the
> Versal device familiy, the connected TRNG model is not of
> cryptographic grade and is not intended for use cases when
> cryptograpically strong TRNG is needed.
> 
> Signed-off-by: Tong Ho <tong.ho@amd.com>

Reviewed-by: Francisco Iglesias <frasse.iglesias@gmail.com>

> ---
>  hw/arm/Kconfig               |  1 +
>  hw/arm/xlnx-versal.c         | 16 ++++++++++++++++
>  include/hw/arm/xlnx-versal.h |  5 +++++
>  3 files changed, 22 insertions(+)
> 
> diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig
> index 7e68348440..0a3ff6748d 100644
> --- a/hw/arm/Kconfig
> +++ b/hw/arm/Kconfig
> @@ -482,6 +482,7 @@ config XLNX_VERSAL
>      select XLNX_BBRAM
>      select XLNX_EFUSE_VERSAL
>      select XLNX_USB_SUBSYS
> +    select XLNX_VERSAL_TRNG
>  
>  config NPCM7XX
>      bool
> diff --git a/hw/arm/xlnx-versal.c b/hw/arm/xlnx-versal.c
> index fa556d8764..4f74a64a0d 100644
> --- a/hw/arm/xlnx-versal.c
> +++ b/hw/arm/xlnx-versal.c
> @@ -373,6 +373,21 @@ static void versal_create_rtc(Versal *s, qemu_irq *pic)
>                         qdev_get_gpio_in(DEVICE(&s->pmc.apb_irq_orgate), 0));
>  }
>  
> +static void versal_create_trng(Versal *s, qemu_irq *pic)
> +{
> +    SysBusDevice *sbd;
> +    MemoryRegion *mr;
> +
> +    object_initialize_child(OBJECT(s), "trng", &s->pmc.trng,
> +                            TYPE_XLNX_VERSAL_TRNG);
> +    sbd = SYS_BUS_DEVICE(&s->pmc.trng);
> +    sysbus_realize(sbd, &error_fatal);
> +
> +    mr = sysbus_mmio_get_region(sbd, 0);
> +    memory_region_add_subregion(&s->mr_ps, MM_PMC_TRNG, mr);
> +    sysbus_connect_irq(sbd, 0, pic[VERSAL_TRNG_IRQ]);
> +}
> +
>  static void versal_create_xrams(Versal *s, qemu_irq *pic)
>  {
>      int nr_xrams = ARRAY_SIZE(s->lpd.xram.ctrl);
> @@ -909,6 +924,7 @@ static void versal_realize(DeviceState *dev, Error **errp)
>      versal_create_sds(s, pic);
>      versal_create_pmc_apb_irq_orgate(s, pic);
>      versal_create_rtc(s, pic);
> +    versal_create_trng(s, pic);
>      versal_create_xrams(s, pic);
>      versal_create_bbram(s, pic);
>      versal_create_efuse(s, pic);
> diff --git a/include/hw/arm/xlnx-versal.h b/include/hw/arm/xlnx-versal.h
> index 7b419f88c2..54f4b98d9d 100644
> --- a/include/hw/arm/xlnx-versal.h
> +++ b/include/hw/arm/xlnx-versal.h
> @@ -31,6 +31,7 @@
>  #include "hw/dma/xlnx_csu_dma.h"
>  #include "hw/misc/xlnx-versal-crl.h"
>  #include "hw/misc/xlnx-versal-pmc-iou-slcr.h"
> +#include "hw/misc/xlnx-versal-trng.h"
>  #include "hw/net/xlnx-versal-canfd.h"
>  #include "hw/misc/xlnx-versal-cfu.h"
>  #include "hw/misc/xlnx-versal-cframe-reg.h"
> @@ -116,6 +117,7 @@ struct Versal {
>          } iou;
>  
>          XlnxZynqMPRTC rtc;
> +        XlnxVersalTRng trng;
>          XlnxBBRam bbram;
>          XlnxEFuse efuse;
>          XlnxVersalEFuseCtrl efuse_ctrl;
> @@ -160,6 +162,7 @@ struct Versal {
>  #define VERSAL_OSPI_IRQ            124
>  #define VERSAL_SD0_IRQ_0           126
>  #define VERSAL_EFUSE_IRQ           139
> +#define VERSAL_TRNG_IRQ            141
>  #define VERSAL_RTC_ALARM_IRQ       142
>  #define VERSAL_RTC_SECONDS_IRQ     143
>  
> @@ -329,4 +332,6 @@ struct Versal {
>  #define MM_PMC_CRP_SIZE             0x10000
>  #define MM_PMC_RTC                  0xf12a0000
>  #define MM_PMC_RTC_SIZE             0x10000
> +#define MM_PMC_TRNG                 0xf1230000
> +#define MM_PMC_TRNG_SIZE            0x10000
>  #endif
> -- 
> 2.25.1
> 

  reply	other threads:[~2023-10-04 19:11 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-04 14:27 [PATCH v3 0/3] AMD/Xilinx Versal TRNG support Tong Ho
2023-10-04 14:27 ` [PATCH v3 1/3] hw/misc: Introduce AMD/Xilix Versal TRNG device Tong Ho
2023-10-17 14:10   ` Peter Maydell
2023-10-04 14:27 ` [PATCH v3 2/3] hw/arm: xlnx-versal-virt: Add AMD/Xilinx " Tong Ho
2023-10-04 19:11   ` Francisco Iglesias [this message]
2023-10-04 14:27 ` [PATCH v3 3/3] tests/qtest: Introduce tests for AMD/Xilinx Versal " Tong Ho
2023-10-04 19:08   ` Francisco Iglesias
2023-10-17 13:47   ` Peter Maydell

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=20231004191115.GB20007@fralle-msi \
    --to=frasse.iglesias@gmail.com \
    --cc=alistair@alistair23.me \
    --cc=edgar.iglesias@gmail.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=tong.ho@amd.com \
    /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.