1*54a5ba13SMarcin Chojnacki /* 2*54a5ba13SMarcin Chojnacki * BCM2835 Random Number Generator emulation 3*54a5ba13SMarcin Chojnacki * 4*54a5ba13SMarcin Chojnacki * Copyright (C) 2017 Marcin Chojnacki <marcinch7@gmail.com> 5*54a5ba13SMarcin Chojnacki * 6*54a5ba13SMarcin Chojnacki * This work is licensed under the terms of the GNU GPL, version 2 or later. 7*54a5ba13SMarcin Chojnacki * See the COPYING file in the top-level directory. 8*54a5ba13SMarcin Chojnacki */ 9*54a5ba13SMarcin Chojnacki 10*54a5ba13SMarcin Chojnacki #ifndef BCM2835_RNG_H 11*54a5ba13SMarcin Chojnacki #define BCM2835_RNG_H 12*54a5ba13SMarcin Chojnacki 13*54a5ba13SMarcin Chojnacki #include "hw/sysbus.h" 14*54a5ba13SMarcin Chojnacki 15*54a5ba13SMarcin Chojnacki #define TYPE_BCM2835_RNG "bcm2835-rng" 16*54a5ba13SMarcin Chojnacki #define BCM2835_RNG(obj) \ 17*54a5ba13SMarcin Chojnacki OBJECT_CHECK(BCM2835RngState, (obj), TYPE_BCM2835_RNG) 18*54a5ba13SMarcin Chojnacki 19*54a5ba13SMarcin Chojnacki typedef struct { 20*54a5ba13SMarcin Chojnacki SysBusDevice busdev; 21*54a5ba13SMarcin Chojnacki MemoryRegion iomem; 22*54a5ba13SMarcin Chojnacki 23*54a5ba13SMarcin Chojnacki uint32_t rng_ctrl; 24*54a5ba13SMarcin Chojnacki uint32_t rng_status; 25*54a5ba13SMarcin Chojnacki } BCM2835RngState; 26*54a5ba13SMarcin Chojnacki 27*54a5ba13SMarcin Chojnacki #endif 28