qemu/hw
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
..
9pfs migration: simplify blockers 2023-10-20 08:51:41 +02:00
acpi virtio,pc,pci: features, cleanups 2023-10-23 14:45:29 -07:00
adc meson: Replace softmmu_ss -> system_ss 2023-06-20 10:01:30 +02:00
alpha hw/alpha: Use MachineClass->default_nic in the alpha machine 2023-05-26 09:10:49 +02:00
arm hw/arm/pxa2xx_gpio: Pass CPU using QOM link property 2023-11-02 13:36:45 +00:00
audio hw/audio/es1370: trace lost interrupts 2023-10-10 12:31:05 +00:00
avr Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
block virtio-blk: remove batch notification BH 2023-10-31 15:42:17 +01:00
char hw/char/stm32f2xx_usart: Update IRQ when DR is written 2023-11-02 13:36:45 +00:00
core qdev: Add qdev_prop_set_array() 2023-11-02 12:52:06 +00:00
cpu hw/other: spelling fixes 2023-09-21 11:31:16 +03:00
cris Do not include exec/address-spaces.h if it's not really necessary 2021-05-02 17:24:51 +02:00
cxl hw/cxl: Fix local variable shadowing of cap_hdrs 2023-10-06 10:56:54 +02:00
display docs/specs/standard-vga: Convert to rST 2023-11-02 12:52:06 +00:00
dma hw/dma: Declare link using static DEFINE_PROP_LINK() macro 2023-10-19 23:13:28 +02:00
gpio hw/gpio/nrf51: implement DETECT signal 2023-08-22 17:30:59 +01:00
hppa hw/hppa: Add new HP C3700 machine 2023-10-20 00:47:38 +02:00
hyperv win32: replace closesocket() with close() wrapper 2023-03-13 15:39:31 +04:00
i2c hw/i2c/pm_smbus: Convert DPRINTF to trace events 2023-11-02 13:36:45 +00:00
i386 * Fix global variable shadowing in test code 2023-10-30 08:08:18 +09:00
ide hw/ide/ahci: Clean up local variable shadowing 2023-10-06 13:16:57 +02:00
input hw/input/stellaris_gamepad: Convert to qemu_input_handler_register() 2023-11-02 12:52:06 +00:00
intc target/arm: Move feature test functions to their own header 2023-10-27 11:44:32 +01:00
ipack meson: Replace softmmu_ss -> system_ss 2023-06-20 10:01:30 +02:00
ipmi hw/other: spelling fixes 2023-09-21 11:31:16 +03:00
isa virtio,pc,pci: features, cleanups 2023-10-23 14:45:29 -07:00
loongarch hw/acpi: Realize ACPI_GED sysbus device before accessing it 2023-10-19 23:13:28 +02:00
m68k q800: add alias for MacOS toolbox ROM at 0x40000000 2023-10-06 10:33:43 +02:00
mem memory-device,vhost: Support automatic decision on the number of memslots 2023-10-12 14:15:22 +02:00
microblaze hw/microblaze: Clean up local variable shadowing 2023-09-29 10:07:16 +02:00
mips virtio,pc,pci: features, cleanups 2023-10-23 14:45:29 -07:00
misc hw/misc: Introduce AMD/Xilix Versal TRNG device 2023-11-02 14:42:03 +00:00
net hw/net/cadence_gem: enforce 32 bits variable size for CRC 2023-10-27 15:27:06 +01:00
nios2 hw/nios2: Clean up local variable shadowing 2023-09-29 10:07:16 +02:00
nubus trace-events: Fix the name of the tracing.rst file 2023-09-08 13:08:51 +03:00
nvme hw/nvme: Clean up local variable shadowing in nvme_ns_init() 2023-09-29 10:07:20 +02:00
nvram xlnx-versal-efuse: hw/nvram: Remove deprecated device reset 2023-10-19 13:01:52 +01:00
openrisc *: Add missing includes of qemu/error-report.h 2023-03-22 15:06:57 +00:00
pci hw/pci: Clean up global variable shadowing of address_space_io variable 2023-10-19 23:13:28 +02:00
pci-bridge hw/pci-bridge/cxl-upstream: Add serial number extended capability support 2023-10-04 18:15:06 -04:00
pci-host target/hppa: Add emulation of a C3700 HP-PARISC workstation 2023-10-20 06:46:26 -07:00
pcmcia hw/pcmcia/pxa2xx: Inline pxa2xx_pcmcia_init() 2023-10-27 12:48:57 +01:00
ppc ppc/{bamboo, virtex_ml507}: Remove useless dependency on ppc405.h header 2023-10-21 15:00:22 +03:00
rdma hw/rdma/vmw/pvrdma_cmd: Use correct struct in query_port() 2023-10-21 15:00:22 +03:00
remote migration: simplify blockers 2023-10-20 08:51:41 +02:00
riscv target/riscv: move KVM only files to kvm subdir 2023-10-12 12:20:24 +10:00
rtc hw/other: spelling fixes 2023-09-21 11:31:16 +03:00
rx hw/other: spelling fixes 2023-09-21 11:31:16 +03:00
s390x kvm: require KVM_CAP_IOEVENTFD and KVM_CAP_IOEVENTFD_ANY_LENGTH 2023-10-25 17:35:15 +02:00
scsi util/defer-call: move defer_call() to util/ 2023-10-31 15:41:42 +01:00
sd hw/sd/pxa2xx: Do not open-code sysbus_create_simple() 2023-10-27 12:48:57 +01:00
sensor hw/i2c: spelling fixes 2023-08-31 19:47:43 +02:00
sh4 hw/other: spelling fixes 2023-09-21 11:31:16 +03:00
smbios hw/acpi: changes towards enabling -Wshadow=local 2023-09-29 10:07:18 +02:00
sparc other architectures: spelling fixes 2023-07-25 17:14:07 +03:00
sparc64 hw/sparc64/ebus: Access memory regions via pci_address_space_io() 2023-10-19 23:13:28 +02:00
ssi hw/other: spelling fixes 2023-09-21 11:31:16 +03:00
timer virtio,pc,pci: features, cleanups 2023-10-23 14:45:29 -07:00
tpm hw/tpm: spelling fixes 2023-09-20 07:54:34 +03:00
tricore hw/tricore: Log failing test in testdevice 2023-09-29 08:28:02 +02:00
ufs hw/ufs: Modify lu.c to share codes with SCSI subsystem 2023-10-30 10:28:04 +09:00
usb hw/usb: Silence compiler warnings in USB code when compiling with -Wshadow 2023-10-06 13:27:48 +02:00
vfio migration: simplify notifiers 2023-10-20 08:51:41 +02:00
virtio virtio: use defer_call() in virtio_irqfd_notify() 2023-10-31 15:42:14 +01:00
watchdog hw/watchdog/wdt_imx2: Trace timer activity 2023-11-02 13:36:45 +00:00
xen hw/xen: cleanup sourcesets 2023-10-18 10:01:01 +02:00
xenpv hw/xenpv: Initialize Xen backend operations 2023-03-24 14:52:14 +00:00
xtensa trivial: Simplify the spots that use TARGET_BIG_ENDIAN as a numeric value 2023-09-08 13:08:52 +03:00
Kconfig hw/ufs: Initial commit for emulated Universal-Flash-Storage 2023-09-07 14:01:29 -04:00
meson.build hw/ufs: Initial commit for emulated Universal-Flash-Storage 2023-09-07 14:01:29 -04:00