/linux/drivers/gpu/drm/msm/registers/ |
H A D | rules-fd.xsd | 4 xmlns:rng="http://nouveau.freedesktop.org/" 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" /> 27 <element name="stripe" type="rng:stripeType" /> 28 <element name="reg64" type="rng:registerType" /> 29 <element name="reg32" type="rng:registerType" /> 30 <element name="bitset" type="rng:bitsetType" /> [all …]
|
/linux/drivers/char/hw_random/ |
H A D | Makefile | 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 12 obj-$(CONFIG_HW_RANDOM_ATMEL) += atmel-rng.o 13 obj-$(CONFIG_HW_RANDOM_BA431) += ba431-rng.o 14 obj-$(CONFIG_HW_RANDOM_GEODE) += geode-rng.o 15 obj-$(CONFIG_HW_RANDOM_N2RNG) += n2-rng.o [all …]
|
H A D | cavium-rng-vf.c | 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() 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() 125 time_elapsed = (cur_time - rng->prev_time) * 10; in check_rng_health() 126 time_elapsed += rng->prev_error; in check_rng_health() [all …]
|
H A D | cn10k-rng.c | 69 static unsigned long reset_rng_health_state(struct cn10k_rng *rng) in reset_rng_health_state() argument 78 static int check_rng_health(struct cn10k_rng *rng) in check_rng_health() argument 84 if (!rng->reg_base) in check_rng_health() 87 status = readq(rng->reg_base + RNM_PF_EBG_HEALTH); in check_rng_health() 89 err = reset_rng_health_state(rng); in check_rng_health() 91 dev_err(&rng->pdev->dev, "HWRNG: Health test failed (status=%llx)\n", in check_rng_health() 93 dev_err(&rng->pdev->dev, "HWRNG: error during reset (error=%lx)\n", in check_rng_health() 102 static bool cn10k_read_trng(struct cn10k_rng *rng, u64 *value) in cn10k_read_trng() argument 108 if (rng->extended_trng_regs) { in cn10k_read_trng() 110 *value = readq(rng->reg_base + RNM_PF_TRNG_DAT); in cn10k_read_trng() [all …]
|
H A D | hisi-rng.c | 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() 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() 64 static int hisi_rng_read(struct hwrng *rng, void *buf, size_t max, bool wait) in hisi_rng_read() argument 66 struct hisi_rng *hrng = to_hisi_rng(rng); in hisi_rng_read() 75 struct hisi_rng *rng; in hisi_rng_probe() local 78 rng = devm_kzalloc(&pdev->dev, sizeof(*rng), GFP_KERNEL); in hisi_rng_probe() [all …]
|
H A D | cavium-rng.c | 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() 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() 41 /* Enable the RNG hardware and entropy source */ in cavium_rng_probe() 43 rng->control_status); in cavium_rng_probe() 45 pci_set_drvdata(pdev, rng); in cavium_rng_probe() [all …]
|
H A D | bcm2835-rng.c | 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() 63 static int bcm2835_rng_read(struct hwrng *rng, void *buf, size_t max, in bcm2835_rng_read() argument 66 struct bcm2835_rng_priv *priv = to_rng_priv(rng); in bcm2835_rng_read() 73 hwrng_yield(rng); in bcm2835_rng_read() 86 static int bcm2835_rng_init(struct hwrng *rng) in bcm2835_rng_init() argument 88 struct bcm2835_rng_priv *priv = to_rng_priv(rng); in bcm2835_rng_init() 116 static void bcm2835_rng_cleanup(struct hwrng *rng) in bcm2835_rng_cleanup() argument [all …]
|
H A D | pic32-rng.c | 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() 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() 70 static void pic32_rng_cleanup(struct hwrng *rng) in pic32_rng_cleanup() argument 72 struct pic32_rng *priv = container_of(rng, struct pic32_rng, rng); in pic32_rng_cleanup() 94 priv->rng.name = pdev->name; in pic32_rng_probe() 95 priv->rng.init = pic32_rng_init; in pic32_rng_probe() [all …]
|
H A D | octeon-rng.c | 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() 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() 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() 62 struct octeon_rng *rng; in octeon_rng_probe() local 71 rng = devm_kzalloc(&pdev->dev, sizeof(*rng), GFP_KERNEL); in octeon_rng_probe() 72 if (!rng) in octeon_rng_probe() [all …]
|
H A D | mxc-rnga.c | 3 * RNG driver for Freescale RNGA 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() 77 static int mxc_rnga_data_read(struct hwrng *rng, u32 * data) in mxc_rnga_data_read() argument 81 struct mxc_rng *mxc_rng = container_of(rng, struct mxc_rng, rng); in mxc_rnga_data_read() 100 static int mxc_rnga_init(struct hwrng *rng) in mxc_rnga_init() argument 103 struct mxc_rng *mxc_rng = container_of(rng, struct mxc_rng, rng); in mxc_rnga_init() 123 static void mxc_rnga_cleanup(struct hwrng *rng) in mxc_rnga_cleanup() argument [all …]
|
H A D | iproc-rng200.c | 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() 151 static int iproc_rng200_init(struct hwrng *rng) in iproc_rng200_init() argument 153 struct iproc_rng200_dev *priv = to_rng_priv(rng); in iproc_rng200_init() 160 static void iproc_rng200_cleanup(struct hwrng *rng) in iproc_rng200_cleanup() argument 162 struct iproc_rng200_dev *priv = to_rng_priv(rng); in iproc_rng200_cleanup() [all …]
|
H A D | pasemi-rng.c | 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 69 void __iomem *rng_regs = (void __iomem *)rng->priv; in pasemi_rng_cleanup() 95 pr_info("Registering PA Semi RNG\n"); in rng_probe() [all …]
|
H A D | ingenic-trng.c | 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() 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() 57 static int ingenic_trng_read(struct hwrng *rng, void *buf, size_t max, bool wait) in ingenic_trng_read() argument 59 struct ingenic_trng *trng = container_of(rng, struct ingenic_trng, rng); in ingenic_trng_read() 96 trng->rng.name = pdev->name; in ingenic_trng_probe() 97 trng->rng.init = ingenic_trng_init; in ingenic_trng_probe() 98 trng->rng.cleanup = ingenic_trng_cleanup; in ingenic_trng_probe() [all …]
|
H A D | ba431-rng.c | 42 struct hwrng rng; member 115 static int ba431_trng_read(struct hwrng *rng, void *buf, size_t max, bool wait) in ba431_trng_read() argument 117 struct ba431_trng *ba431 = container_of(rng, struct ba431_trng, rng); in ba431_trng_read() 155 static void ba431_trng_cleanup(struct hwrng *rng) in ba431_trng_cleanup() argument 157 struct ba431_trng *ba431 = container_of(rng, struct ba431_trng, rng); in ba431_trng_cleanup() 163 static int ba431_trng_init(struct hwrng *rng) in ba431_trng_init() argument 165 struct ba431_trng *ba431 = container_of(rng, struct ba431_trng, rng); in ba431_trng_init() 187 ba431->rng.name = pdev->name; in ba431_trng_probe() 188 ba431->rng.init = ba431_trng_init; in ba431_trng_probe() 189 ba431->rng.cleanup = ba431_trng_cleanup; in ba431_trng_probe() [all …]
|
H A D | meson-rng.c | 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() 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() 110 data->rng.name = pdev->name; in meson_rng_probe() 111 data->rng.read = priv->read; in meson_rng_probe() 115 return devm_hwrng_register(dev, &data->rng); in meson_rng_probe() 128 .compatible = "amlogic,meson-rng", [all …]
|
/linux/drivers/crypto/ |
H A D | qcom-rng.c | 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() 90 struct qcom_rng *rng = ctx->rng; in qcom_rng_generate() local 93 ret = clk_prepare_enable(rng->clk); in qcom_rng_generate() 97 mutex_lock(&rng->lock); in qcom_rng_generate() 99 ret = qcom_rng_read(rng, dstn, dlen); in qcom_rng_generate() [all …]
|
/linux/arch/powerpc/platforms/powernv/ |
H A D | rng.c | 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() 86 struct pnv_rng *rng; in pnv_get_random_long() local 89 rng = get_cpu_var(pnv_rng); in pnv_get_random_long() 90 *v = rng_whiten(rng, in_be64(rng->regs)); in pnv_get_random_long() 91 put_cpu_var(rng); in pnv_get_random_long() 93 rng = raw_cpu_read(pnv_rng); in pnv_get_random_long() 94 *v = rng_whiten(rng, __raw_rm_readq(rng->regs_real)); in pnv_get_random_long() [all …]
|
/linux/drivers/crypto/caam/ |
H A D | caamrng.c | 36 /* rng per-device context */ 38 struct hwrng rng; member 78 print_hex_dump_debug("rng job desc@: ", DUMP_PREFIX_ADDRESS, in caam_init_desc() 147 static int caam_read(struct hwrng *rng, void *dst, size_t max, bool wait) in caam_read() argument 149 struct caam_rng_ctx *ctx = to_caam_rng_ctx(rng); in caam_read() 166 static void caam_cleanup(struct hwrng *rng) in caam_cleanup() argument 168 struct caam_rng_ctx *ctx = to_caam_rng_ctx(rng); in caam_cleanup() 176 static inline void test_len(struct hwrng *rng, size_t len, bool wait) in test_len() argument 180 struct caam_rng_ctx *ctx = to_caam_rng_ctx(rng); in test_len() 186 read_len = rng->read(rng, buf, len, wait); in test_len() [all …]
|
/linux/Documentation/devicetree/bindings/rng/ |
H A D | mtk-rng.yaml | 4 $id: http://devicetree.org/schemas/rng/mtk-rng.yaml# 14 pattern: "^rng@[0-9a-f]+$" 19 - mediatek,mt7623-rng 22 - mediatek,mt7622-rng 23 - mediatek,mt7629-rng 24 - mediatek,mt7986-rng 25 - mediatek,mt8365-rng 26 - mediatek,mt8516-rng 27 - const: mediatek,mt7623-rng 37 - const: rng [all …]
|
H A D | brcm,bcm2835.yaml | 4 $id: http://devicetree.org/schemas/rng/brcm,bcm2835.yaml# 17 - brcm,bcm2835-rng 18 - brcm,bcm-nsp-rng 19 - brcm,bcm5301x-rng 20 - brcm,bcm6368-rng 48 - brcm,bcm6368-rng 60 rng@7e104000 { 61 compatible = "brcm,bcm2835-rng"; 67 rng@18033000 { 68 compatible = "brcm,bcm-nsp-rng"; [all …]
|
H A D | sparc_sun_oracle_rng.txt | 6 RNG versions: 7 - 'SUNW,n2-rng' for Niagara 2 Platform (SUN UltraSPARC T2 CPU) 8 - 'SUNW,vf-rng' for Victoria Falls Platform (SUN UltraSPARC T2 Plus CPU) 9 …- 'SUNW,kt-rng' for Rainbow/Yosemite Falls Platform (SUN SPARC T3/T4), (UltraSPARC KT/Niagara 3 - … 11 - 'ORCL,m4-rng' for SPARC T5/M5 12 - 'ORCL,m7-rng' for SPARC T7/M7 18 rng-#units: 00000002 19 compatible: 'ORCL,m4-rng' 25 rng-#units: 00000003 26 compatible: 'ORCL,m7-rng'
|
/linux/drivers/crypto/amcc/ |
H A D | crypto4xx_trng.c | 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() 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() 65 { .compatible = "ppc4xx-rng", }, 66 { .compatible = "amcc,ppc460ex-rng", }, 67 { .compatible = "amcc,ppc440epx-rng", }, 75 struct hwrng *rng = NULL; in ppc4xx_trng_probe() local 90 rng = kzalloc(sizeof(*rng), GFP_KERNEL); in ppc4xx_trng_probe() [all …]
|
/linux/include/linux/ |
H A D | hw_random.h | 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); 42 int (*data_present)(struct hwrng *rng, int wait); 43 int (*data_read)(struct hwrng *rng, u32 *data); 44 int (*read)(struct hwrng *rng, void *data, size_t max, bool wait); [all …]
|
/linux/crypto/ |
H A D | jitterentropy-kcapi.c | 47 #include <crypto/internal/rng.h> 83 * implement a high-resolution time stamp, the RNG code's runtime test 202 struct jitterentropy *rng = crypto_tfm_ctx(tfm); in jent_kcapi_cleanup() local 204 spin_lock(&rng->jent_lock); in jent_kcapi_cleanup() 206 if (rng->sdesc) { in jent_kcapi_cleanup() 207 shash_desc_zero(rng->sdesc); in jent_kcapi_cleanup() 208 kfree(rng->sdesc); in jent_kcapi_cleanup() 210 rng->sdesc = NULL; in jent_kcapi_cleanup() 212 if (rng->tfm) in jent_kcapi_cleanup() 213 crypto_free_shash(rng->tfm); in jent_kcapi_cleanup() [all …]
|
/linux/Documentation/admin-guide/ |
H A D | hw_random.rst | 10 a Random Number Generator (RNG). The software has two parts: 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 37 The rng-tools package uses such tests in "rngd", and lets you 47 RNG available, you may change the one used by writing a name from 53 Hardware driver for Intel/AMD/VIA Random Number Generators (RNG) 58 About the Intel RNG hardware, from the firmware hub datasheet 61 The Firmware Hub integrates a Random Number Generator (RNG) 64 bits the RNG circuitry will enter a low power state. Intel will [all …]
|