154a5ba13SMarcin Chojnacki /* 254a5ba13SMarcin Chojnacki * BCM2835 Random Number Generator emulation 354a5ba13SMarcin Chojnacki * 454a5ba13SMarcin Chojnacki * Copyright (C) 2017 Marcin Chojnacki <marcinch7@gmail.com> 554a5ba13SMarcin Chojnacki * 654a5ba13SMarcin Chojnacki * This work is licensed under the terms of the GNU GPL, version 2 or later. 754a5ba13SMarcin Chojnacki * See the COPYING file in the top-level directory. 854a5ba13SMarcin Chojnacki */ 954a5ba13SMarcin Chojnacki 1054a5ba13SMarcin Chojnacki #ifndef BCM2835_RNG_H 1154a5ba13SMarcin Chojnacki #define BCM2835_RNG_H 1254a5ba13SMarcin Chojnacki 1354a5ba13SMarcin Chojnacki #include "hw/sysbus.h" 14db1015e9SEduardo Habkost #include "qom/object.h" 1554a5ba13SMarcin Chojnacki 1654a5ba13SMarcin Chojnacki #define TYPE_BCM2835_RNG "bcm2835-rng" 17*8063396bSEduardo Habkost OBJECT_DECLARE_SIMPLE_TYPE(BCM2835RngState, BCM2835_RNG) 1854a5ba13SMarcin Chojnacki 19db1015e9SEduardo Habkost struct BCM2835RngState { 2054a5ba13SMarcin Chojnacki SysBusDevice busdev; 2154a5ba13SMarcin Chojnacki MemoryRegion iomem; 2254a5ba13SMarcin Chojnacki 2354a5ba13SMarcin Chojnacki uint32_t rng_ctrl; 2454a5ba13SMarcin Chojnacki uint32_t rng_status; 25db1015e9SEduardo Habkost }; 2654a5ba13SMarcin Chojnacki 2754a5ba13SMarcin Chojnacki #endif 28