qemu-e2k/hw/misc
Krzysztof Kozlowski 499ca13792 hw/misc: Add Exynos4210 Pseudo Random Number Generator
Add emulation for Exynos4210 Pseudo Random Number Generator which could
work on fixed seeds or with seeds provided by True Random Number
Generator block inside the SoC.

Implement only the fixed seeds part of it in polling mode (no
interrupts).

Emulation tested with two independent Linux kernel exynos-rng drivers:
1. New kcapi-rng interface (targeting Linux v4.12),
2. Old hwrng inteface
   # echo "exynos" > /sys/class/misc/hw_random/rng_current
   # dd if=/dev/hwrng of=/dev/null bs=1 count=16

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Message-id: 20170425180609.11004-1-krzk@kernel.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
[PMM: wrapped a few overlong lines; more efficient implementation
 of exynos4210_rng_seed_ready()]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2017-07-11 11:21:26 +01:00
..
macio shutdown: Add source information to SHUTDOWN and RESET 2017-05-23 13:28:17 +02:00
Makefile.objs hw/misc: Add Exynos4210 Pseudo Random Number Generator 2017-07-11 11:21:26 +01:00
a9scu.c arm: Clean up includes 2016-01-29 15:07:23 +00:00
applesmc.c applesmc: fix port i/o access width 2017-06-23 13:35:01 +02:00
arm11scu.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
arm_integrator_debug.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
arm_l2x0.c hw/misc: QOM'ify arm_l2x0.c 2016-06-14 15:59:14 +01:00
arm_sysctl.c shutdown: Add source information to SHUTDOWN and RESET 2017-05-23 13:28:17 +02:00
aspeed_scu.c aspeed/scu: fix SCU region size 2016-12-27 14:59:28 +00:00
aspeed_sdmc.c aspeed: add the definitions for the AST2400 A1 SoC 2016-12-27 14:59:28 +00:00
auxbus.c auxbus: use get_uint() for "addr" property 2017-06-20 14:31:33 +02:00
bcm2835_mbox.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
bcm2835_property.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
bcm2835_rng.c bcm2835_rng: Use qcrypto_random_bytes() rather than rand() 2017-02-28 12:08:14 +00:00
cbus.c shutdown: Add source information to SHUTDOWN and RESET 2017-05-23 13:28:17 +02:00
debugexit.c x86: Clean up includes 2016-01-29 15:07:22 +00:00
eccmemctl.c hw/misc: QOM'ify eccmemctl.c 2017-06-02 05:54:43 +01:00
edu.c edu: fix memory leak on msi_broken platforms 2017-06-07 18:22:02 +02:00
exynos4210_clk.c hw/arm/exynos: Fix Linux kernel division by zero for PLLs 2017-02-28 12:08:20 +00:00
exynos4210_pmu.c hw/misc/exynos4210_pmu: Add support for system poweroff 2017-06-13 14:56:58 +01:00
exynos4210_rng.c hw/misc: Add Exynos4210 Pseudo Random Number Generator 2017-07-11 11:21:26 +01:00
hyperv_testdev.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
imx6_ccm.c imx: Use 'const char', not 'char const' 2016-09-22 18:13:09 +01:00
imx6_src.c hw/misc/imx6_src: Don't crash trying to reset missing CPUs 2017-03-14 16:13:22 +00:00
imx25_ccm.c imx: Use 'const char', not 'char const' 2016-09-22 18:13:09 +01:00
imx31_ccm.c imx: Use 'const char', not 'char const' 2016-09-22 18:13:09 +01:00
imx_ccm.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
ivshmem.c ivshmem: use ram_from_fd() 2017-06-15 11:04:05 +02:00
max111x.c vmstate: error hint for failed equal checks 2017-06-28 11:18:44 +02:00
milkymist-hpdmc.c milkymist: update specification URLs 2016-06-20 18:12:04 +02:00
milkymist-pfpu.c char: rename CharDriverState Chardev 2017-01-27 18:07:59 +01:00
mips_cmgcr.c hw/mips_cmgcr: allow GCR base to be moved 2017-02-21 22:24:58 +00:00
mips_cpc.c hw/mips_cpc: make VP correctly start from the reset vector 2016-07-12 09:10:15 +01:00
mips_itu.c cpu: move exec-all.h inclusion out of cpu.h 2016-05-19 16:42:29 +02:00
mmio_interface.c introduce mmio_interface 2017-06-27 15:09:15 +02:00
mst_fpga.c hw/misc: QOM'ify mst_fpga.c 2016-06-14 15:59:14 +01:00
omap_clk.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
omap_gpmc.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
omap_l4.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
omap_sdrc.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
omap_tap.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
pc-testdev.c os-posix: include sys/mman.h 2016-06-16 18:39:03 +02:00
pci-testdev.c dma: do not depend on kvm_enabled() 2016-05-19 16:42:28 +02:00
puv3_pm.c unicore: Clean up includes 2016-01-29 15:07:22 +00:00
pvpanic.c pvpanic: use get_uint() for "ioport" property 2017-06-20 14:31:33 +02:00
sga.c x86: Clean up includes 2016-01-29 15:07:22 +00:00
slavio_misc.c hw/misc: QOM'ify slavio_misc.c 2017-06-02 05:54:43 +01:00
stm32f2xx_syscfg.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
tmp105.c i2c: Allow I2C devices to NAK start events 2017-01-09 11:40:20 +00:00
tmp105.h hw: move private headers to hw/ subdirectories. 2013-04-08 18:13:16 +02:00
tmp421.c hw/misc: add a TMP42{1, 2, 3} device model 2017-06-13 14:56:59 +01:00
trace-events trace-events: fix first line comment in trace-events 2016-08-12 10:36:01 +01:00
unimp.c unimplemented-device: Remove user_creatable flag 2017-05-17 10:37:01 -03:00
vmport.c qdev: Replace cannot_instantiate_with_device_add_yet with !user_creatable 2017-05-17 10:37:00 -03:00
zynq-xadc.c hw: explicitly include qemu/log.h 2016-05-19 16:42:29 +02:00
zynq_slcr.c shutdown: Add source information to SHUTDOWN and RESET 2017-05-23 13:28:17 +02:00