You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
qemu/target/arm
Vacha Bhavsar 030f0ba117 target/arm: Added support for SME register exposure to GDB
The QEMU GDB stub does not expose the ZA storage SME register to GDB
via the remote serial protocol, which can be a useful functionality
to debug SME code.  To provide this functionality for AArch64
targets, this patch registers the SME register set with the GDB stub.
To do so, this patch implements the aarch64_gdb_get_sme_reg() and
aarch64_gdb_set_sme_reg() functions to specify how to get and set the
SME registers, and the arm_gen_dynamic_smereg_feature() function to
generate the target description in XML format to indicate the target
architecture supports SME.  Finally, this patch includes a
dyn_smereg_feature structure to hold this GDB XML description of the
SME registers for each CPU.

Note that according to the GDB documentation the ZA register is
defined as a vector of bytes; however the target description xml
retrieved when using gdb natively on a host with SME capabilities
represents the ZA register as a vector of vectors of bytes, so this
is a GDB documentation error.  We follow GDB's own gdbstub
implementation and represent the ZA register as a vector of vectors
of bytes as is done by GDB here:

5cce2b7006/gdb/features/aarch64-sme.c (L50)

Signed-off-by: Vacha Bhavsar <vacha.bhavsar@oss.qualcomm.com>
Message-id: 20250909161012.2561593-3-vacha.bhavsar@oss.qualcomm.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
[PMM: fixed minor checkpatch nits]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2 days ago
..
hvf add cpu_test_interrupt()/cpu_set_interrupt() helpers and use them tree wide 3 weeks ago
tcg target/arm: Drop ARM_FEATURE_XSCALE handling 2 days ago
Kconfig kconfig: express dependency of individual boards on libfdt 1 year ago
arch_dump.c target/arm/arch_dump: remove TARGET_AARCH64 conditionals 4 months ago
arm-powerctl.c include: Rename sysemu/ -> system/ 9 months ago
arm-powerctl.h target/arm/arm-powerctl: Add new arm_set_cpu_on_and_reset() 7 years ago
arm-qmp-cmds.c target/qmp: Use target_cpu_type() 2 months ago
common-semi-target.h target/arm/common-semi-target.h: Remove unnecessary boot.h include 2 years ago
cortex-regs.c target/arm: Saturate L2CTLR_EL1 core count field rather than overflowing 2 years ago
cpregs-pmu.c target/arm: Trap PMCR when MDCR_EL2.TPMCR is set 3 weeks ago
cpregs.h target/arm: Implement FEAT_ATS1A 2 days ago
cpu-features.h target/arm: Implement FEAT_ATS1A 2 days ago
cpu-param.h accel/tcg: Move TARGET_TAGGED_ADDRESSES to TCGCPUOps.untagged_addr 5 months ago
cpu-qom.h target/arm: Remove TYPE_AARCH64_CPU 4 months ago
cpu-sysregs.h arm/cpu: Add sysreg definitions in cpu-sysregs.h 3 months ago
cpu-sysregs.h.inc arm/cpu: store clidr into the idregs array 2 months ago
cpu.c target/arm: Drop ARM_FEATURE_IWMMXT handling 2 days ago
cpu.h target/arm: Added support for SME register exposure to GDB 2 days ago
cpu32-stubs.c target/arm/cpu: remove TARGET_AARCH64 in arm_cpu_finalize_features 4 months ago
cpu64.c arm/cpu: store clidr into the idregs array 2 months ago
debug_helper.c target/arm: Reinstate bogus AArch32 DBGDTRTX register for migration compat 2 months ago
gdbstub.c target/arm: Added support for SME register exposure to GDB 2 days ago
gdbstub64.c target/arm: Added support for SME register exposure to GDB 2 days ago
gtimer.h target/arm: Document the architectural names of our GTIMERs 6 months ago
helper.c target/arm: Drop ARM_FEATURE_XSCALE handling 2 days ago
helper.h target/arm/helper: extract common helpers 4 months ago
hvf-stub.c target/arm/hvf_arm: Avoid using poisoned CONFIG_HVF definition 4 months ago
hvf_arm.h target/arm/hvf: Include missing 'cpu-qom.h' header 4 months ago
hyp_gdbstub.c target/arm: Replace target_ulong -> vaddr for HWBreakpoint 4 months ago
idau.h Use DECLARE_*CHECKER* macros 5 years ago
internals.h target/arm: Added support for SME register exposure to GDB 2 days ago
kvm-consts.h exec: Rename NEED_CPU_H -> COMPILING_PER_TARGET 1 year ago
kvm-stub.c target/arm/kvm: Add helper to detect EL2 when using KVM 2 months ago
kvm.c arm/kvm: report registers we failed to set 2 days ago
kvm_arm.h target/arm: Provide always-false kvm_arm_*_supported() stubs for usermode 2 months ago
machine.c target/arm: Drop ARM_FEATURE_IWMMXT handling 2 days ago
meson.build target/arm: Split out performance monitor regs to cpregs-pmu.c 2 months ago
multiprocessing.h target/arm: Expose arm_cpu_mp_affinity() in 'multiprocessing.h' header 2 years ago
ptw.c target/arm: Drop ARM_FEATURE_XSCALE handling 2 days ago
syndrome.h target/arm: Implement SME2 ZERO ZT0 3 months ago
tcg-stubs.c target/arm: Drop stub for define_tlb_insn_regs 2 months ago
trace-events target/arm: Implement FEAT_ECV CNTPOFF_EL2 handling 2 years ago
trace.h trace: switch position of headers to what Meson requires 5 years ago
vfp_fpscr.c target/arm: Rename vfp_helper.c to vfp_fpscr.c 7 months ago