From nobody Wed Nov 5 16:43:34 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1496481644230671.5397013219866; Sat, 3 Jun 2017 02:20:44 -0700 (PDT) Received: from localhost ([::1]:53022 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dH5Ef-00025u-Gy for importer@patchew.org; Sat, 03 Jun 2017 05:20:41 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60007) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dH5Dj-0001eQ-W5 for qemu-devel@nongnu.org; Sat, 03 Jun 2017 05:19:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dH5Dg-0006pS-RL for qemu-devel@nongnu.org; Sat, 03 Jun 2017 05:19:43 -0400 Received: from mail-lf0-x243.google.com ([2a00:1450:4010:c07::243]:34969) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dH5Dg-0006o1-JQ; Sat, 03 Jun 2017 05:19:40 -0400 Received: by mail-lf0-x243.google.com with SMTP id v20so3307840lfa.2; Sat, 03 Jun 2017 02:19:38 -0700 (PDT) Received: from octofox.net ([5.19.183.212]) by smtp.gmail.com with ESMTPSA id u18sm5531641lff.10.2017.06.03.02.19.35 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 03 Jun 2017 02:19:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=YlcKsO7TtXKG/1ZfR23kK5eivb9nV8yDIH7Nd/4odDg=; b=Puhpw+v0Yv0UatD0y4lVZC9mgxvFXpkGtw+BRf630KTnWCfq8fdDrvj6rBiZPFN3BX +d9uC4sVT3NhjoLxZz8FT/69D1LF9MNN1jisr5sxXdtsUvPdEhDFaVgeJJP9yktMf0mx STjAPTOH3fJGN3qcAYnUgrsKKZg6qMjRDjaSVR1Sr7laUHXh9GnEoSpS9o2lKoZ9/UM/ wmNc3Sg6RfhmcKyO9FZu+H1xdAQmLL5QebaFCr1IR1Tg2tzs6CHS+X/iB+mrOqnevU/X ziZpWJr4H/Fbv7RHe1lB+czR+QfOsljq9enYqP/9htbsQRyFJsu4FC0ZgbX7ZVryoC/H 1Qcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=YlcKsO7TtXKG/1ZfR23kK5eivb9nV8yDIH7Nd/4odDg=; b=Wa/KREaQEHj3XOycY19cUPk7tDd7/t5R4cNtcbLO/zsFaDccX83u637msV34bxNHZK ex1PIzeP6q2GwDlvxtHiU5qZstMNj7sLWIo7KvQY30hl9ZtuhfiMqqdhlXGak4n2t2vF xn3/T6/GTV9pI8ddNoX9vPiSIVYzsTZMSZK6jrF5H/9q6rPAu6hvT116cK3o0jHIR8wG FZ98YgSwST5/ITWQ+jKrfWv0mJZ5JfncD4xOA2wW3M0c9QWOoZiiAivPbuPiKyjNKpJs NBQg2TMpbxGM8n8G512DeBPQsevVkA/gPsDH1UKUFNz2Z+cfn8vuVuT7uzKhVxy+ubfr hMpw== X-Gm-Message-State: AODbwcCsOli/qRp/TlP/aVa9sahWSjhJ0BYor9yC+/KsUj0GaLvlRhHa q7y6TF0b6mzpIJ3j X-Received: by 10.25.76.2 with SMTP id z2mr3488112lfa.183.1496481577518; Sat, 03 Jun 2017 02:19:37 -0700 (PDT) From: Max Filippov To: qemu-devel@nongnu.org Date: Sat, 3 Jun 2017 02:19:24 -0700 Message-Id: <1496481564-20545-1-git-send-email-jcmvbkbc@gmail.com> X-Mailer: git-send-email 2.1.4 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4010:c07::243 Subject: [Qemu-devel] [PATCH] target/xtensa: handle unknown registers in gdbstub X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Max Filippov , qemu-stable@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Xtensa cores may have registers of types/sizes not supported by the gdbstub accessors. Ignore writes to such registers and return zero on read, but always return correct register size, so that gdb on the other side is able to access all registers in the packet holding unsupported registers in the middle. This fixes gdb interaction with cores that have vector/custom TIE registers. Cc: qemu-stable@nongnu.org Signed-off-by: Max Filippov --- target/xtensa/gdbstub.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/target/xtensa/gdbstub.c b/target/xtensa/gdbstub.c index fa5469a..da131ae 100644 --- a/target/xtensa/gdbstub.c +++ b/target/xtensa/gdbstub.c @@ -58,7 +58,10 @@ int xtensa_cpu_gdb_read_register(CPUState *cs, uint8_t *= mem_buf, int n) case 8: return gdb_get_reg64(mem_buf, float64_val(env->fregs[i].f64)); default: - return 0; + qemu_log_mask(LOG_UNIMP, "%s from reg %d of unsupported size %= d\n", + __func__, n, reg->size); + memset(mem_buf, 0, reg->size); + return reg->size; } =20 case 8: /*a*/ @@ -67,6 +70,8 @@ int xtensa_cpu_gdb_read_register(CPUState *cs, uint8_t *m= em_buf, int n) default: qemu_log_mask(LOG_UNIMP, "%s from reg %d of unsupported type %d\n", __func__, n, reg->type); + memset(mem_buf, 0, reg->size); + return reg->size; return 0; } } @@ -111,7 +116,9 @@ int xtensa_cpu_gdb_write_register(CPUState *cs, uint8_t= *mem_buf, int n) env->fregs[reg->targno & 0x0f].f64 =3D make_float64(tmp); return 8; default: - return 0; + qemu_log_mask(LOG_UNIMP, "%s to reg %d of unsupported size %d\= n", + __func__, n, reg->size); + return reg->size; } =20 case 8: /*a*/ @@ -121,7 +128,7 @@ int xtensa_cpu_gdb_write_register(CPUState *cs, uint8_t= *mem_buf, int n) default: qemu_log_mask(LOG_UNIMP, "%s to reg %d of unsupported type %d\n", __func__, n, reg->type); - return 0; + return reg->size; } =20 return 4; --=20 2.1.4