target-arm: Implement BCM2835 hardware RNG
commit54a5ba13a9ffe7d25fc649b0fa9f8314734c8ccc
authorMarcin Chojnacki <marcinch7@gmail.com>
Tue, 28 Feb 2017 12:08:13 +0000 (28 12:08 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 28 Feb 2017 12:08:13 +0000 (28 12:08 +0000)
tree969296f64bcd11de22f0971ec334d75ca067c6a5
parent6181478f6395cdd9d6ffd99623d0c9f39ea53606
target-arm: Implement BCM2835 hardware RNG

Recent vanilla Raspberry Pi kernels started to make use of
the hardware random number generator in BCM2835 SoC. As a
result, those kernels wouldn't work anymore under QEMU
but rather just freeze during the boot process.

This patch implements a trivial BCM2835 compatible RNG,
and adds it as a peripheral to BCM2835 platform, which
allows to boot a vanilla Raspberry Pi kernel under Qemu.

Changes since v1:
 * Prevented guest from writing [31..20] bits in rng_status
 * Removed redundant minimum_version_id_old
 * Added field entries for the state
 * Changed realize function to reset

Signed-off-by: Marcin Chojnacki <marcinch7@gmail.com>
Message-id: 20170210210857.47893-1-marcinch7@gmail.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
hw/arm/bcm2835_peripherals.c
hw/misc/Makefile.objs
hw/misc/bcm2835_rng.c [new file with mode: 0644]
include/hw/arm/bcm2835_peripherals.h
include/hw/misc/bcm2835_rng.h [new file with mode: 0644]