sme: Add support for SME
authorLuis Machado <luis.machado@arm.com>
Tue, 15 Nov 2022 09:07:09 +0000 (09:07 +0000)
committerLuis Machado <luis.machado@arm.com>
Wed, 4 Oct 2023 15:23:40 +0000 (16:23 +0100)
commitb816042e88583f280ad186ff124ab84d31fb592b
treef44ad5f79015a044434f5091612a677c71e8ef0f
parent223dbdd276cf0b223ec96f8896d369af57d7387c
sme: Add support for SME

Enable SME support in gdbserver by adjusting the usual fields.  There is
not much to this patch because the code is either in gdb or it is shared
between gdbserver and gdb.  One exception is the bump to gdbserver's
PBUFSIZ from 18432 to 131104.

Since the ZA register can be quite big (256 * 256 bytes), the g/G remote
packet will also become quite big

From gdbserver/tdesc.cc:init_target_desc, I estimated the new size should
be at least (2 * 256 * 256 + 32), which yields 131104.

It is also unlikely we will find a process starting up with SVL set to 256.

Ideally we'd adjust the packet size dynamically based on what we need, but
for now this should do.

Please note we have the same limitation for SME that we have for SVE, and
that is the fact gdbserver cannot communicate vector length changes to gdb
via the remote protocol.

Thiago is working on this improvement, which hopefully will be able to be
adapted to SME in an easy way.

Co-Authored-By: Ezra Sitorus <ezra.sitorus@arm.com>
Reviewed-by: Thiago Jung Bauermann <thiago.bauermann@linaro.org>
gdbserver/linux-aarch64-low.cc
gdbserver/linux-aarch64-tdesc.cc
gdbserver/server.h