From patchwork Mon Dec 9 18:11:09 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1206496 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="ZVRo6eyT"; dkim-atps=neutral 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 ozlabs.org (Postfix) with ESMTPS id 47Ws9m3B68z9sNH for ; Tue, 10 Dec 2019 05:27:24 +1100 (AEDT) Received: from localhost ([::1]:44482 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ieNkf-0004Th-NP for incoming@patchwork.ozlabs.org; Mon, 09 Dec 2019 13:27:21 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:34639) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ieNaW-000700-LY for qemu-devel@nongnu.org; Mon, 09 Dec 2019 13:16:53 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ieNaV-0007IB-HT for qemu-devel@nongnu.org; Mon, 09 Dec 2019 13:16:52 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]:7351) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ieNaV-000793-9B; Mon, 09 Dec 2019 13:16:51 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1575915433; x=1607451433; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=qIu3Nk8mbEMxsAdhrzMMD2Op69hgflF0fJf4VyfzH2o=; b=ZVRo6eyTgFnZY4+1m7y2ilWqpsa9518FT6ewCzDAg5xfafAFzg3jPDsA vrFa18dADgIsCq0aEkC9MHs8aN0TllrhNKXF0CHoL8aCHLQKGVgBkS1bc U+esnO3W8aXMA6hswZo6LWsuQlcstu6FH9Bj0uSXYCDKYYQkrLMjsdvxO A3bgxrhz8KB0d0V3l13nY4ndN4FnNINHLfykKP7xUAYzWLftp4AUdZbEF uYjDK3FbZLIf29hw+QXi0Mtn029P3YJxD7GupPpRRQQmy5/frRKtS9au6 gVcwMIPmXqGqq3NKv0z0G+ydlme3cqHp0H6QGT4Hsp3b12beJzQaxnBLk Q==; IronPort-SDR: J/YTBMz/dqIi6tB68sHL7/fTBi4K6fnhbI8dPrRBs4vCAU36vPh2kVGIU3bjUa+k/J2kZ4ZDmG nABAnv3lTOz1zDmJd0aWMJnvvToRaosy0h8igdurnVTECto8lmsNARoU50eppDdEGjeHysGo57 RuFjpw6YA3W7LAvMQeAojy22UIsCDAwFDiZcKkQdNwPuU3ltcUIyI9Ml3+nBjUIkKGQwiSMd4U vtv07xazGco4RGEkIhin6Yp7q7sEGUyn1zSnVhpom4VLI5KcKifA8DyDrwFzoIpyO9E12wrnfZ YJo= X-IronPort-AV: E=Sophos;i="5.69,296,1571673600"; d="scan'208";a="226411954" Received: from h199-255-45-15.hgst.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 10 Dec 2019 02:17:12 +0800 IronPort-SDR: 4FG+UUMVOyRn675vy8sqZNR19Dr/VaHduosk5I/Ro5GmMCxM/cQavA+6YhDxAUkzf+bATZSnFM lZfwS83gVFmAajS5pt4YgaaCWdMm/ibt0cKMO5E5LPdY8RtJvOY8nTm+R3skxFs/mSC7tHZB6Q rSHGEhTtmWABfD+vnI8DDLXseYQ350uFTBjfducbQ5/6tCfHadN9AC8jFDReC4bCenENX7rdRV oAiJJ+Kx+6HbZgWN0y3YON52MaOOxYEsqTDs6mOG6klduHE9rmBxJWOrvYqs5flVKYirE9rcDm R23kfzMh1O6v+ZvIInmdU8eX Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Dec 2019 10:11:07 -0800 IronPort-SDR: 6oOBhbJfEAkMG+gYg1BNnJni37J/vQPDjIbFOz2oh+d9Qc86DqvYIr2Y/DHPBQxcUbVMlwqu8V k2gRBF0lx+nU2OODOphIwK023bnVAWGnbHPeTmPrUMelk47xwYViqKLkX6mb7j5j6IjT6ebxN6 uHwHof3DMoT6Y7ZGc3TmwtRU8xV56rpw5VhD2PGSKYXitDSA0Z0w16VzYAWNaUnv4FJRU7LxNX EoeQ9KVo00XkkCQkVikW+MbQ72zqVESTq2SQee8QAbDGPOd0GYrqT8BtkLcomq4zonS1ayOrBU xrE= WDCIronportException: Internal Received: from risc6-mainframe.sdcorp.global.sandisk.com (HELO risc6-mainframe.int.fusionio.com) ([10.196.158.235]) by uls-op-cesaip02.wdc.com with ESMTP; 09 Dec 2019 10:16:50 -0800 From: Alistair Francis To: qemu-devel@nongnu.org, qemu-riscv@nongnu.org Subject: [PATCH v1 11/36] target/riscv: Dump Hypervisor registers if enabled Date: Mon, 9 Dec 2019 10:11:09 -0800 Message-Id: X-Mailer: git-send-email 2.24.0 In-Reply-To: References: MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: FreeBSD 9.x [fuzzy] X-Received-From: 68.232.143.124 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: alistair.francis@wdc.com, palmer@dabbelt.com, alistair23@gmail.com Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Dump the Hypervisor registers and the current Hypervisor state. While we are editing this code let's also dump stvec and scause. Signed-off-by: Alistair Francis Signed-off-by: Atish Patra Reviewed-by: Palmer Dabbelt --- target/riscv/cpu.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index e8ae07107e..a07c5689b3 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -228,17 +228,50 @@ static void riscv_cpu_dump_state(CPUState *cs, FILE *f, int flags) CPURISCVState *env = &cpu->env; int i; +#if !defined(CONFIG_USER_ONLY) + if (riscv_has_ext(env, RVH)) { + qemu_fprintf(f, " %s %d\n", "V = ", riscv_cpu_virt_enabled(env)); + } +#endif qemu_fprintf(f, " %s " TARGET_FMT_lx "\n", "pc ", env->pc); #ifndef CONFIG_USER_ONLY qemu_fprintf(f, " %s " TARGET_FMT_lx "\n", "mhartid ", env->mhartid); qemu_fprintf(f, " %s " TARGET_FMT_lx "\n", "mstatus ", env->mstatus); + if (riscv_has_ext(env, RVH)) { + qemu_fprintf(f, " %s " TARGET_FMT_lx "\n", "hstatus ", env->hstatus); + qemu_fprintf(f, " %s " TARGET_FMT_lx "\n", "vsstatus ", env->vsstatus); + } qemu_fprintf(f, " %s " TARGET_FMT_lx "\n", "mip ", env->mip); qemu_fprintf(f, " %s " TARGET_FMT_lx "\n", "mie ", env->mie); qemu_fprintf(f, " %s " TARGET_FMT_lx "\n", "mideleg ", env->mideleg); + if (riscv_has_ext(env, RVH)) { + qemu_fprintf(f, " %s " TARGET_FMT_lx "\n", "hideleg ", env->hideleg); + } qemu_fprintf(f, " %s " TARGET_FMT_lx "\n", "medeleg ", env->medeleg); + if (riscv_has_ext(env, RVH)) { + qemu_fprintf(f, " %s " TARGET_FMT_lx "\n", "hedeleg ", env->hedeleg); + } qemu_fprintf(f, " %s " TARGET_FMT_lx "\n", "mtvec ", env->mtvec); + qemu_fprintf(f, " %s " TARGET_FMT_lx "\n", "stvec ", env->stvec); + if (riscv_has_ext(env, RVH)) { + qemu_fprintf(f, " %s " TARGET_FMT_lx "\n", "vstvec ", env->vstvec); + } qemu_fprintf(f, " %s " TARGET_FMT_lx "\n", "mepc ", env->mepc); + qemu_fprintf(f, " %s " TARGET_FMT_lx "\n", "sepc ", env->sepc); + if (riscv_has_ext(env, RVH)) { + qemu_fprintf(f, " %s " TARGET_FMT_lx "\n", "vsepc ", env->vsepc); + } qemu_fprintf(f, " %s " TARGET_FMT_lx "\n", "mcause ", env->mcause); + qemu_fprintf(f, " %s " TARGET_FMT_lx "\n", "scause ", env->scause); + if (riscv_has_ext(env, RVH)) { + qemu_fprintf(f, " %s " TARGET_FMT_lx "\n", "vscause ", env->vscause); + } + qemu_fprintf(f, " %s " TARGET_FMT_lx "\n", "mtval ", env->mtval); + qemu_fprintf(f, " %s " TARGET_FMT_lx "\n", "stval ", env->sbadaddr); + if (riscv_has_ext(env, RVH)) { + qemu_fprintf(f, " %s " TARGET_FMT_lx "\n", "htval ", env->htval); + qemu_fprintf(f, " %s " TARGET_FMT_lx "\n", "mtval2 ", env->mtval2); + } #endif for (i = 0; i < 32; i++) {