qemu-e2k/include/hw/misc
Tong Ho 921923583f hw/misc: Introduce AMD/Xilix Versal TRNG device
This adds a non-cryptographic grade implementation of the
model for the True Random Number Generator (TRNG) component
in AMD/Xilinx Versal device family.

This implements all 3 modes defined by the actual hardware
specs, all of which selectable by guest software at will
at anytime:
1) PRNG mode, in which the generated sequence is required to
   be reproducible after reseeded by the same 384-bit value
   as supplied by guest software.
2) Test mode, in which the generated sequence is required to
   be reproducible ater reseeded by the same 128-bit test
   seed supplied by guest software.
3) TRNG mode, in which non-reproducible sequence is generated
   based on periodic reseed by a suitable entropy source.

This model is only intended for non-real world testing of
guest software, where cryptographically strong PRNG or TRNG
is not needed.

This model supports versions 1 & 2 of the device, with
default to be version 2; the 'hw-version' uint32 property
can be set to 0x0100 to override the default.

Other implemented properties:
- 'forced-prng', uint64
  When set to non-zero, mode 3's entropy source is implemented
  as a deterministic sequence based on the given value and other
  deterministic parameters.
  This option allows the emulation to test guest software using
  mode 3 and to reproduce data-dependent defects.

- 'fips-fault-events', uint32, bit-mask
  bit 3: Triggers the SP800-90B entropy health test fault irq
  bit 1: Triggers the FIPS 140-2 continuous test fault irq

