@samitouri / QOSamiQemu / commits / d99f8e511a

hw/misc/iotkit-sysinfo.c: add SSE-310 support

Add SSE-310 PIDR and CIDR registers. Add sys_config2 register and always report 0 on read as we do not implement the NPU. Reviewed-by: Owen Giles <owen.giles@hpe.com> Reviewed-by: Robert Elliott <elliott@hpe.com> Signed-off-by: Simon Xu <simonxhy0404@gmail.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-Id: <20260805153005.9989-8-simonxhy0404@gmail.com> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Simon Xu committed Aug 17, 2026 at 19:26 UTC d99f8e511a0fdd1b0743f0a63acc3e034271a4de
1 file changed +21 -1
hw/misc/iotkit-sysinfo.c
+21 -1
@@ -31,6 +31,7 @@
31 REG32(SYS_VERSION, 0x0)
32 REG32(SYS_CONFIG, 0x4)
33 REG32(SYS_CONFIG1, 0x8)
34 +REG32(SYS_CONFIG2, 0xc)
35 REG32(IIDR, 0xfc8)
36 REG32(PID4, 0xfd0)
37 REG32(PID5, 0xfd4)
@@ -58,6 +59,12 @@ static const int sysinfo_sse300_id[] = {
59 0x0d, 0xf0, 0x05, 0xb1, /* CID0..CID3 */
60 };
61
62 +static const int sysinfo_sse310_id[] = {
63 + 0x04, 0x00, 0x00, 0x00, /* PID4..PID7 */
64 + 0x58, 0xb8, 0x2b, 0x00, /* PID0..PID3 */
65 + 0x0d, 0xf0, 0x05, 0xb1, /* CID0..CID3 */
66 +};
67 +
68 static uint64_t iotkit_sysinfo_read(void *opaque, hwaddr offset,
69 unsigned size)
70 {
@@ -68,13 +75,22 @@ static uint64_t iotkit_sysinfo_read(void *opaque, hwaddr offset,
75 case A_SYS_VERSION:
76 r = s->sys_version;
77 break;
71 -
78 case A_SYS_CONFIG:
79 r = s->sys_config;
80 break;
81 case A_SYS_CONFIG1:
82 switch (s->sse_version) {
83 case ARMSSE_SSE300:
84 + case ARMSSE_SSE310:
85 + return 0;
86 + break;
87 + default:
88 + goto bad_read;
89 + }
90 + break;
91 + case A_SYS_CONFIG2:
92 + switch (s->sse_version) {
93 + case ARMSSE_SSE310:
94 return 0;
95 break;
96 default:
@@ -84,6 +100,7 @@ static uint64_t iotkit_sysinfo_read(void *opaque, hwaddr offset,
100 case A_IIDR:
101 switch (s->sse_version) {
102 case ARMSSE_SSE300:
103 + case ARMSSE_SSE310:
104 return s->iidr;
105 break;
106 default:
@@ -95,6 +112,9 @@ static uint64_t iotkit_sysinfo_read(void *opaque, hwaddr offset,
112 case ARMSSE_SSE300:
113 r = sysinfo_sse300_id[(offset - A_PID4) / 4];
114 break;
115 + case ARMSSE_SSE310:
116 + r = sysinfo_sse310_id[(offset - A_PID4) / 4];
117 + break;
118 default:
119 r = sysinfo_id[(offset - A_PID4) / 4];
120 break;