From nobody Fri Nov 14 13:43:20 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1587924680; cv=none; d=zohomail.com; s=zohoarc; b=XDLTOYTDkMqNBEYAFOFZ94u09kVtjdgqqxnxpO8EwC54kNEEq4SLcltmMyeahrzkZtZ62tEv3tgwJIy3Nnmsd+/Fwqp0hE4hu84KZoJvcoZmA9kXitPKqiGW0b/OX1YUctGDdXhc07RmQhF4jPeR2D5HoOR2MuTZHd8XNFVS6X4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1587924680; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=YJVAGvfb9bjTz51yw5JUJb1UoAmVUGH4uOpQhcGQr10=; b=UOD6+IHfD2VeygdWhwRr2hQmGUzOx0pvrsSI1wuSXcRALVNDZSk7mAJUWgTyJ+Y6weIbTjC4NYYgYb5KqOexAXCECviiPC1wTHqjOojt0gIlPamGhAxht2SuxSAI4t3o0pLUEb+WR/PPdcsGkqfUxJwR1eqhEQ+SlRff7qnGris= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1587924680293726.944295239604; Sun, 26 Apr 2020 11:11:20 -0700 (PDT) Received: from localhost ([::1]:41058 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jSlkN-0000A5-0e for importer@patchew.org; Sun, 26 Apr 2020 14:11:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33586) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jSlc7-0007bl-J7 for qemu-devel@nongnu.org; Sun, 26 Apr 2020 14:02:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jSlc7-0007kl-0E for qemu-devel@nongnu.org; Sun, 26 Apr 2020 14:02:47 -0400 Received: from out5-smtp.messagingengine.com ([66.111.4.29]:38531) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jSlc6-0007kY-Ic; Sun, 26 Apr 2020 14:02:46 -0400 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id DAA5E5C00DC; Sun, 26 Apr 2020 14:02:45 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute3.internal (MEProxy); Sun, 26 Apr 2020 14:02:45 -0400 Received: from ThinkpadX1Yoga3.localdomain (c-73-93-84-208.hsd1.ca.comcast.net [73.93.84.208]) by mail.messagingengine.com (Postfix) with ESMTPA id 21EC43065E2A; Sun, 26 Apr 2020 14:02:45 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alistair23.me; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm3; bh=YJVAGvfb9bjTz 51yw5JUJb1UoAmVUGH4uOpQhcGQr10=; b=as/4EEurjLhI6ooV4fEMOKlc1So/O r5eGcDXymWATg+PaMJkA+mlxn6J0YCmymsrXZezP9eP/gk48bKfwGnhDjTHmFIuj blcLADcmDH2UXUwbS4qYZJG8D1AqPfRd8SQQXf3Q7+FPwRxw0PsuE0ZJvFu223jZ w5mgmpQZzq5DodXZ2Fvg2BMQycopNXFfhNfKT4P+IUnomhAXymZyy2OInhy5GK/L U9fymQ8TaYt+/WuaPECwj5TJicYs1VZexITB5svjpTo3l4FDNmU6oADGg25pmEHm AhiKTqDS8F9DJnThdo+Evb6R3OgnQvrBXrZ/Mfk03F6ms2ehyACVaGaNQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=YJVAGvfb9bjTz51yw5JUJb1UoAmVUGH4uOpQhcGQr10=; b=DU6IPR79 ycU47gTcEkyI9vuPvoHes7ff89659vRO/NFgKcXxkcnrajqUYJIU321cbusv5wSR xGaJ939pszfnA8XE5ObDRZbvTpO15qFBEPDAg9iZHYwA2YQJ6Tdk7yrCT99/kEEt 6SLP1D+2aMqysj4U2+hN2mIo1qraXlPIhGlm5iY74Wnf2NWFiEQBdGvVG0/s/eg3 0ThE8NLHACIQ3KAL82465rSFWSb00uCCNzVdnmq4bM3nAXbr+B7beFK3oUKrtJc/ BVniMUjBBQEl8djwf62/cMlrhJ4lGFUvH0C8ws0vj5Cou/84c7eZ2YDHC2wREtkP xp9xuAUxx1Y7nw== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduhedrheejgdduvdduucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhvffufffkofgjfhgggfestdekre dtredttdenucfhrhhomheptehlihhsthgrihhrucfhrhgrnhgtihhsuceorghlihhsthgr ihhrsegrlhhishhtrghirhdvfedrmhgvqeenucfkphepjeefrdelfedrkeegrddvtdekne cuvehluhhsthgvrhfuihiivgepudenucfrrghrrghmpehmrghilhhfrhhomheprghlihhs thgrihhrsegrlhhishhtrghirhdvfedrmhgv X-ME-Proxy: From: Alistair Francis To: qemu-devel@nongnu.org, qemu-riscv@nongnu.org Subject: [PATCH v1 2/9] target/riscv: Don't overwrite the reset vector Date: Sat, 25 Apr 2020 04:29:05 -0700 Message-Id: <1a409f7fa7837de1625dc066b68f52a71dfdc587.1587920572.git.alistair.francis@wdc.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=66.111.4.29; envelope-from=alistair@alistair23.me; helo=out5-smtp.messagingengine.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/26 14:02:38 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 66.111.4.29 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+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Alistair Francis If the reset vector is set in the init function don't set it again in realise. Signed-off-by: Alistair Francis --- target/riscv/cpu.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 059d71f2c7..8f837edf8d 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -111,6 +111,14 @@ static void set_feature(CPURISCVState *env, int featur= e) env->features |=3D (1ULL << feature); } =20 +static int get_resetvec(CPURISCVState *env) +{ +#ifndef CONFIG_USER_ONLY + return env->resetvec; +#endif + return 0; +} + static void set_resetvec(CPURISCVState *env, int resetvec) { #ifndef CONFIG_USER_ONLY @@ -123,7 +131,6 @@ static void riscv_any_cpu_init(Object *obj) CPURISCVState *env =3D &RISCV_CPU(obj)->env; set_misa(env, RVXLEN | RVI | RVM | RVA | RVF | RVD | RVC | RVU); set_priv_version(env, PRIV_VERSION_1_11_0); - set_resetvec(env, DEFAULT_RSTVEC); } =20 #if defined(TARGET_RISCV32) @@ -140,7 +147,6 @@ static void rv32gcsu_priv1_09_1_cpu_init(Object *obj) CPURISCVState *env =3D &RISCV_CPU(obj)->env; set_misa(env, RV32 | RVI | RVM | RVA | RVF | RVD | RVC | RVS | RVU); set_priv_version(env, PRIV_VERSION_1_09_1); - set_resetvec(env, DEFAULT_RSTVEC); set_feature(env, RISCV_FEATURE_MMU); set_feature(env, RISCV_FEATURE_PMP); } @@ -150,7 +156,6 @@ static void rv32gcsu_priv1_10_0_cpu_init(Object *obj) CPURISCVState *env =3D &RISCV_CPU(obj)->env; set_misa(env, RV32 | RVI | RVM | RVA | RVF | RVD | RVC | RVS | RVU); set_priv_version(env, PRIV_VERSION_1_10_0); - set_resetvec(env, DEFAULT_RSTVEC); set_feature(env, RISCV_FEATURE_MMU); set_feature(env, RISCV_FEATURE_PMP); } @@ -160,7 +165,6 @@ static void rv32imacu_nommu_cpu_init(Object *obj) CPURISCVState *env =3D &RISCV_CPU(obj)->env; set_misa(env, RV32 | RVI | RVM | RVA | RVC | RVU); set_priv_version(env, PRIV_VERSION_1_10_0); - set_resetvec(env, DEFAULT_RSTVEC); set_feature(env, RISCV_FEATURE_PMP); } =20 @@ -169,7 +173,6 @@ static void rv32imafcu_nommu_cpu_init(Object *obj) CPURISCVState *env =3D &RISCV_CPU(obj)->env; set_misa(env, RV32 | RVI | RVM | RVA | RVF | RVC | RVU); set_priv_version(env, PRIV_VERSION_1_10_0); - set_resetvec(env, DEFAULT_RSTVEC); set_feature(env, RISCV_FEATURE_PMP); } =20 @@ -187,7 +190,6 @@ static void rv64gcsu_priv1_09_1_cpu_init(Object *obj) CPURISCVState *env =3D &RISCV_CPU(obj)->env; set_misa(env, RV64 | RVI | RVM | RVA | RVF | RVD | RVC | RVS | RVU); set_priv_version(env, PRIV_VERSION_1_09_1); - set_resetvec(env, DEFAULT_RSTVEC); set_feature(env, RISCV_FEATURE_MMU); set_feature(env, RISCV_FEATURE_PMP); } @@ -197,7 +199,6 @@ static void rv64gcsu_priv1_10_0_cpu_init(Object *obj) CPURISCVState *env =3D &RISCV_CPU(obj)->env; set_misa(env, RV64 | RVI | RVM | RVA | RVF | RVD | RVC | RVS | RVU); set_priv_version(env, PRIV_VERSION_1_10_0); - set_resetvec(env, DEFAULT_RSTVEC); set_feature(env, RISCV_FEATURE_MMU); set_feature(env, RISCV_FEATURE_PMP); } @@ -207,7 +208,6 @@ static void rv64imacu_nommu_cpu_init(Object *obj) CPURISCVState *env =3D &RISCV_CPU(obj)->env; set_misa(env, RV64 | RVI | RVM | RVA | RVC | RVU); set_priv_version(env, PRIV_VERSION_1_10_0); - set_resetvec(env, DEFAULT_RSTVEC); set_feature(env, RISCV_FEATURE_PMP); } =20 @@ -399,7 +399,9 @@ static void riscv_cpu_realize(DeviceState *dev, Error *= *errp) } =20 set_priv_version(env, priv_version); - set_resetvec(env, DEFAULT_RSTVEC); + if (!get_resetvec(env)) { + set_resetvec(env, DEFAULT_RSTVEC); + } =20 if (cpu->cfg.mmu) { set_feature(env, RISCV_FEATURE_MMU); --=20 2.26.2