iotkit-sysinfo.c (407664539d76523222a4a4a3ef273645593f75b2) | iotkit-sysinfo.c (446587a914cfa57c2ce529056a9ca2215bde7111) |
---|---|
1/* 2 * ARM IoTKit system information block 3 * 4 * Copyright (c) 2018 Linaro Limited 5 * Written by Peter Maydell 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License version 2 or --- 16 unchanged lines hidden (view full) --- 25#include "hw/sysbus.h" 26#include "hw/registerfields.h" 27#include "hw/misc/iotkit-sysinfo.h" 28#include "hw/qdev-properties.h" 29#include "hw/arm/armsse-version.h" 30 31REG32(SYS_VERSION, 0x0) 32REG32(SYS_CONFIG, 0x4) | 1/* 2 * ARM IoTKit system information block 3 * 4 * Copyright (c) 2018 Linaro Limited 5 * Written by Peter Maydell 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License version 2 or --- 16 unchanged lines hidden (view full) --- 25#include "hw/sysbus.h" 26#include "hw/registerfields.h" 27#include "hw/misc/iotkit-sysinfo.h" 28#include "hw/qdev-properties.h" 29#include "hw/arm/armsse-version.h" 30 31REG32(SYS_VERSION, 0x0) 32REG32(SYS_CONFIG, 0x4) |
33REG32(SYS_CONFIG1, 0x8) 34REG32(IIDR, 0xfc8) |
|
33REG32(PID4, 0xfd0) 34REG32(PID5, 0xfd4) 35REG32(PID6, 0xfd8) 36REG32(PID7, 0xfdc) 37REG32(PID0, 0xfe0) 38REG32(PID1, 0xfe4) 39REG32(PID2, 0xfe8) 40REG32(PID3, 0xfec) --- 24 unchanged lines hidden (view full) --- 65 switch (offset) { 66 case A_SYS_VERSION: 67 r = s->sys_version; 68 break; 69 70 case A_SYS_CONFIG: 71 r = s->sys_config; 72 break; | 35REG32(PID4, 0xfd0) 36REG32(PID5, 0xfd4) 37REG32(PID6, 0xfd8) 38REG32(PID7, 0xfdc) 39REG32(PID0, 0xfe0) 40REG32(PID1, 0xfe4) 41REG32(PID2, 0xfe8) 42REG32(PID3, 0xfec) --- 24 unchanged lines hidden (view full) --- 67 switch (offset) { 68 case A_SYS_VERSION: 69 r = s->sys_version; 70 break; 71 72 case A_SYS_CONFIG: 73 r = s->sys_config; 74 break; |
75 case A_SYS_CONFIG1: 76 switch (s->sse_version) { 77 case ARMSSE_SSE300: 78 return 0; 79 break; 80 default: 81 goto bad_read; 82 } 83 break; 84 case A_IIDR: 85 switch (s->sse_version) { 86 case ARMSSE_SSE300: 87 return s->iidr; 88 break; 89 default: 90 goto bad_read; 91 } 92 break; |
|
73 case A_PID4 ... A_CID3: 74 switch (s->sse_version) { 75 case ARMSSE_SSE300: 76 r = sysinfo_sse300_id[(offset - A_PID4) / 4]; 77 break; 78 default: 79 r = sysinfo_id[(offset - A_PID4) / 4]; 80 break; 81 } 82 break; 83 default: | 93 case A_PID4 ... A_CID3: 94 switch (s->sse_version) { 95 case ARMSSE_SSE300: 96 r = sysinfo_sse300_id[(offset - A_PID4) / 4]; 97 break; 98 default: 99 r = sysinfo_id[(offset - A_PID4) / 4]; 100 break; 101 } 102 break; 103 default: |
104 bad_read: |
|
84 qemu_log_mask(LOG_GUEST_ERROR, 85 "IoTKit SysInfo read: bad offset %x\n", (int)offset); 86 r = 0; 87 break; 88 } 89 trace_iotkit_sysinfo_read(offset, r, size); 90 return r; 91} --- 17 unchanged lines hidden (view full) --- 109 .valid.min_access_size = 1, 110 .valid.max_access_size = 4, 111}; 112 113static Property iotkit_sysinfo_props[] = { 114 DEFINE_PROP_UINT32("SYS_VERSION", IoTKitSysInfo, sys_version, 0), 115 DEFINE_PROP_UINT32("SYS_CONFIG", IoTKitSysInfo, sys_config, 0), 116 DEFINE_PROP_UINT32("sse-version", IoTKitSysInfo, sse_version, 0), | 105 qemu_log_mask(LOG_GUEST_ERROR, 106 "IoTKit SysInfo read: bad offset %x\n", (int)offset); 107 r = 0; 108 break; 109 } 110 trace_iotkit_sysinfo_read(offset, r, size); 111 return r; 112} --- 17 unchanged lines hidden (view full) --- 130 .valid.min_access_size = 1, 131 .valid.max_access_size = 4, 132}; 133 134static Property iotkit_sysinfo_props[] = { 135 DEFINE_PROP_UINT32("SYS_VERSION", IoTKitSysInfo, sys_version, 0), 136 DEFINE_PROP_UINT32("SYS_CONFIG", IoTKitSysInfo, sys_config, 0), 137 DEFINE_PROP_UINT32("sse-version", IoTKitSysInfo, sse_version, 0), |
138 DEFINE_PROP_UINT32("IIDR", IoTKitSysInfo, iidr, 0), |
|
117 DEFINE_PROP_END_OF_LIST() 118}; 119 120static void iotkit_sysinfo_init(Object *obj) 121{ 122 SysBusDevice *sbd = SYS_BUS_DEVICE(obj); 123 IoTKitSysInfo *s = IOTKIT_SYSINFO(obj); 124 --- 41 unchanged lines hidden --- | 139 DEFINE_PROP_END_OF_LIST() 140}; 141 142static void iotkit_sysinfo_init(Object *obj) 143{ 144 SysBusDevice *sbd = SYS_BUS_DEVICE(obj); 145 IoTKitSysInfo *s = IOTKIT_SYSINFO(obj); 146 --- 41 unchanged lines hidden --- |