master
py 36 lines 934 Bytes
Raw
1 #
2 # Copyright (C) 2025 Linaro Ltd.
3 #
4 # SPDX-License-Identifier: GPL-2.0-or-later
5
6 #
7 # Test the SME2 registers are visible and changeable via gdbstub
8 #
9 # This is launched via tests/guest-debug/run-test.py
10 #
11
12 import gdb
13 from test_gdbstub import main, report
14
15
16 def run_test():
17 """Test reads and writes of the SME2 registers"""
18 frame = gdb.selected_frame()
19 rname = "zt0"
20 zt0 = frame.read_register(rname)
21 report(True, "Reading %s" % rname)
22
23 # Writing to the ZT0 register, byte by byte.
24 for i in range(0, 64):
25 cmd = "set $zt0[%d] = 0x01" % (i)
26 gdb.execute(cmd)
27 report(True, "%s" % cmd)
28
29 # Reading from the ZT0 register, byte by byte.
30 for i in range(0, 64):
31 reg = "$zt0[%d]" % (i)
32 v = gdb.parse_and_eval(reg)
33 report(str(v.type) == "uint8_t", "size of %s" % (reg))
34 report(v == 0x1, "%s is 0x%x" % (reg, 0x1))
35
36 main(run_test, expected_arch="aarch64")