xref: /openbmc/qemu/include/hw/misc/iotkit-sysinfo.h (revision db1015e92e04835c9eb50c29625fe566d1202dbd)
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:
17dde0c491SPeter Maydell  *  + QOM property "SYS_VERSION": value to use for SYS_VERSION register
18dde0c491SPeter 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"
26*db1015e9SEduardo Habkost #include "qom/object.h"
27c667a25bSPeter Maydell 
28c667a25bSPeter Maydell #define TYPE_IOTKIT_SYSINFO "iotkit-sysinfo"
29*db1015e9SEduardo Habkost typedef struct IoTKitSysInfo IoTKitSysInfo;
30c667a25bSPeter Maydell #define IOTKIT_SYSINFO(obj) OBJECT_CHECK(IoTKitSysInfo, (obj), \
31c667a25bSPeter Maydell                                         TYPE_IOTKIT_SYSINFO)
32c667a25bSPeter Maydell 
33*db1015e9SEduardo Habkost struct IoTKitSysInfo {
34c667a25bSPeter Maydell     /*< private >*/
35c667a25bSPeter Maydell     SysBusDevice parent_obj;
36c667a25bSPeter Maydell 
37c667a25bSPeter Maydell     /*< public >*/
38c667a25bSPeter Maydell     MemoryRegion iomem;
39dde0c491SPeter Maydell 
40dde0c491SPeter Maydell     /* Properties */
41dde0c491SPeter Maydell     uint32_t sys_version;
42dde0c491SPeter Maydell     uint32_t sys_config;
43*db1015e9SEduardo Habkost };
44c667a25bSPeter Maydell 
45c667a25bSPeter Maydell #endif
46