diff options
| author | Vacha Bhavsar <vacha.bhavsar@oss.qualcomm.com> | 2025-09-09 16:10:10 +0000 |
|---|---|---|
| committer | Peter Maydell <peter.maydell@linaro.org> | 2025-09-16 17:31:54 +0100 |
| commit | 71cda981208ebcfa403d8e3451d1d5bdef0b0931 (patch) | |
| tree | 8280d9a16e0dc6efc1baac929748f2cde2b1b0ad /gdbstub/internals.h | |
| parent | 19f6dcfe6b8b2a3523362812fc696ab83050d316 (diff) | |
| download | focaccia-qemu-71cda981208ebcfa403d8e3451d1d5bdef0b0931.tar.gz focaccia-qemu-71cda981208ebcfa403d8e3451d1d5bdef0b0931.zip | |
target/arm: Increase MAX_PACKET_LENGTH for SME ZA remote gdb debugging
This patch increases the value of the MAX_PACKET_LEGNTH to 131104 from 4096 to allow the GDBState.line_buf to be large enough to accommodate the full contents of the SME ZA storage when the vector length is maximal. This is in preparation for a related patch that allows SME register visibility through remote GDB debugging. Signed-off-by: Vacha Bhavsar <vacha.bhavsar@oss.qualcomm.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-id: 20250909161012.2561593-2-vacha.bhavsar@oss.qualcomm.com [PMM: fixed up comment formatting] Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'gdbstub/internals.h')
| -rw-r--r-- | gdbstub/internals.h | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/gdbstub/internals.h b/gdbstub/internals.h index bf5a5c6302..92466b28c1 100644 --- a/gdbstub/internals.h +++ b/gdbstub/internals.h @@ -11,7 +11,27 @@ #include "exec/cpu-common.h" -#define MAX_PACKET_LENGTH 4096 +/* + * Most "large" transfers (e.g. memory reads, feature XML + * transfer) have mechanisms in the gdb protocol for splitting + * them. However, register values in particular cannot currently + * be split. This packet size must therefore be at least big enough + * for the worst-case register size. Currently that is Arm SME + * ZA storage with a 256x256 byte value. We also must account + * for the conversion from raw data to hex in gdb_memtohex(), + * which writes 2 * size bytes, and for other protocol overhead + * including command, register number and checksum which add + * another 4 bytes of overhead. However, to be consistent with + * the changes made in gdbserver to address this same requirement, + * we add a total of 32 bytes to account for protocol overhead + * (unclear why specifically 32 bytes), bringing the value of + * MAX_PACKET_LENGTH to 2 * 256 * 256 + 32 = 131104. + * + * The commit making this change for gdbserver can be found here: + * https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h= + * b816042e88583f280ad186ff124ab84d31fb592b + */ +#define MAX_PACKET_LENGTH 131104 /* * Shared structures and definitions |