From caa0e960979eada7518eeadc3757a0d2fb9765f6 Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Fri, 17 Oct 2025 16:30:27 +0100 Subject: [PATCH] tests/tcg/aarch64: Add test case for SME2 gdbstub registers MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Test the SME2 register exposure over gdbstub, in the same way we already do for SME. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé Message-id: 20251017153027.969016-4-peter.maydell@linaro.org --- tests/tcg/aarch64/Makefile.target | 9 ++++++- tests/tcg/aarch64/gdbstub/test-sme2.py | 36 ++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 tests/tcg/aarch64/gdbstub/test-sme2.py diff --git a/tests/tcg/aarch64/Makefile.target b/tests/tcg/aarch64/Makefile.target index 55ce34e45e..9fa8687453 100644 --- a/tests/tcg/aarch64/Makefile.target +++ b/tests/tcg/aarch64/Makefile.target @@ -164,7 +164,14 @@ run-gdbstub-sysregs-sme-tile-slice: sysregs "selected gdb ($(GDB)) does not support SME ZA tile slices") endif -EXTRA_RUNS += run-gdbstub-sysregs-sme run-gdbstub-sysregs-sme-tile-slice +run-gdbstub-sysregs-sme2: sysregs + $(call run-test, $@, $(GDB_SCRIPT) \ + --gdb $(GDB) \ + --qemu $(QEMU) --qargs "$(QEMU_OPTS)" \ + --bin $< --test $(AARCH64_SRC)/gdbstub/test-sme2.py, \ + gdbstub SME ZA tile slice support) + +EXTRA_RUNS += run-gdbstub-sysregs-sme run-gdbstub-sysregs-sme-tile-slice run-gdbstub-sysregs-sme2 endif diff --git a/tests/tcg/aarch64/gdbstub/test-sme2.py b/tests/tcg/aarch64/gdbstub/test-sme2.py new file mode 100644 index 0000000000..74a045febf --- /dev/null +++ b/tests/tcg/aarch64/gdbstub/test-sme2.py @@ -0,0 +1,36 @@ +# +# Copyright (C) 2025 Linaro Ltd. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +# +# Test the SME2 registers are visible and changeable via gdbstub +# +# This is launched via tests/guest-debug/run-test.py +# + +import gdb +from test_gdbstub import main, report + + +def run_test(): + """Test reads and writes of the SME2 registers""" + frame = gdb.selected_frame() + rname = "zt0" + zt0 = frame.read_register(rname) + report(True, "Reading %s" % rname) + + # Writing to the ZT0 register, byte by byte. + for i in range(0, 64): + cmd = "set $zt0[%d] = 0x01" % (i) + gdb.execute(cmd) + report(True, "%s" % cmd) + + # Reading from the ZT0 register, byte by byte. + for i in range(0, 64): + reg = "$zt0[%d]" % (i) + v = gdb.parse_and_eval(reg) + report(str(v.type) == "uint8_t", "size of %s" % (reg)) + report(v == 0x1, "%s is 0x%x" % (reg, 0x1)) + +main(run_test, expected_arch="aarch64") -- 2.47.3