qemu/hw/arm
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
..
allwinner-a10.c arm: remove remaining cannot_destroy_with_object_finalize_yet 2017-04-20 17:51:32 +02:00
armv7m.c armv7m: Make bitband device take the address space to access 2017-02-28 16:18:49 +00:00
aspeed_soc.c aspeed: add a FTGMAC100 nic 2017-04-25 19:17:25 +08:00
aspeed.c aspeed: use {set, get}_uint() for "ram-size" property 2017-06-20 14:31:32 +02:00
bcm2835_peripherals.c bcm2835_fb: use {get, set}_uint() for "vcram-size" and "vcram-base" 2017-06-20 14:31:32 +02:00
bcm2836.c arm: remove remaining cannot_destroy_with_object_finalize_yet 2017-04-20 17:51:32 +02:00
boot.c hw/arm/boot: take Linux/arm64 TEXT_OFFSET header field into account 2017-04-20 17:39:17 +01:00
collie.c explicitly include qom/cpu.h 2016-05-19 16:42:27 +02:00
cubieboard.c hw/arm/cubieboard hw/arm/xlnx-ep108: Fix units_per_default_bus 2017-02-21 13:10:53 +01:00
digic_boards.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
digic.c arm: remove remaining cannot_destroy_with_object_finalize_yet 2017-04-20 17:51:32 +02:00
exynos4_boards.c hw/arm/exynos: Move DRAM initialization next boards 2017-06-13 14:56:57 +01:00
exynos4210.c hw/misc: Add Exynos4210 Pseudo Random Number Generator 2017-07-11 11:21:26 +01:00
fsl-imx6.c chardev: move headers to include/chardev 2017-06-02 11:33:52 +04:00
fsl-imx25.c chardev: move headers to include/chardev 2017-06-02 11:33:52 +04:00
fsl-imx31.c chardev: move headers to include/chardev 2017-06-02 11:33:52 +04:00
gumstix.c machine: Use type_init() to register machine classes 2016-03-16 15:34:05 -03:00
highbank.c shutdown: Add source information to SHUTDOWN and RESET 2017-05-23 13:28:17 +02:00
imx25_pdk.c arm: Uniquely name imx25 I2C buses. 2017-01-20 11:15:06 +00:00
integratorcp.c shutdown: Add source information to SHUTDOWN and RESET 2017-05-23 13:28:17 +02:00
kzm.c hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
mainstone.c mainstone: Add mapping for dot, slash and backspace. 2016-10-04 13:28:08 +01:00
Makefile.objs palmetto-bmc: rename the Aspeed board file to aspeed.c 2016-09-22 18:13:05 +01:00
musicpal.c shutdown: Add source information to SHUTDOWN and RESET 2017-05-23 13:28:17 +02:00
netduino2.c stm32f205: Create armv7m object without using armv7m_init() 2017-02-28 16:18:49 +00:00
nseries.c char: rename CharDriverState Chardev 2017-01-27 18:07:59 +01:00
omap1.c shutdown: Add source information to SHUTDOWN and RESET 2017-05-23 13:28:17 +02:00
omap2.c char: move CharBackend handling in char-fe unit 2017-06-02 11:33:53 +04:00
omap_sx1.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
palm.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
pxa2xx_gpio.c hw/arm: QOM'ify pxa2xx_gpio.c 2016-10-24 16:26:55 +01:00
pxa2xx_pic.c hw/arm: QOM'ify pxa2xx_pic.c 2016-05-12 13:42:08 +01:00
pxa2xx.c char: move CharBackend handling in char-fe unit 2017-06-02 11:33:53 +04:00
raspi.c bcm2835_fb: use {get, set}_uint() for "vcram-size" and "vcram-base" 2017-06-20 14:31:32 +02:00
realview.c hw: Deprecate -drive if=scsi with non-onboard HBAs 2017-02-21 13:17:45 +01:00
sabrelite.c m25p80: qdev-ify drive property 2016-07-04 13:15:22 +01:00
spitz.c shutdown: Add source information to SHUTDOWN and RESET 2017-05-23 13:28:17 +02:00
stellaris.c shutdown: Add source information to SHUTDOWN and RESET 2017-05-23 13:28:17 +02:00
stm32f205_soc.c stm32f205: Rename 'nvic' local to 'armv7m' 2017-02-28 16:18:49 +00:00
strongarm.c char: move CharBackend handling in char-fe unit 2017-06-02 11:33:53 +04:00
strongarm.h Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
sysbus-fdt.c sysbus: Remove ignored return value of FindSysbusDeviceFunc 2016-09-27 17:03:34 -03:00
tosa.c shutdown: Add source information to SHUTDOWN and RESET 2017-05-23 13:28:17 +02:00
trace-events trace-events: fix first line comment in trace-events 2016-08-12 10:36:01 +01:00
versatilepb.c hw: Deprecate -drive if=scsi with non-onboard HBAs 2017-02-21 13:17:45 +01:00
vexpress.c hw: Default -drive to if=none instead of scsi when scsi cannot work 2017-02-21 13:10:53 +01:00
virt-acpi-build.c numa: make sure that all cpus have has_node_id set if numa is enabled 2017-06-05 14:59:08 -03:00
virt.c numa: consolidate cpu_preplug fixups/checks for pc/arm/spapr 2017-06-05 14:59:08 -03:00
xilinx_zynq.c hw: Default -drive to if=none instead of scsi when scsi cannot work 2017-02-21 13:10:53 +01:00
xlnx-ep108.c hw/arm/cubieboard hw/arm/xlnx-ep108: Fix units_per_default_bus 2017-02-21 13:10:53 +01:00
xlnx-zynqmp.c qdev patches for 2017-04-21 2017-04-21 11:42:03 +01:00
z2.c i2c: Allow I2C devices to NAK start events 2017-01-09 11:40:20 +00:00