Signed-off-by: Tong Ho <tong.ho@amd.com>
Message-id: 20231031184611.3029156-2-tong.ho@amd.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2023-11-02 14:42:03 +00:00
..
macio include/: spelling fixes 2023-09-08 13:08:52 +03:00
a9scu.h
allwinner-a10-ccm.h hw/misc: Allwinner-A10 Clock Controller Module Emulation 2023-01-12 16:50:19 +00:00
allwinner-a10-dramc.h hw/misc: Allwinner A10 DRAM Controller Emulation 2023-01-12 16:50:19 +00:00
allwinner-cpucfg.h
allwinner-h3-ccu.h
allwinner-h3-dramc.h
allwinner-h3-sysctrl.h
allwinner-r40-ccu.h hw/arm/allwinner-r40: add Clock Control Unit 2023-06-06 10:19:31 +01:00
allwinner-r40-dramc.h hw/arm/allwinner-r40: add SDRAM controller device 2023-06-06 10:19:32 +01:00
allwinner-sid.h
allwinner-sramc.h hw: arm: allwinner-sramc: Add SRAM Controller support for R40 2023-06-06 10:19:33 +01:00
arm11scu.h
arm_integrator_debug.h
armsse-cpu-pwrctrl.h
armsse-cpuid.h
armsse-mhu.h
armv7m_ras.h
aspeed_hace.h
aspeed_i3c.h
aspeed_lpc.h Don't include headers already included by qemu/osdep.h 2023-02-08 07:28:05 +01:00
aspeed_peci.h
aspeed_sbc.h aspeed: sbc: Allow per-machine settings 2022-07-14 16:24:38 +02:00
aspeed_scu.h bulk: Do not declare function prototypes using 'extern' keyword 2023-08-31 19:47:43 +02:00
aspeed_sdmc.h
aspeed_xdma.h
auxbus.h hw/i2c: spelling fixes 2023-08-31 19:47:43 +02:00
avr_power.h
bcm2835_cprman_internals.h
bcm2835_cprman.h
bcm2835_mbox_defs.h
bcm2835_mbox.h
bcm2835_mphi.h
bcm2835_powermgt.h
bcm2835_property.h hw/arm/bcm2835_property: Implement "get command line" message 2023-05-02 15:47:40 +01:00
bcm2835_rng.h
bcm2835_thermal.h
cbus.h
djmemc.h q800: add djMEMC memory controller 2023-10-06 10:33:43 +02:00
empty_slot.h
grlib_ahb_apb_pnp.h
imx6_ccm.h
imx6_src.h
imx6ul_ccm.h
imx7_ccm.h
imx7_gpr.h
imx7_snvs.h
imx7_src.h Add i.MX7 SRC device implementation 2023-08-31 09:45:17 +01:00
imx25_ccm.h
imx31_ccm.h
imx_ccm.h
imx_rngc.h
iosb.h q800: add IOSB subsystem 2023-10-06 10:33:43 +02:00
iotkit-secctl.h
iotkit-sysctl.h
iotkit-sysinfo.h
ivshmem.h
lasi.h lasi: fix RTC migration 2023-04-20 11:17:35 +02:00
led.h
mac_via.h mac_via: work around underflow in TimeDBRA timing loop in SETUPTIMEK 2023-10-06 10:33:43 +02:00
mchp_pfsoc_dmc.h include: Include headers where needed 2023-01-08 01:54:22 -05:00
mchp_pfsoc_ioscb.h include: Include headers where needed 2023-01-08 01:54:22 -05:00
mchp_pfsoc_sysreg.h include: Include headers where needed 2023-01-08 01:54:22 -05:00
mips_cmgcr.h hw/mips: Declare all length properties as unsigned 2023-03-08 00:37:48 +01:00
mips_cpc.h
mips_itu.h hw/misc/mips_itu: Make MIPSITUState target agnostic 2023-10-19 23:13:27 +02:00
mos6522.h input/adb: Only include header where needed 2023-02-06 11:41:39 +00:00
mps2-fpgaio.h
mps2-scc.h
msf2-sysreg.h
npcm7xx_clk.h hw/arm/npcm7xx: Declare QOM macros using OBJECT_DECLARE_SIMPLE_TYPE() 2023-01-12 17:15:09 +00:00
npcm7xx_gcr.h hw/arm/npcm7xx: Declare QOM macros using OBJECT_DECLARE_SIMPLE_TYPE() 2023-01-12 17:15:09 +00:00
npcm7xx_mft.h hw/arm/npcm7xx: Declare QOM macros using OBJECT_DECLARE_SIMPLE_TYPE() 2023-01-12 17:15:09 +00:00
npcm7xx_pwm.h hw/arm/npcm7xx: Declare QOM macros using OBJECT_DECLARE_SIMPLE_TYPE() 2023-01-12 17:15:09 +00:00
npcm7xx_rng.h hw/arm/npcm7xx: Declare QOM macros using OBJECT_DECLARE_SIMPLE_TYPE() 2023-01-12 17:15:09 +00:00
nrf51_rng.h
pca9552_regs.h
pca9552.h
pvpanic.h include: Include headers where needed 2023-01-08 01:54:22 -05:00
sifive_e_aon.h hw/misc: sifive_e_aon: Support the watchdog timer of HiFive 1 rev b. 2023-07-10 22:29:14 +10:00
sifive_e_prci.h include: Include headers where needed 2023-01-08 01:54:22 -05:00
sifive_test.h
sifive_u_otp.h include: Include headers where needed 2023-01-08 01:54:22 -05:00
sifive_u_prci.h include: Include headers where needed 2023-01-08 01:54:22 -05:00
stm32f2xx_syscfg.h
stm32f4xx_exti.h
stm32f4xx_syscfg.h
tz-mpc.h
tz-msc.h
tz-ppc.h
unimp.h
virt_ctrl.h include: Include headers where needed 2023-01-08 01:54:22 -05:00
vmcoreinfo.h
xlnx-cfi-if.h hw/misc: Introduce the Xilinx CFI interface 2023-09-08 16:41:34 +01:00
xlnx-versal-cframe-reg.h hw/misc: Introduce a model of Xilinx Versal's CFRAME_BCAST_REG 2023-09-08 16:41:35 +01:00
xlnx-versal-cfu.h hw/misc/xlnx-versal-cfu: Introduce a model of Xilinx Versal's CFU_SFR 2023-09-08 16:41:35 +01:00
xlnx-versal-crl.h
xlnx-versal-pmc-iou-slcr.h include: Include headers where needed 2023-01-08 01:54:22 -05:00
xlnx-versal-trng.h hw/misc: Introduce AMD/Xilix Versal TRNG device 2023-11-02 14:42:03 +00:00
xlnx-versal-xramc.h
xlnx-zynqmp-apu-ctrl.h hw/misc: Move some arm-related files from specific_ss into softmmu_ss 2022-12-15 17:37:47 +00:00
xlnx-zynqmp-crf.h