175750e4dSPeter Maydell /* 275750e4dSPeter Maydell * ARM IoTKit system control element 375750e4dSPeter Maydell * 475750e4dSPeter Maydell * Copyright (c) 2018 Linaro Limited 575750e4dSPeter Maydell * Written by Peter Maydell 675750e4dSPeter Maydell * 775750e4dSPeter Maydell * This program is free software; you can redistribute it and/or modify 875750e4dSPeter Maydell * it under the terms of the GNU General Public License version 2 or 975750e4dSPeter Maydell * (at your option) any later version. 1075750e4dSPeter Maydell */ 1175750e4dSPeter Maydell 1275750e4dSPeter Maydell /* 1375750e4dSPeter Maydell * This is a model of the "system control element" which is part of the 1475750e4dSPeter Maydell * Arm IoTKit and documented in 1575750e4dSPeter Maydell * http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ecm0601256/index.html 1675750e4dSPeter Maydell * Specifically, it implements the "system information block" and 1775750e4dSPeter Maydell * "system control register" blocks. 1875750e4dSPeter Maydell * 1975750e4dSPeter Maydell * QEMU interface: 2075750e4dSPeter Maydell * + sysbus MMIO region 0: the system information register bank 2175750e4dSPeter Maydell * + sysbus MMIO region 1: the system control register bank 2275750e4dSPeter Maydell */ 2375750e4dSPeter Maydell 2475750e4dSPeter Maydell #ifndef HW_MISC_IOTKIT_SYSCTL_H 2575750e4dSPeter Maydell #define HW_MISC_IOTKIT_SYSCTL_H 2675750e4dSPeter Maydell 2775750e4dSPeter Maydell #include "hw/sysbus.h" 2875750e4dSPeter Maydell 2975750e4dSPeter Maydell #define TYPE_IOTKIT_SYSCTL "iotkit-sysctl" 3075750e4dSPeter Maydell #define IOTKIT_SYSCTL(obj) OBJECT_CHECK(IoTKitSysCtl, (obj), \ 3175750e4dSPeter Maydell TYPE_IOTKIT_SYSCTL) 3275750e4dSPeter Maydell 3375750e4dSPeter Maydell typedef struct IoTKitSysCtl { 3475750e4dSPeter Maydell /*< private >*/ 3575750e4dSPeter Maydell SysBusDevice parent_obj; 3675750e4dSPeter Maydell 3775750e4dSPeter Maydell /*< public >*/ 3875750e4dSPeter Maydell MemoryRegion iomem; 3975750e4dSPeter Maydell 4075750e4dSPeter Maydell uint32_t secure_debug; 4175750e4dSPeter Maydell uint32_t reset_syndrome; 4275750e4dSPeter Maydell uint32_t reset_mask; 4375750e4dSPeter Maydell uint32_t gretreg; 44*394e10d2SPeter Maydell uint32_t initsvtor0; 4575750e4dSPeter Maydell uint32_t cpuwait; 4675750e4dSPeter Maydell uint32_t wicctrl; 4775750e4dSPeter Maydell } IoTKitSysCtl; 4875750e4dSPeter Maydell 4975750e4dSPeter Maydell #endif 50