diff options
| author | Jackson Donaldson <jackson88044@gmail.com> | 2025-07-04 18:32:36 -0400 |
|---|---|---|
| committer | Peter Maydell <peter.maydell@linaro.org> | 2025-07-08 17:31:38 +0100 |
| commit | 069852d159a18219eb19281b146d612849a84e03 (patch) | |
| tree | 9aba39a9dcb9ad2504fb3492c8cbb9178516e84d /include/hw/misc | |
| parent | 035a38fa97d07b80ff5b9fa6c3da43528770899d (diff) | |
| download | focaccia-qemu-069852d159a18219eb19281b146d612849a84e03.tar.gz focaccia-qemu-069852d159a18219eb19281b146d612849a84e03.zip | |
MAX78000: TRNG Implementation
This commit implements the True Random Number Generator for the MAX78000 Signed-off-by: Jackson Donaldson <jcksn@duck.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-id: 20250704223239.248781-9-jcksn@duck.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'include/hw/misc')
| -rw-r--r-- | include/hw/misc/max78000_gcr.h | 1 | ||||
| -rw-r--r-- | include/hw/misc/max78000_trng.h | 35 |
2 files changed, 36 insertions, 0 deletions
diff --git a/include/hw/misc/max78000_gcr.h b/include/hw/misc/max78000_gcr.h index f04c8a3ee7..23ddf0885b 100644 --- a/include/hw/misc/max78000_gcr.h +++ b/include/hw/misc/max78000_gcr.h @@ -123,6 +123,7 @@ struct Max78000GcrState { DeviceState *uart0; DeviceState *uart1; DeviceState *uart2; + DeviceState *trng; }; diff --git a/include/hw/misc/max78000_trng.h b/include/hw/misc/max78000_trng.h new file mode 100644 index 0000000000..c5a8129b6a --- /dev/null +++ b/include/hw/misc/max78000_trng.h @@ -0,0 +1,35 @@ +/* + * MAX78000 True Random Number Generator + * + * Copyright (c) 2025 Jackson Donaldson <jcksn@duck.com> + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ +#ifndef HW_MAX78000_TRNG_H +#define HW_MAX78000_TRNG_H + +#include "hw/sysbus.h" +#include "qom/object.h" + +#define TYPE_MAX78000_TRNG "max78000-trng" +OBJECT_DECLARE_SIMPLE_TYPE(Max78000TrngState, MAX78000_TRNG) + +#define CTRL 0 +#define STATUS 4 +#define DATA 8 + +#define RND_IE (1 << 1) + +struct Max78000TrngState { + SysBusDevice parent_obj; + + MemoryRegion mmio; + + uint32_t ctrl; + uint32_t status; + uint32_t data; + + qemu_irq irq; +}; + +#endif |