From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.5 required=3.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A801EC433ED for ; Mon, 5 Apr 2021 14:49:56 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 36269613B1 for ; Mon, 5 Apr 2021 14:49:56 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 36269613B1 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:60472 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lTQY7-000796-A4 for qemu-devel@archiver.kernel.org; Mon, 05 Apr 2021 10:49:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42436) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lTQHU-0001Yi-Qv for qemu-devel@nongnu.org; Mon, 05 Apr 2021 10:32:44 -0400 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]:50744) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lTQHO-0001qX-Dv for qemu-devel@nongnu.org; Mon, 05 Apr 2021 10:32:44 -0400 Received: by mail-wm1-x333.google.com with SMTP id a76so2599921wme.0 for ; Mon, 05 Apr 2021 07:32: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:in-reply-to:references :mime-version:content-transfer-encoding; bh=er4qANtgKvlPdPBqn0fMmfl5lq/j09+opELRIuQIrcI=; b=bO+JOMR9bTwo2Ud4OJC2BvmS3SVl+CPcpsRqBYC7OsFQsE66IcXGO+ZmuoYIif+TEd +DsATSozVZtlRUpr8wmHqVNaP6We3cnz54DOqz4q158HIovEhOPQXZLp9xTtpRcuPNbJ mnKQj+Gi0skcffE4sEbzTNA8F8OEe1HjpbEakHEuHc/TWNWu+QZdPX/oJ0eXDilhLD6t KkCooeeTIIiNnO3TFZ8h9ZWxWom1CPMMtdYCFRM0Kr0D2UCmz21RI2Mc9etkLtkAY5U2 MrMrljDWT/Gxa9ui0N/or7U6H/rddbXIalw0UBZMcgUPGqIP0CGe3PJRAHigsOLQdUDE YRXw== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=er4qANtgKvlPdPBqn0fMmfl5lq/j09+opELRIuQIrcI=; b=EXaxsY2HTQhzJ0rx76NVHS7aEXjrftCTbCHpGUvb8JMrN7YycbafmWX9afJtzIjoNW N5MEFtr5CYMkvvsTZhswBeVtxNHHkZDljW2KdS3dNdQlD5+9unNYlCPYQl0+dpm0MXJL ds6ca7F1Mo1i5Sx4GwNQzKREijDnwM3Dca6sFc/5tqaGal+Hfp8GZKRvjmDYkdLJSvRE 4/K3KitxpV5KUtx4QqC/4IVf7Uf6A49joJP4IeHhmadDOGfLt0sCR+KrvQAHF8X0x3Xb pFgS6lUZ9k7AG6CiJ8+2wcHEkn8VglUGd84Icyunm6nApx2Urx+Wkww/nlY1agyHjqUZ JLRA== X-Gm-Message-State: AOAM532/Eqx3aE6Rr1tSmxyvc4aVXPJOQEwJWiN0DfB3Oi8+w8cWCBLP iQWD0N04uL/wAqSZSKGxVIjPaZvWI46J5Q== X-Google-Smtp-Source: ABdhPJwm4yJT+N++Gcn2c1pBVG5i7pxrWLCZx34E1tT9N0ktHF6Ducg1sEmXdhbKgpVN65tjhZS5tg== X-Received: by 2002:a1c:f305:: with SMTP id q5mr25510253wmq.96.1617633156388; Mon, 05 Apr 2021 07:32:36 -0700 (PDT) Received: from cmiranda-laptop.localdomain (bl15-158-218.dsl.telepac.pt. [188.80.158.218]) by smtp.gmail.com with ESMTPSA id k3sm8231552wrc.67.2021.04.05.07.32.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 Apr 2021 07:32:36 -0700 (PDT) From: cupertinomiranda@gmail.com To: qemu-devel@nongnu.org Subject: [PATCH 25/27] arcv3: gdbstub changes and new XML files Date: Mon, 5 Apr 2021 15:31:36 +0100 Message-Id: <20210405143138.17016-26-cupertinomiranda@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210405143138.17016-1-cupertinomiranda@gmail.com> References: <20210405143138.17016-1-cupertinomiranda@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Received-SPF: pass client-ip=2a00:1450:4864:20::333; envelope-from=cupertinomiranda@gmail.com; helo=mail-wm1-x333.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, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: shahab@synopsys.com, linux-snps-arc@lists.infradead.org, claziss@synopsys.com, cmiranda@synopsys.com Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Cupertino Miranda --- gdb-xml/arc-core-v3.xml | 45 +++++++++ gdb-xml/arc64-aux-minimal.xml | 32 ++++++ gdb-xml/arc64-aux-other.xml | 177 ++++++++++++++++++++++++++++++++++ target/arc/gdbstub.c | 23 +++++ target/arc/gdbstub.h | 10 ++ 5 files changed, 287 insertions(+) create mode 100644 gdb-xml/arc-core-v3.xml create mode 100644 gdb-xml/arc64-aux-minimal.xml create mode 100644 gdb-xml/arc64-aux-other.xml diff --git a/gdb-xml/arc-core-v3.xml b/gdb-xml/arc-core-v3.xml new file mode 100644 index 0000000000..fdca31b4c3 --- /dev/null +++ b/gdb-xml/arc-core-v3.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gdb-xml/arc64-aux-minimal.xml b/gdb-xml/arc64-aux-minimal.xml new file mode 100644 index 0000000000..56c3f2f698 --- /dev/null +++ b/gdb-xml/arc64-aux-minimal.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gdb-xml/arc64-aux-other.xml b/gdb-xml/arc64-aux-other.xml new file mode 100644 index 0000000000..75a120b894 --- /dev/null +++ b/gdb-xml/arc64-aux-other.xml @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/arc/gdbstub.c b/target/arc/gdbstub.c index a09cdb3f45..84e31b02cc 100644 --- a/target/arc/gdbstub.c +++ b/target/arc/gdbstub.c @@ -30,7 +30,13 @@ #define REG_ADDR(reg, processor_type) \ arc_aux_reg_address_for((reg), (processor_type)) +#ifdef TARGET_ARCV2 #define GDB_GET_REG gdb_get_reg32 +#elif TARGET_ARCV3 +#define GDB_GET_REG gdb_get_reg64 +#else + #error No target is selected. +#endif int arc_cpu_gdb_read_register(CPUState *cs, GByteArray *mem_buf, int n) { @@ -272,6 +278,18 @@ arc_aux_other_gdb_get_reg(CPUARCState *env, GByteArray *mem_buf, int regnum) case GDB_AUX_OTHER_REG_BTA: regval = helper_lr(env, REG_ADDR(AUX_ID_bta, cpu->family)); break; +#ifdef TARGET_ARCV3 + /* MMUv6 */ + case GDB_AUX_OTHER_REG_MMU_CTRL: + regval = helper_lr(env, REG_ADDR(AUX_ID_mmu_ctrl, cpu->family)); + break; + case GDB_AUX_OTHER_REG_RTP0: + regval = helper_lr(env, REG_ADDR(AUX_ID_mmu_rtp0, cpu->family)); + break; + case GDB_AUX_OTHER_REG_RTP1: + regval = helper_lr(env, REG_ADDR(AUX_ID_mmu_rtp1, cpu->family)); + break; +#endif default: assert(!"Unsupported other auxiliary register is being read."); } @@ -395,8 +413,13 @@ arc_aux_other_gdb_set_reg(CPUARCState *env, uint8_t *mem_buf, int regnum) return 4; } +#ifdef TARGET_ARCV2 #define GDB_TARGET_MINIMAL_XML "arc-v2-aux.xml" #define GDB_TARGET_AUX_XML "arc-v2-other.xml" +#else +#define GDB_TARGET_MINIMAL_XML "arc64-aux-minimal.xml" +#define GDB_TARGET_AUX_XML "arc64-aux-other.xml" +#endif void arc_cpu_register_gdb_regs_for_features(ARCCPU *cpu) { diff --git a/target/arc/gdbstub.h b/target/arc/gdbstub.h index 2ced52ee57..ff00c592e1 100644 --- a/target/arc/gdbstub.h +++ b/target/arc/gdbstub.h @@ -20,7 +20,11 @@ #ifndef ARC_GDBSTUB_H #define ARC_GDBSTUB_H +#ifdef TARGET_ARCV2 #define GDB_TARGET_STRING "arc:ARCv2" +#else +#define GDB_TARGET_STRING "arc:ARCv3_64" +#endif enum gdb_regs { GDB_REG_0 = 0, @@ -147,6 +151,12 @@ enum gdb_aux_other_regs { GDB_AUX_OTHER_REG_TLBPD1, /* page descriptor 1 */ GDB_AUX_OTHER_REG_TLB_INDEX, /* tlb index */ GDB_AUX_OTHER_REG_TLB_CMD, /* tlb command */ +#ifdef TARGET_ARCV3 + /* mmuv6 */ + GDB_AUX_OTHER_REG_MMU_CTRL, /* mmuv6 control */ + GDB_AUX_OTHER_REG_RTP0, /* region 0 ptr */ + GDB_AUX_OTHER_REG_RTP1, /* region 1 ptr */ +#endif GDB_AUX_OTHER_REG_LAST }; -- 2.20.1