Home
last modified time | relevance | path

Searched +full:rng +full:- (Results 1 – 25 of 298) sorted by relevance

12345678910>>...12

/linux/drivers/gpu/drm/msm/registers/
H A Drules-fd.xsd1 <?xml version="1.0" encoding="UTF-8"?>
4 xmlns:rng="http://nouveau.freedesktop.org/"
13 For specifications, see the file rules-ng-format.txt
14 in Nouveau CVS module 'rules-ng'.
20 <!-- Elements -->
22 <element name="database" type="rng:databaseType" />
23 <element name="import" type="rng:importType" />
24 <element name="copyright" type="rng:copyrightType" />
25 <element name="domain" type="rng:domainType" />
26 <element name="array" type="rng:arrayType" />
[all …]
/linux/drivers/char/hw_random/
H A DMakefile1 # SPDX-License-Identifier: GPL-2.0
3 # Makefile for HW Random Number Generator (RNG) device drivers.
6 obj-$(CONFIG_HW_RANDOM) += rng-core.o
7 rng-core-y := core.o
8 obj-$(CONFIG_HW_RANDOM_TIMERIOMEM) += timeriomem-rng.o
9 obj-$(CONFIG_HW_RANDOM_INTEL) += intel-rng.o
10 obj-$(CONFIG_HW_RANDOM_AMD) += amd-rng.o
11 obj-$(CONFIG_HW_RANDOM_AIROHA) += airoha-trng.o
12 obj-$(CONFIG_HW_RANDOM_ATMEL) += atmel-rng.o
13 obj-$(CONFIG_HW_RANDOM_BA431) += ba431-rng.o
[all …]
H A Dcavium-rng-vf.c1 // SPDX-License-Identifier: GPL-2.0
82 static int check_rng_health(struct cavium_rng *rng) in check_rng_health() argument
90 if (!rng->pf_regbase) in check_rng_health()
93 status = readq(rng->pf_regbase + HEALTH_STATUS_REG); in check_rng_health()
95 dev_err(&rng->pdev->dev, "HWRNG: Startup health test failed\n"); in check_rng_health()
96 return -EIO; in check_rng_health()
110 cur_err = (cycles * 1000000000) / rng->clock_rate; /* In nanosec */ in check_rng_health()
116 rng->prev_error = 0; in check_rng_health()
117 rng->prev_time = 0; in check_rng_health()
121 if (rng->prev_error) { in check_rng_health()
[all …]
H A Dhisi-rng.c1 // SPDX-License-Identifier: GPL-2.0-only
23 #define to_hisi_rng(p) container_of(p, struct hisi_rng, rng)
31 struct hwrng rng; member
34 static int hisi_rng_init(struct hwrng *rng) in hisi_rng_init() argument
36 struct hisi_rng *hrng = to_hisi_rng(rng); in hisi_rng_init()
43 writel_relaxed(seed, hrng->base + RNG_SEED); in hisi_rng_init()
53 writel_relaxed(val, hrng->base + RNG_CTRL); in hisi_rng_init()
57 static void hisi_rng_cleanup(struct hwrng *rng) in hisi_rng_cleanup() argument
59 struct hisi_rng *hrng = to_hisi_rng(rng); in hisi_rng_cleanup()
61 writel_relaxed(0, hrng->base + RNG_CTRL); in hisi_rng_cleanup()
[all …]
H A Dcavium-rng.c1 // SPDX-License-Identifier: GPL-2.0
22 /* Enable the RNG hardware and activate the VF */
26 struct cavium_rng_pf *rng; in cavium_rng_probe() local
29 rng = devm_kzalloc(&pdev->dev, sizeof(*rng), GFP_KERNEL); in cavium_rng_probe()
30 if (!rng) in cavium_rng_probe()
31 return -ENOMEM; in cavium_rng_probe()
33 /*Map the RNG control */ in cavium_rng_probe()
34 rng->control_status = pcim_iomap(pdev, 0, 0); in cavium_rng_probe()
35 if (!rng->control_status) { in cavium_rng_probe()
36 dev_err(&pdev->dev, in cavium_rng_probe()
[all …]
H A Dbcm2835-rng.c1 // SPDX-License-Identifier: GPL-2.0
3 * Copyright (c) 2010-2012 Broadcom. All rights reserved.
22 /* enable rng */
31 struct hwrng rng; member
38 static inline struct bcm2835_rng_priv *to_rng_priv(struct hwrng *rng) in to_rng_priv() argument
40 return container_of(rng, struct bcm2835_rng_priv, rng); in to_rng_priv()
46 * peripheral registers for CPU-native byte order. in rng_readl()
49 return __raw_readl(priv->base + offset); in rng_readl()
51 return readl(priv->base + offset); in rng_readl()
58 __raw_writel(val, priv->base + offset); in rng_writel()
[all …]
H A Dpic32-rng.c1 // SPDX-License-Identifier: GPL-2.0-only
3 * PIC32 RNG driver
30 struct hwrng rng; member
40 static int pic32_rng_init(struct hwrng *rng) in pic32_rng_init() argument
42 struct pic32_rng *priv = container_of(rng, struct pic32_rng, rng); in pic32_rng_init()
45 writel(TRNGEN | TRNGMOD, priv->base + RNGCON); in pic32_rng_init()
49 static int pic32_rng_read(struct hwrng *rng, void *buf, size_t max, in pic32_rng_read() argument
52 struct pic32_rng *priv = container_of(rng, struct pic32_rng, rng); in pic32_rng_read()
58 t = readl(priv->base + RNGRCNT) & RCNT_MASK; in pic32_rng_read()
61 *data = ((u64)readl(priv->base + RNGSEED2) << 32) + in pic32_rng_read()
[all …]
H A Docteon-rng.c20 #include <asm/octeon/cvmx-rnm-defs.h>
28 static int octeon_rng_init(struct hwrng *rng) in octeon_rng_init() argument
31 struct octeon_rng *p = container_of(rng, struct octeon_rng, ops); in octeon_rng_init()
35 ctl.s.rng_en = 1; /* Enable the RNG hardware. */ in octeon_rng_init()
36 cvmx_write_csr((unsigned long)p->control_status, ctl.u64); in octeon_rng_init()
40 static void octeon_rng_cleanup(struct hwrng *rng) in octeon_rng_cleanup() argument
43 struct octeon_rng *p = container_of(rng, struct octeon_rng, ops); in octeon_rng_cleanup()
47 cvmx_write_csr((unsigned long)p->control_status, ctl.u64); in octeon_rng_cleanup()
50 static int octeon_rng_data_read(struct hwrng *rng, u32 *data) in octeon_rng_data_read() argument
52 struct octeon_rng *p = container_of(rng, struct octeon_rng, ops); in octeon_rng_data_read()
[all …]
H A Dmxc-rnga.c1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * RNG driver for Freescale RNGA
5 * Copyright 2008-2009 Freescale Semiconductor, Inc. All Rights Reserved.
11 * This driver is based on other RNG drivers.
56 struct hwrng rng; member
61 static int mxc_rnga_data_present(struct hwrng *rng, int wait) in mxc_rnga_data_present() argument
64 struct mxc_rng *mxc_rng = container_of(rng, struct mxc_rng, rng); in mxc_rnga_data_present()
67 /* how many random numbers are in FIFO? [0-16] */ in mxc_rnga_data_present()
68 int level = (__raw_readl(mxc_rng->mem + RNGA_STATUS) & in mxc_rnga_data_present()
77 static int mxc_rnga_data_read(struct hwrng *rng, u32 * data) in mxc_rnga_data_read() argument
[all …]
H A Diproc-rng200.c1 // SPDX-License-Identifier: GPL-2.0-only
42 struct hwrng rng; member
46 #define to_rng_priv(rng) container_of(rng, struct iproc_rng200_dev, rng) argument
70 /* Reset RNG and RBG */ in iproc_rng200_restart()
90 static int iproc_rng200_read(struct hwrng *rng, void *buf, size_t max, in iproc_rng200_read() argument
93 struct iproc_rng200_dev *priv = to_rng_priv(rng); in iproc_rng200_read()
105 /* Is RNG sane? If not, reset it. */ in iproc_rng200_read()
106 status = ioread32(priv->base + RNG_INT_STATUS_OFFSET); in iproc_rng200_read()
111 return max - num_remaining; in iproc_rng200_read()
113 iproc_rng200_restart(priv->base); in iproc_rng200_read()
[all …]
H A Dpasemi-rng.c1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright (C) 2006-2007 PA Semi, Inc
7 * Driver for the PWRficient onchip rng
33 static int pasemi_rng_data_present(struct hwrng *rng, int wait) in pasemi_rng_data_present() argument
35 void __iomem *rng_regs = (void __iomem *)rng->priv; in pasemi_rng_data_present()
48 static int pasemi_rng_data_read(struct hwrng *rng, u32 *data) in pasemi_rng_data_read() argument
50 void __iomem *rng_regs = (void __iomem *)rng->priv; in pasemi_rng_data_read()
55 static int pasemi_rng_init(struct hwrng *rng) in pasemi_rng_init() argument
57 void __iomem *rng_regs = (void __iomem *)rng->priv; in pasemi_rng_init()
67 static void pasemi_rng_cleanup(struct hwrng *rng) in pasemi_rng_cleanup() argument
[all …]
H A Dingenic-trng.c1 // SPDX-License-Identifier: GPL-2.0
32 struct hwrng rng; member
35 static int ingenic_trng_init(struct hwrng *rng) in ingenic_trng_init() argument
37 struct ingenic_trng *trng = container_of(rng, struct ingenic_trng, rng); in ingenic_trng_init()
40 ctrl = readl(trng->base + TRNG_REG_CFG_OFFSET); in ingenic_trng_init()
42 writel(ctrl, trng->base + TRNG_REG_CFG_OFFSET); in ingenic_trng_init()
47 static void ingenic_trng_cleanup(struct hwrng *rng) in ingenic_trng_cleanup() argument
49 struct ingenic_trng *trng = container_of(rng, struct ingenic_trng, rng); in ingenic_trng_cleanup()
52 ctrl = readl(trng->base + TRNG_REG_CFG_OFFSET); in ingenic_trng_cleanup()
54 writel(ctrl, trng->base + TRNG_REG_CFG_OFFSET); in ingenic_trng_cleanup()
[all …]
H A Dba431-rng.c1 // SPDX-License-Identifier: GPL-2.0
42 struct hwrng rng; member
49 return ioread32(ba431->base + reg); in ba431_trng_read_reg()
55 iowrite32(val, ba431->base + reg); in ba431_trng_write_reg()
89 dev_err(ba431->dev, "reset failed (state: %d)\n", in ba431_trng_reset()
91 return -ETIMEDOUT; in ba431_trng_reset()
94 dev_info(ba431->dev, "reset done\n"); in ba431_trng_reset()
104 atomic_set(&ba431->reset_pending, 0); in ba431_trng_reset_work()
109 if (atomic_cmpxchg(&ba431->reset_pending, 0, 1)) in ba431_trng_schedule_reset()
112 schedule_work(&ba431->reset_work); in ba431_trng_schedule_reset()
[all …]
H A Dmeson-rng.c1 // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
26 int (*read)(struct hwrng *rng, void *buf, size_t max, bool wait);
31 struct hwrng rng; member
35 static int meson_rng_read(struct hwrng *rng, void *buf, size_t max, bool wait) in meson_rng_read() argument
38 container_of(rng, struct meson_rng_data, rng); in meson_rng_read()
40 *(u32 *)buf = readl_relaxed(data->base + RNG_DATA); in meson_rng_read()
54 return -EBUSY; in meson_rng_wait_status()
59 static int meson_s4_rng_read(struct hwrng *rng, void *buf, size_t max, bool wait) in meson_s4_rng_read() argument
62 container_of(rng, struct meson_rng_data, rng); in meson_s4_rng_read()
64 void __iomem *cfg_addr = data->base + RNG_S4_CFG; in meson_s4_rng_read()
[all …]
H A Dvia-rng.c2 * RNG driver for VIA RNGs
8 * Hardware driver for the Intel/AMD/VIA Random Number Generators (RNG)
13 * Hardware driver for the AMD 768 Random Number Generator (RNG)
18 * Hardware driver for Intel i810 Random Number Generator (RNG)
71 * instead of the current u8-at-a-time.
87 static int via_rng_data_present(struct hwrng *rng, int wait) in via_rng_data_present() argument
89 char buf[16 + PADLOCK_ALIGNMENT - STACK_ALIGN] __attribute__ in via_rng_data_present()
95 /* We choose the recommended 1-byte-per-instruction RNG rate, in via_rng_data_present()
97 * values 2, 4, or 8 bytes-per-instruction yield greater in via_rng_data_present()
101 * change the ->n_bytes values in rng_vendor_ops[] tables. in via_rng_data_present()
[all …]
H A Damd-rng.c2 * RNG driver for AMD RNGs
8 * Hardware driver for the Intel/AMD/VIA Random Number Generators (RNG)
13 * Hardware driver for the AMD 768 Random Number Generator (RNG)
18 * Hardware driver for Intel i810 Random Number Generator (RNG)
34 #define DRV_NAME "AMD768-HWRNG"
62 static int amd_rng_read(struct hwrng *rng, void *buf, size_t max, bool wait) in amd_rng_read() argument
65 struct amd768_priv *priv = (struct amd768_priv *)rng->priv; in amd_rng_read()
71 * RNG data is available when RNGDONE is set to 1 in amd_rng_read()
76 if (ioread32(priv->iobase + RNGDONE) == 0) { in amd_rng_read()
80 if (timeout-- == 0) in amd_rng_read()
[all …]
/linux/drivers/crypto/
H A Dqcom-rng.c1 // SPDX-License-Identifier: GPL-2.0
2 // Copyright (c) 2017-18 Linaro Limited
4 // Based on msm-rng.c and downstream driver
6 #include <crypto/internal/rng.h>
43 struct qcom_rng *rng; member
53 static int qcom_rng_read(struct qcom_rng *rng, u8 *data, unsigned int max) in qcom_rng_read() argument
61 ret = readl_poll_timeout(rng->base + PRNG_STATUS, val, in qcom_rng_read()
67 val = readl_relaxed(rng->base + PRNG_DATA_OUT); in qcom_rng_read()
69 return -EINVAL; in qcom_rng_read()
71 if ((max - currsize) >= WORD_SZ) { in qcom_rng_read()
[all …]
/linux/arch/powerpc/platforms/powernv/
H A Drng.c1 // SPDX-License-Identifier: GPL-2.0-or-later
6 #define pr_fmt(fmt) "powernv-rng: " fmt
32 static unsigned long rng_whiten(struct pnv_rng *rng, unsigned long val) in rng_whiten() argument
44 val ^= rng->mask; in rng_whiten()
47 rng->mask = (rng->mask << 1) | (parity & 1); in rng_whiten()
56 /* Using DARN with L=1 - 64-bit conditioned random number */ in pnv_get_random_darn()
73 return -ENODEV; in initialise_darn()
81 return -EIO; in initialise_darn()
86 struct pnv_rng *rng; in pnv_get_random_long() local
89 rng = get_cpu_var(pnv_rng); in pnv_get_random_long()
[all …]
/linux/drivers/crypto/caam/
H A Dcaamrng.c1 // SPDX-License-Identifier: GPL-2.0+
3 * caam - Freescale FSL CAAM support for hw_random
6 * Copyright 2018-2019, 2023 NXP
15 #include <linux/dma-mapping.h>
36 /* rng per-device context */
38 struct hwrng rng; member
54 return (struct caam_rng_ctx *)r->priv; in to_caam_rng_ctx()
63 *jctx->err = caam_jr_strstatus(jrdev, err); in caam_rng_done()
65 complete(jctx->done); in caam_rng_done()
78 print_hex_dump_debug("rng job desc@: ", DUMP_PREFIX_ADDRESS, in caam_init_desc()
[all …]
/linux/Documentation/devicetree/bindings/rng/
H A Dmtk-rng.yaml1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
3 ---
4 $id: http://devicetree.org/schemas/rng/mtk-rng.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
10 - Sean Wang <sean.wang@mediatek.com>
14 pattern: "^rng@[0-9a-f]+$"
18 - enum:
19 - mediatek,mt7623-rng
20 - items:
21 - enum:
[all …]
H A Dbrcm,bcm2835.yaml1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
3 ---
4 $id: http://devicetree.org/schemas/rng/brcm,bcm2835.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
10 - Stefan Wahren <stefan.wahren@i2se.com>
11 - Florian Fainelli <f.fainelli@gmail.com>
12 - Herbert Xu <herbert@gondor.apana.org.au>
17 - brcm,bcm2835-rng
18 - brcm,bcm-nsp-rng
19 - brcm,bcm5301x-rng
[all …]
H A Dingenic,rng.yaml1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
3 ---
4 $id: http://devicetree.org/schemas/rng/ingenic,rng.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: RNG in Ingenic SoCs
10 - 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com>
18 - ingenic,jz4780-rng
19 - ingenic,x1000-rng
25 - compatible
26 - reg
[all …]
/linux/include/linux/
H A Dhw_random.h4 Please read Documentation/admin-guide/hw_random.rst for details on use.
6 ----------------------------------------------------------
20 * struct hwrng - Hardware Random Number Generator driver
21 * @name: Unique RNG name.
25 * on the RNG. If NULL, it is assumed that
27 * @data_read: Read data from the RNG device.
33 * @priv: Private data, for use by the RNG driver.
34 * @quality: Estimation of true entropy in RNG's bitstream
40 int (*init)(struct hwrng *rng);
41 void (*cleanup)(struct hwrng *rng);
[all …]
/linux/drivers/crypto/amcc/
H A Dcrypto4xx_trng.c1 // SPDX-License-Identifier: GPL-2.0-only
3 * Generic PowerPC 44x RNG driver
28 static int ppc4xx_trng_data_present(struct hwrng *rng, int wait) in ppc4xx_trng_data_present() argument
30 struct crypto4xx_device *dev = (void *)rng->priv; in ppc4xx_trng_data_present()
34 busy = (in_le32(dev->trng_base + PPC4XX_TRNG_STAT) & in ppc4xx_trng_data_present()
45 static int ppc4xx_trng_data_read(struct hwrng *rng, u32 *data) in ppc4xx_trng_data_read() argument
47 struct crypto4xx_device *dev = (void *)rng->priv; in ppc4xx_trng_data_read()
48 *data = in_le32(dev->trng_base + PPC4XX_TRNG_DATA); in ppc4xx_trng_data_read()
56 device_ctrl = readl(dev->ce_base + CRYPTO4XX_DEVICE_CTRL); in ppc4xx_trng_enable()
61 writel(device_ctrl, dev->ce_base + CRYPTO4XX_DEVICE_CTRL); in ppc4xx_trng_enable()
[all …]
/linux/Documentation/admin-guide/
H A Dhw_random.rst10 a Random Number Generator (RNG). The software has two parts:
12 sysfs support, plus a hardware-specific driver that plugs
17 latest version of the "rng-tools" package from:
19 https://github.com/nhorman/rng-tools
30 the hardware RNG device. This data is NOT CHECKED by any
33 output if the hardware "has-data" flag is set, but nevertheless
34 a security-conscious person would run fitness tests on the
37 The rng-tools package uses such tests in "rngd", and lets you
44 "rng_available" attribute lists the hardware-specific drivers
47 RNG available, you may change the one used by writing a name from
[all …]

12345678910>>...12