xref: /openbmc/qemu/include/hw/misc/iotkit-sysinfo.h (revision dde0c4910395445da6b2b756193f89ab578d31a1)
1c667a25bSPeter Maydell /*
2c667a25bSPeter Maydell  * ARM IoTKit system information block
3c667a25bSPeter Maydell  *
4c667a25bSPeter Maydell  * Copyright (c) 2018 Linaro Limited
5c667a25bSPeter Maydell  * Written by Peter Maydell
6c667a25bSPeter Maydell  *
7c667a25bSPeter Maydell  *  This program is free software; you can redistribute it and/or modify
8c667a25bSPeter Maydell  *  it under the terms of the GNU General Public License version 2 or
9c667a25bSPeter Maydell  *  (at your option) any later version.
10c667a25bSPeter Maydell  */
11c667a25bSPeter Maydell 
12c667a25bSPeter Maydell /*
13c667a25bSPeter Maydell  * This is a model of the "system information block" which is part of the
14c667a25bSPeter Maydell  * Arm IoTKit and documented in
15c667a25bSPeter Maydell  * http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ecm0601256/index.html
16c667a25bSPeter Maydell  * QEMU interface:
17*dde0c491SPeter Maydell  *  + QOM property "SYS_VERSION": value to use for SYS_VERSION register
18*dde0c491SPeter Maydell  *  + QOM property "SYS_CONFIG": value to use for SYS_CONFIG register
19c667a25bSPeter Maydell  *  + sysbus MMIO region 0: the system information register bank
20c667a25bSPeter Maydell  */
21c667a25bSPeter Maydell 
22c667a25bSPeter Maydell #ifndef HW_MISC_IOTKIT_SYSINFO_H
23c667a25bSPeter Maydell #define HW_MISC_IOTKIT_SYSINFO_H
24c667a25bSPeter Maydell 
25c667a25bSPeter Maydell #include "hw/sysbus.h"
26c667a25bSPeter Maydell 
27c667a25bSPeter Maydell #define TYPE_IOTKIT_SYSINFO "iotkit-sysinfo"
28c667a25bSPeter Maydell #define IOTKIT_SYSINFO(obj) OBJECT_CHECK(IoTKitSysInfo, (obj), \
29c667a25bSPeter Maydell                                         TYPE_IOTKIT_SYSINFO)
30c667a25bSPeter Maydell 
31c667a25bSPeter Maydell typedef struct IoTKitSysInfo {
32c667a25bSPeter Maydell     /*< private >*/
33c667a25bSPeter Maydell     SysBusDevice parent_obj;
34c667a25bSPeter Maydell 
35c667a25bSPeter Maydell     /*< public >*/
36c667a25bSPeter Maydell     MemoryRegion iomem;
37*dde0c491SPeter Maydell 
38*dde0c491SPeter Maydell     /* Properties */
39*dde0c491SPeter Maydell     uint32_t sys_version;
40*dde0c491SPeter Maydell     uint32_t sys_config;
41c667a25bSPeter Maydell } IoTKitSysInfo;
42c667a25bSPeter Maydell 
43c667a25bSPeter Maydell #endif
44