qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/16] Add Multi-Core Debug (MCD) API support
@ 2025-03-10 15:04 Mario Fleischmann
  2025-03-10 15:04 ` [PATCH 01/16] mcd: Introduce Multi-Core Debug (MCD) API Mario Fleischmann
                   ` (16 more replies)
  0 siblings, 17 replies; 31+ messages in thread
From: Mario Fleischmann @ 2025-03-10 15:04 UTC (permalink / raw)
  To: qemu-devel
  Cc: alex.bennee, philmd, armbru, christian.boenig, Mario Fleischmann

This patch series introduces support for the Multi-Core Debug (MCD) API, a
commonly used debug interface by emulators. The MCD API, defined through a
header file, consists of 54 functions for implementing debug and trace.
However, since it is a header-file-only interface, MCD does not specify a
communication protocol. We get around this limitation by following a remote
procedure call approach using QMP. The client stub corresponding to this
implementation can be found at https://gitlab.com/lauterbach/mcdrefsrv

This series is the successor to:
"[PATCH v5 00/18] first version of mcdstub"
(https://patchew.org/QEMU/20231220162555.19545-1-nicolas.eder@lauterbach.com/)

* Architecture-independent MCD implementation
* QMP instead of custom TCP protocol

qemu-system-<arch> [options] -qmp tcp::1235,server=on,wait=off

* Architecture-independent QTest test suite

V=1 QTEST_QEMU_BINARY="./qemu-system-<arch> [options]" tests/qtest/mcd-test

* Architecture-specific tests can be found at the client stub

Mario Fleischmann (16):
  mcd: Introduce Multi-Core Debug (MCD) API
  mcd: Introduce MCD server
  mcd: Implement target initialization API
  mcd: Implement server connection API
  mcd: Implement target system query
  mcd: Implement core connection control
  mcd: Implement memory space query
  gdbstub: Expose GDBRegisterState
  mcd: Implement register query
  mcd: Implement runstate control
  mcd test: Implement core state query
  gdbstub: Expose gdb_write_register
  mcd: Implement register/memory access
  mcd: Implement single stepping
  mcd: Implement trigger control
  mcd: Implement reset control

 MAINTAINERS               |    9 +
 docs/interop/index.rst    |    1 +
 docs/interop/mcd.rst      |   58 +
 gdbstub/gdbstub.c         |   15 +-
 include/exec/gdbstub.h    |   18 +-
 mcd/libmcd_qapi.c         |  506 +++++
 mcd/libmcd_qapi.h         |   81 +
 mcd/mcd_api.h             | 3963 +++++++++++++++++++++++++++++++++++++
 mcd/mcdserver.c           | 2242 +++++++++++++++++++++
 mcd/mcdstub_qapi.c        |  974 +++++++++
 mcd/meson.build           |   12 +
 meson.build               |    1 +
 qapi/mcd.json             | 2366 ++++++++++++++++++++++
 qapi/meson.build          |    1 +
 qapi/qapi-schema.json     |    1 +
 tests/qtest/libmcd-test.c |  379 ++++
 tests/qtest/libmcd-test.h |   68 +
 tests/qtest/mcd-test.c    |  644 ++++++
 tests/qtest/meson.build   |    2 +
 19 files changed, 11331 insertions(+), 10 deletions(-)
 create mode 100644 docs/interop/mcd.rst
 create mode 100644 mcd/libmcd_qapi.c
 create mode 100644 mcd/libmcd_qapi.h
 create mode 100644 mcd/mcd_api.h
 create mode 100644 mcd/mcdserver.c
 create mode 100644 mcd/mcdstub_qapi.c
 create mode 100644 mcd/meson.build
 create mode 100644 qapi/mcd.json
 create mode 100644 tests/qtest/libmcd-test.c
 create mode 100644 tests/qtest/libmcd-test.h
 create mode 100644 tests/qtest/mcd-test.c

-- 
2.34.1



^ permalink raw reply	[flat|nested] 31+ messages in thread

end of thread, other threads:[~2025-04-15  8:07 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-10 15:04 [PATCH 00/16] Add Multi-Core Debug (MCD) API support Mario Fleischmann
2025-03-10 15:04 ` [PATCH 01/16] mcd: Introduce Multi-Core Debug (MCD) API Mario Fleischmann
2025-03-10 15:04 ` [PATCH 02/16] mcd: Introduce MCD server Mario Fleischmann
2025-03-10 15:04 ` [PATCH 03/16] mcd: Implement target initialization API Mario Fleischmann
2025-03-10 15:04 ` [PATCH 04/16] mcd: Implement server connection API Mario Fleischmann
2025-03-10 15:04 ` [PATCH 05/16] mcd: Implement target system query Mario Fleischmann
2025-03-10 15:05 ` [PATCH 06/16] mcd: Implement core connection control Mario Fleischmann
2025-03-10 15:05 ` [PATCH 07/16] mcd: Implement memory space query Mario Fleischmann
2025-03-10 15:05 ` [PATCH 08/16] gdbstub: Expose GDBRegisterState Mario Fleischmann
2025-03-10 15:05 ` [PATCH 09/16] mcd: Implement register query Mario Fleischmann
2025-03-10 15:05 ` [PATCH 10/16] mcd: Implement runstate control Mario Fleischmann
2025-03-10 15:05 ` [PATCH 11/16] mcd test: Implement core state query Mario Fleischmann
2025-03-10 15:05 ` [PATCH 12/16] gdbstub: Expose gdb_write_register Mario Fleischmann
2025-03-10 15:05 ` [PATCH 13/16] mcd: Implement register/memory access Mario Fleischmann
2025-04-09  9:00   ` Mario Fleischmann
2025-03-10 15:05 ` [PATCH 14/16] mcd: Implement single stepping Mario Fleischmann
2025-03-10 15:05 ` [PATCH 15/16] mcd: Implement trigger control Mario Fleischmann
2025-03-10 15:05 ` [PATCH 16/16] mcd: Implement reset control Mario Fleischmann
2025-04-07 12:33 ` [PATCH 00/16] Add Multi-Core Debug (MCD) API support Markus Armbruster
2025-04-07 17:26   ` Mario Fleischmann
2025-04-08  7:00     ` Markus Armbruster
2025-04-08  8:09       ` Mario Fleischmann
2025-04-08  8:48         ` Markus Armbruster
2025-04-08 11:33           ` Alex Bennée
2025-04-08 11:58             ` Markus Armbruster
2025-04-08 14:16               ` Alex Bennée
2025-04-08 14:36                 ` Markus Armbruster
2025-04-09  8:46                   ` Mario Fleischmann
2025-04-09  9:31                     ` Alex Bennée
2025-04-09 11:37                       ` Markus Armbruster
2025-04-15  8:06                         ` Mario Fleischmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).