{"id":2197058,"url":"http://patchwork.ozlabs.org/api/1.0/covers/2197058/?format=json","project":{"id":69,"url":"http://patchwork.ozlabs.org/api/1.0/projects/69/?format=json","name":"QEMU powerpc development","link_name":"qemu-ppc","list_id":"qemu-ppc.nongnu.org","list_email":"qemu-ppc@nongnu.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20260216225228.53959-1-philmd@linaro.org>","date":"2026-02-16T22:52:16","name":"[00/11] monitor/hmp: Automatically handle gdb-xml exposed registers","submitter":{"id":85046,"url":"http://patchwork.ozlabs.org/api/1.0/people/85046/?format=json","name":"Philippe Mathieu-Daudé","email":"philmd@linaro.org"},"series":[{"id":492360,"url":"http://patchwork.ozlabs.org/api/1.0/series/492360/?format=json","date":"2026-02-16T22:52:16","name":"monitor/hmp: Automatically handle gdb-xml exposed registers","version":1,"mbox":"http://patchwork.ozlabs.org/series/492360/mbox/"}],"headers":{"Return-Path":"<qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=DO4J3m4c;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists.gnu.org;\n envelope-from=qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists.gnu.org (lists.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fFJ2K6D8Jz1xwD\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 17 Feb 2026 09:52:41 +1100 (AEDT)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-ppc-bounces@nongnu.org>)\n\tid 1vs7SG-0001ho-Bd; Mon, 16 Feb 2026 17:52:37 -0500","from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <philmd@linaro.org>) id 1vs7SE-0001hQ-43\n for qemu-ppc@nongnu.org; Mon, 16 Feb 2026 17:52:35 -0500","from mail-wm1-x336.google.com ([2a00:1450:4864:20::336])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <philmd@linaro.org>) id 1vs7SC-0006Qp-Fi\n for qemu-ppc@nongnu.org; Mon, 16 Feb 2026 17:52:33 -0500","by mail-wm1-x336.google.com with SMTP id\n 5b1f17b1804b1-48370174e18so23983145e9.2\n for <qemu-ppc@nongnu.org>; Mon, 16 Feb 2026 14:52:31 -0800 (PST)","from localhost.localdomain (88-187-86-199.subs.proxad.net.\n [88.187.86.199]) by smtp.gmail.com with ESMTPSA id\n ffacd0b85a97d-43796ad0166sm30751164f8f.35.2026.02.16.14.52.29\n (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);\n Mon, 16 Feb 2026 14:52:29 -0800 (PST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1771282351; x=1771887151; darn=nongnu.org;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:from:to:cc:subject:date:message-id:reply-to;\n bh=FvpYsvVz0njvhav/k+RkLNonp6k+us6Bz/UhZrU2Jio=;\n b=DO4J3m4cr8QPr+wV2TA6QEmk+MPXOQJilBoC7x3vufUup56Ybh0u6/+4ohEY5O6Iou\n Se2TneRm3DOJj14b4Rv0cfb7C0oVPoDlihtnuAtrdPIYvU1+VN+gbDch5DvU65tC4wh/\n 4MdbbHLbsRlzcSAX9CaZxjOVGrQfAPoMGSd6KKYtbR8Yo+vwMzSL+H3wL6zo1QG7oN0L\n uBw4HjkhADXVQhJSbcpfyz6F/guS2/OtBwRchT8yFjiUyVG5/fX47cAGZRCHkAvmjrc6\n CTGHL4wTLel+v85RMUrPqzLWvQgLqT1T5ahZk7F5hh8OOBYOoL/LtFSxachWYxFSg+Sz\n 7HJA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1771282351; x=1771887151;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=FvpYsvVz0njvhav/k+RkLNonp6k+us6Bz/UhZrU2Jio=;\n b=juGxV8svnkHB6SSIl9XFuzblWzrtLPhbRUFQz/Z2YJmuAOtAgwDD1etVWQzVAjJiQ1\n xRL8E5Sl5yYde5Ob3J/XMruXOFdlb6dZ0amHxEGdJUI0oZ3t9ArQ0aNPh2eo37XpxSHk\n 04cexBKw/0j8seuA18pdYoItn30HOZsZBSvXT069MPW8LL2YBJVHW/vwXkBHaIadKA+D\n 8QudQm+7wXkHN+rtZDAYJSPqJX6zhGhFZss8DSxEhUOVqvilfoYqZcCAfIes52lcoKp/\n +5kgyyi0qfr3uaZBAJ9hRSGVyTwuhSTpgejYyLAfN7Pfay4bVLvS98UETLqUyFJ9St1D\n uXiw==","X-Forwarded-Encrypted":"i=1;\n AJvYcCVNpWgehUMiow1tP1aHN7q/GZp2RkhHK48ZCLkRW55NuxMhvBHIudnHUH5IdHQ8+SrUzdgRXmm41w==@nongnu.org","X-Gm-Message-State":"AOJu0YyAcMu+fZDRk4JiD+3bflsWvtMSc+YHK93l3159wO7C2HInvLay\n GB9K9v4KKbmuZ0vE4CCX3vxmFPNIAa/rZ412ScVbA9CA91eY1FZpYpGc3HFzlv/UHb8=","X-Gm-Gg":"AZuq6aJuEUj1n7tdbNB95cn6aJLjcQJBcHoqLBoAsC/83Iu1GPFfMm2HnFqwjyfaqBD\n bpia1Oe1S8ZPQtfqqCfXhOEPWM3SnDlvb5zt71ED+CLYKwrMEKLNSqO/YJC0JHlv7kVIfK/O3da\n 1ZQPZhEBg4Tji5g67P1atJxSu/7n+iGka6TX5/dWrtdVzjf7TGOWtkO9xtqTjns7H/QVjRsitJ9\n dm0tJpm6A8BLajz3t9H5IQ0ZFhJlyeGI4kxExN/8u3uT4Xyb3HppKA2gz5CK1gIMTgGwHuyVq0A\n HPuIZ+MEY5x9eD18+kU8qUcSmWKau6oDQLUuLNyG9XXukR6m8uKoJOUzVdSCfLjrfz3jeHsnkt7\n CgSIshSWN6c/gnBMpuA5V37rCsao28UlWWdvBpk+M3UulhIbga3IThWPZ64uLS/l36eUqYiTU6V\n sVwCc8ZUDm3wGOpEt8Z3A4NPSRdmmpLqLBNNYeWklz4hiwc6B1uuGgMDFbQkDQcTAFnhsLeVNd/\n 1udTNTvEi0=","X-Received":"by 2002:a05:600c:8b30:b0:480:1c69:9d36 with SMTP id\n 5b1f17b1804b1-48379bd7462mr165446135e9.17.1771282350586;\n Mon, 16 Feb 2026 14:52:30 -0800 (PST)","From":"=?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>","To":"qemu-devel@nongnu.org","Cc":"Laurent Vivier <laurent@vivier.eu>,\n \"Dr. David Alan Gilbert\" <dave@treblig.org>,\n Nicholas Piggin <npiggin@gmail.com>, Chinmay Rath <rathc@linux.ibm.com>,\n\t=?utf-8?q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>,\n Zhao Liu <zhao1.liu@intel.com>,\n Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,\n Pierrick Bouvier <pierrick.bouvier@linaro.org>,\n Artyom Tarasenko <atar4qemu@gmail.com>,\n Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>,\n Gustavo Romero <gustavo.romero@linaro.org>,\n Paolo Bonzini <pbonzini@redhat.com>, unisono@quyllur.org, =?utf-8?q?Philipp?=\n\t=?utf-8?q?e_Mathieu-Daud=C3=A9?= <philmd@linaro.org>, qemu-ppc@nongnu.org","Subject":"[PATCH 00/11] monitor/hmp: Automatically handle gdb-xml exposed\n registers","Date":"Mon, 16 Feb 2026 23:52:16 +0100","Message-ID":"<20260216225228.53959-1-philmd@linaro.org>","X-Mailer":"git-send-email 2.52.0","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"8bit","Received-SPF":"pass client-ip=2a00:1450:4864:20::336;\n envelope-from=philmd@linaro.org; helo=mail-wm1-x336.google.com","X-Spam_score_int":"-20","X-Spam_score":"-2.1","X-Spam_bar":"--","X-Spam_report":"(-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=ham autolearn_force=no","X-Spam_action":"no action","X-BeenThere":"qemu-ppc@nongnu.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<qemu-ppc.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-ppc>,\n <mailto:qemu-ppc-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-ppc>","List-Post":"<mailto:qemu-ppc@nongnu.org>","List-Help":"<mailto:qemu-ppc-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-ppc>,\n <mailto:qemu-ppc-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org"},"content":"MonitorDef registers parsing is one of the oldest APIs in QEMU,\nthus predates gdbstub and XML register files. The latters are\nmaintained by the GDB/binutils project and are more up-to-date.\nGetting the target register list from them allows to expose\nall accessible registers to the HMP commands.\n\nThis series adds gdb_get_register() to monitor to use XML\ngenerated registers, and remove the legacy MonitorDef entries\nwhich became unreachable.\n\nFirst we need to have the SPARC target better follow the\ngdb-xml API.\n\nPhilippe Mathieu-Daudé (11):\n  target/sparc: Introduce sparc_cpu_register_gdb_regs() stub\n  target/sparc: Restore 'gdb-xml/sparc64-cp0.xml'\n  target/sparc: Restore 'gdb-xml/sparc64-fpu.xml'\n  target/sparc: Restore 'gdb-xml/sparc64-cpu.xml'\n  target/sparc: Expose gdbstub registers to sparc32plus target\n  target/sparc: Expose gdbstub registers to sparc32 targets\n  monitor/hmp: Handle gdb-xml exposed registers via  gdb_get_register()\n  target/sparc: Remove MonitorDef register entries available via gdbstub\n  target/i386: Remove MonitorDef register entries available via gdbstub\n  target/m68k: Remove MonitorDef register entries available via gdbstub\n  target/ppc: Remove MonitorDef register entries available via gdbstub\n\n configs/targets/sparc-linux-user.mak          |   1 +\n configs/targets/sparc-softmmu.mak             |   1 +\n configs/targets/sparc32plus-linux-user.mak    |   1 +\n configs/targets/sparc64-linux-user.mak        |   2 +-\n configs/targets/sparc64-softmmu.mak           |   2 +-\n target/sparc/cpu.h                            |   1 +\n monitor/hmp.c                                 |  49 ++-\n target/i386/monitor.c                         |  35 ---\n target/m68k/monitor.c                         |  18 --\n target/ppc/ppc-qmp-cmds.c                     |   5 -\n target/sparc/cpu.c                            |   9 +-\n target/sparc/gdbstub.c                        | 295 +++++++++++-------\n target/sparc/monitor.c                        | 107 -------\n gdb-xml/sparc32-cp0.xml                       |  18 ++\n gdb-xml/sparc32-cpu.xml                       |  42 +++\n gdb-xml/sparc32-fpu.xml                       |  42 +++\n gdb-xml/sparc64-cp0.xml                       |  16 +\n gdb-xml/sparc64-cpu.xml                       |  42 +++\n gdb-xml/{sparc64-core.xml => sparc64-fpu.xml} |  44 +--\n 19 files changed, 403 insertions(+), 327 deletions(-)\n create mode 100644 gdb-xml/sparc32-cp0.xml\n create mode 100644 gdb-xml/sparc32-cpu.xml\n create mode 100644 gdb-xml/sparc32-fpu.xml\n create mode 100644 gdb-xml/sparc64-cp0.xml\n create mode 100644 gdb-xml/sparc64-cpu.xml\n rename gdb-xml/{sparc64-core.xml => sparc64-fpu.xml} (59%)"}