From patchwork Mon May 20 16:28:06 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 164656 Delivered-To: patch@linaro.org Received: by 2002:a92:9e1a:0:0:0:0:0 with SMTP id q26csp505325ili; Mon, 20 May 2019 09:39:32 -0700 (PDT) X-Google-Smtp-Source: APXvYqyYs90kaVO9r8bOpBCZr7Gin/9klmXDacgYiCMaoX33N1cfe3zYR8mdK4aHa9JjPLDc6WZ/ X-Received: by 2002:a17:906:af96:: with SMTP id mj22mr17120967ejb.185.1558370372475; Mon, 20 May 2019 09:39:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558370372; cv=none; d=google.com; s=arc-20160816; b=zky5oLApJkiHC+xpeP40YJ2IULNjZn6avTUbP53VRnm1lCDPCVtm+FCcVE2i3/4zLv 85B9XNiZEltQ8c+2hU56MwBY25s6FC82gNle7GJvNx89HuSDAmIKKJ/q7Cuagmd6EQL6 gSVkDElXGRWEzoiEX8ixY3xjSO8lTN3kx2vBlAY0woZFhTdj47Lw2oEOYb4wYpK/2GZ2 e/pU5lBshWB73GhVFEvfio1Fg42Z86WE4Y4cpCibq+zuAU6RII17wrthJ9yGF1zyKEUL JxVcuiVaieF1fn9K1lEWbqWXc0FkBB8avLrv4iWAwXIo7EJcT79pWI+usR3X1vqAZQy8 ilfA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject :content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature; bh=cEu3plm2JnEz4zF57Dl9xMi74nNuVpPFcKATYhpH4io=; b=b53en/+AljRdmKk6xvOTS1njKUKitubLJxjnCKRkosfaeX2Ga5E2j8NSYe6LVgXwx1 66Gv/bRi2HnUaG5+GDzeXtnuXu0J8boregYIdRDDojkXDIGvhvlnfubEUo/mB9JLbJuq 0qv+UVy9PzShFSjZiBUzAUnlvidWIEW6TMgwfFqRRd5T5WJrMWXdt3AdTX23ciFN78lF wGrQOvqWiQV9AVlEs7W8aMMRN9MOLOHfUiHNfK0u1mIBp6M4MDWmmSBEZdOKEXY1uABG wpWr+e7kZRG7FA/IHg67jKyuYa3BLcGcuRNUNyLRNUqfxNEw5SF9eBC+MLqvZZrfSknv wEiw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=qkz0Jidp; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 31si3450844edr.130.2019.05.20.09.39.32 for (version=TLS1 cipher=AES128-SHA bits=128/128); Mon, 20 May 2019 09:39:32 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=qkz0Jidp; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([127.0.0.1]:38378 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hSlJz-0003Ap-Ad for patch@linaro.org; Mon, 20 May 2019 12:39:31 -0400 Received: from eggs.gnu.org ([209.51.188.92]:42706) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hSl9B-00031V-KH for qemu-devel@nongnu.org; Mon, 20 May 2019 12:28:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hSl98-0001Fi-1d for qemu-devel@nongnu.org; Mon, 20 May 2019 12:28:19 -0400 Received: from mail-wm1-x343.google.com ([2a00:1450:4864:20::343]:36382) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hSl95-0001DE-Rg for qemu-devel@nongnu.org; Mon, 20 May 2019 12:28:17 -0400 Received: by mail-wm1-x343.google.com with SMTP id j187so5782wmj.1 for ; Mon, 20 May 2019 09:28:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=cEu3plm2JnEz4zF57Dl9xMi74nNuVpPFcKATYhpH4io=; b=qkz0JidpSNoylM3MLl+G/1xILgwruSaa0LidMNP2QzD4hAIsK38BUX3FD1j9YZL6+7 i0+EJHW60XWI2mCLmDP5qESUX1MFZ8sDWPQHZjCss1cU/px3Sbb93egRJSWUGV5SbjP0 EK/pu/KqdQohweqbdJdiXssoXVCntTbTNQ5AxcDnIOhTw+toXQaMVVXeEyeVe5+yhbmg jrFTJpqwswULv6YT3pjiichaQuUouJVszIShqgQ+zPzaLcfymrmoZ6pzF0KIju2lrChr jsP9l4/laWS6nyLniItVXsrrM3ikxMvhwlggS2qyub07USqGlPX9WuOO5E8on/eOMnjA b6EQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=cEu3plm2JnEz4zF57Dl9xMi74nNuVpPFcKATYhpH4io=; b=VlWtl9vfZpUB52rneLEvj2DT3f9cTxL31nvd7hOTTtwZ21hpAkj+tm1JbKLJuaKKWx SHsLGduexJFs0ZJlve3A2R+l+mpCc2WyTjisfArR6V6ZnaEOdujKJD9ZUD0dbX3nXGjE VTFuvQrE6QqC1bcXAYGUSrR4GQln2AZQnbvNBhPm68abzcgQCrI0S+6kzodXB0YVFDW5 e6Epjv9hKYFKyd6/HzUZjdLnlpb/Mg6bBXmrprHu+jx6S0MG/yJZR+JQ6z3YWsoAlIsq SfPS2XMn2iyd0wLuD35GTUMpFDu5Vpc/WzZX5VuY9NmM3HMdTY9Ihj3+E+7RZufcvapT IF0Q== X-Gm-Message-State: APjAAAUXJeqnpdFBNTzf3jD175wl52ESMQkE1UlM7Y1hKJA5CUJ/0fR7 88d0Uusyuen5XjI0/dL2VSyu7Q== X-Received: by 2002:a1c:e906:: with SMTP id q6mr2872014wmc.47.1558369693589; Mon, 20 May 2019 09:28:13 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id x2sm5830394wrs.39.2019.05.20.09.28.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 May 2019 09:28:12 -0700 (PDT) From: Peter Maydell To: qemu-arm@nongnu.org, qemu-devel@nongnu.org Date: Mon, 20 May 2019 17:28:06 +0100 Message-Id: <20190520162809.2677-2-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190520162809.2677-1-peter.maydell@linaro.org> References: <20190520162809.2677-1-peter.maydell@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::343 Subject: [Qemu-devel] [PATCH 1/4] hw/intc/arm_gicv3: Fix decoding of ID register range 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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" The GIC ID registers cover an area 0x30 bytes in size (12 registers, 4 bytes each). We were incorrectly decoding only the first 0x20 bytes. Signed-off-by: Peter Maydell --- hw/intc/arm_gicv3_dist.c | 2 +- hw/intc/arm_gicv3_redist.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) -- 2.20.1 Reviewed-by: Philippe Mathieu-Daudé diff --git a/hw/intc/arm_gicv3_dist.c b/hw/intc/arm_gicv3_dist.c index 53c55c57291..335386ff3ac 100644 --- a/hw/intc/arm_gicv3_dist.c +++ b/hw/intc/arm_gicv3_dist.c @@ -533,7 +533,7 @@ static MemTxResult gicd_readl(GICv3State *s, hwaddr offset, } return MEMTX_OK; } - case GICD_IDREGS ... GICD_IDREGS + 0x1f: + case GICD_IDREGS ... GICD_IDREGS + 0x2f: /* ID registers */ *data = gicv3_idreg(offset - GICD_IDREGS); return MEMTX_OK; diff --git a/hw/intc/arm_gicv3_redist.c b/hw/intc/arm_gicv3_redist.c index 3b0ba6de1ab..9bb11423382 100644 --- a/hw/intc/arm_gicv3_redist.c +++ b/hw/intc/arm_gicv3_redist.c @@ -233,7 +233,7 @@ static MemTxResult gicr_readl(GICv3CPUState *cs, hwaddr offset, } *data = cs->gicr_nsacr; return MEMTX_OK; - case GICR_IDREGS ... GICR_IDREGS + 0x1f: + case GICR_IDREGS ... GICR_IDREGS + 0x2f: *data = gicv3_idreg(offset - GICR_IDREGS); return MEMTX_OK; default: From patchwork Mon May 20 16:28:07 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 164659 Delivered-To: patch@linaro.org Received: by 2002:a92:9e1a:0:0:0:0:0 with SMTP id q26csp508197ili; Mon, 20 May 2019 09:42:31 -0700 (PDT) X-Google-Smtp-Source: APXvYqxEp9CI6cJuN8AkrNRmxFdfeekCpzJW3pmWUQlKQLUyBlA+Aanfd/L8zoBWHB6EA9Quujw8 X-Received: by 2002:a17:906:3459:: with SMTP id d25mr47381793ejb.7.1558370551287; Mon, 20 May 2019 09:42:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558370551; cv=none; d=google.com; s=arc-20160816; b=yxjRgj+/n9zsbQaVYF0l9shkVImSWeYB8dhgQBb8LPyaGSljzhJ4lWPM/EheJHc+JT J03uPB8QCrWp4TKGcYfQg4/b1wF8yY1riS0WZEREkR//qY+IoNwWiIFHw7Qs33Mi10hC H3BELRFaNzmI7HmYRwfh/nXlFKNBYexo9UHWvdiZHKfKRF16oXEpOX+2Bha8VdpYZufF MqbrSeOyIpojvJK7UBe0xiMuHayZt6kuHu+t/U8h7VcmkGMSR5x969Qm+IUq8+DtIPL2 c5EsT7xXEdeKDK8ltDTvwgsiPh+ED5AqKRGrhTFQiX9X3xtUzDQ3nVN+tLT9t0E0YyPK euTA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject :content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature; bh=TQvN/mWAlK741QKpEKQhjF7DDPH0rKnlVOvBsAJinxg=; b=xqRf9cHD6/P9Ww4PpPGghr6CsVscUZjlD/0N4gh32avVMKfP+4mhlzlOFS+AtLLgpy v76pOXgdJmKkd8LTc8KiSTxfM2HgZutzGwKq+eUdS1QglsZWNuQCS+IwPrv6x2OT+vwC euqjcOx1yEc8yCCXc11DM3pZsjmj+mRWoxUtYixOk+t9KdlJPka/3doswshAh0KmaDWF 7xcEAwymGYzEPX5zxDShEVsAvELKXXUuNkQY5LUoniTrfEqciule9X0rRjHA/Monechs y78wQcudwk2aBDogTWQtsLq3gO4p1aIkVDcvoCaJo23tP8/Av39hcrGtu6kFJ5lewL1U aJBA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=eE858BT9; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id a21si529306ejv.119.2019.05.20.09.42.31 for (version=TLS1 cipher=AES128-SHA bits=128/128); Mon, 20 May 2019 09:42:31 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=eE858BT9; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([127.0.0.1]:38436 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hSlMs-0005v4-8O for patch@linaro.org; Mon, 20 May 2019 12:42:30 -0400 Received: from eggs.gnu.org ([209.51.188.92]:42709) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hSl9B-00031Y-KO for qemu-devel@nongnu.org; Mon, 20 May 2019 12:28:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hSl98-0001Fr-2K for qemu-devel@nongnu.org; Mon, 20 May 2019 12:28:19 -0400 Received: from mail-wm1-x341.google.com ([2a00:1450:4864:20::341]:51087) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hSl95-0001Em-TV for qemu-devel@nongnu.org; Mon, 20 May 2019 12:28:17 -0400 Received: by mail-wm1-x341.google.com with SMTP id f204so15202wme.0 for ; Mon, 20 May 2019 09:28:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=TQvN/mWAlK741QKpEKQhjF7DDPH0rKnlVOvBsAJinxg=; b=eE858BT9oM4qVPLyFxNriaIXSVdrnnIC54UhLvK6faBWTZWEzMUoFiT/poR81eWyS1 2qpzy4F0kw0P5T8vl+FniHqUywhjV10HmSXj9XdOJUKPWzOjCVbrcDUQmcBAjPvDNA1D 5SkSTki1k3qBeIxZORGAF5d9j6zOnjdjXyPx4KEzvkBDu+Q5UfnjqYz+Dyk2MjMDP7vw tBCEZKgyvS9yEML1uWVG7ANz9kbAYl2dLKepWkwqVrBtAPL5aqI3pwDfIkZEf9Wktr0a bvgna8UcEnrj4vzicr7S5pIEuwsqdLcbDCQCwMt7o0XbHRQBR13+KAE92GowwTFK2EpD N8QA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=TQvN/mWAlK741QKpEKQhjF7DDPH0rKnlVOvBsAJinxg=; b=tL2IDb72irExIhKWHVuvdJ1L0eznKIw/j/dzv2HRWeW+NWuKZlcusEQo10TGtbXSJD Y2qKuPvwFb5CGSC5ZfmqKBWgVwrCdSZWIZH+eMZyyz45Ya/PEB4omhpj8ibmojyKPxcA yYj1CgqDoYZe91BGYYnDwOcLiNNe8e/hWBYRX735k2XwR/49TNeKt5DJ49C1fvmGELjb A/J7bdAMhqy8zsCoC0fIsXIPjj6gks7sdtmeVtHXRB1CFbTAOtfyZaxjusDOdosfOLXq f2mQAxDSE2Y6NUB8mNxcKtDOYptV4t5PzuazrAGXksZH6pOUfP3H6BKpQDlXHbT0a6EE cIVA== X-Gm-Message-State: APjAAAWA6AO4gJ7KVNsjpCFofrEYbyEqWrOovQ6IHHKTLKb4L+LaYkK5 JfyPIbyp4dTi9yGU29HmAzTis1ix61c= X-Received: by 2002:a7b:c549:: with SMTP id j9mr4712wmk.114.1558369694777; Mon, 20 May 2019 09:28:14 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id x2sm5830394wrs.39.2019.05.20.09.28.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 May 2019 09:28:14 -0700 (PDT) From: Peter Maydell To: qemu-arm@nongnu.org, qemu-devel@nongnu.org Date: Mon, 20 May 2019 17:28:07 +0100 Message-Id: <20190520162809.2677-3-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190520162809.2677-1-peter.maydell@linaro.org> References: <20190520162809.2677-1-peter.maydell@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::341 Subject: [Qemu-devel] [PATCH 2/4] hw/intc/arm_gicv3: GICD_TYPER.SecurityExtn is RAZ if GICD_CTLR.DS == 1 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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" The GICv3 specification says that the GICD_TYPER.SecurityExtn bit is RAZ if GICD_CTLR.DS is 1. We were incorrectly making it RAZ if the security extension is unsupported. "Security extension unsupported" always implies GICD_CTLR.DS == 1, but the guest can also set DS on a GIC which does support the security extension. Fix the condition to correctly check the GICD_CTLR.DS bit. Signed-off-by: Peter Maydell --- hw/intc/arm_gicv3_dist.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) -- 2.20.1 diff --git a/hw/intc/arm_gicv3_dist.c b/hw/intc/arm_gicv3_dist.c index 335386ff3ac..d6ae576110d 100644 --- a/hw/intc/arm_gicv3_dist.c +++ b/hw/intc/arm_gicv3_dist.c @@ -378,8 +378,14 @@ static MemTxResult gicd_readl(GICv3State *s, hwaddr offset, * ITLinesNumber == (num external irqs / 32) - 1 */ int itlinesnumber = ((s->num_irq - GIC_INTERNAL) / 32) - 1; + /* + * SecurityExtn must be RAZ if GICD_CTLR.DS == 1, and + * "security extensions not supported" always implies DS == 1, + * so we only need to check the DS bit. + */ + bool sec_extn = !(s->gicd_ctlr & GICD_CTLR_DS); - *data = (1 << 25) | (1 << 24) | (s->security_extn << 10) | + *data = (1 << 25) | (1 << 24) | (sec_extn << 10) | (0xf << 19) | itlinesnumber; return MEMTX_OK; } From patchwork Mon May 20 16:28:08 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 164658 Delivered-To: patch@linaro.org Received: by 2002:a92:9e1a:0:0:0:0:0 with SMTP id q26csp507282ili; Mon, 20 May 2019 09:41:30 -0700 (PDT) X-Google-Smtp-Source: APXvYqwjzE+rNqneLBu3a9mD2iBtVCIwN68ecqHUQhWIutfAqLzKEl0zT+0UBZkSl7kVbAJJFJUi X-Received: by 2002:a50:8965:: with SMTP id f34mr76097608edf.296.1558370490802; Mon, 20 May 2019 09:41:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558370490; cv=none; d=google.com; s=arc-20160816; b=uVqrCrKM0dsm1q8PY1LOMhnaSjRobdzf0iNyZrsSShTjxiOT2UhwBDhdAkVNWw0LPd CqaSxVeWk1LkyK95wF012veGSnKX6r8iXPQ780cDc50TFyuBsDIl2wKZJRrGrOGqonM7 zJqVlTJKBMcx/jcAh2AGbBSZtzcRWEkXDwuFQEOXjBGEgUH05ZF3YFxvOaYgOAwrdryb DnIMfPMcnZrE5v/bkR9UrQFd/ajY4LIBve/XeyhwB1YuB0kKBErShgZuXlRVXxlpPJb8 P9nronSQKUCIZjnPdPgoU5215cF1yT3g2dtQ03G3Bf/ZQWCyshpjtzUO9XBqJ5kya08W mMQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject :content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature; bh=dQHnN+4pHJlYmoFJPk7sNMgKdxxuc9MbNwGNtlQi5Ao=; b=D1C1hdqIeYrOUdjZGfq8gkd6JxT+7R+LeLx+2Li0r/plr6ZJ9gaMdfJclk3r8kMH0h SzWDVsQNSRp6LXZZr0Nkootr/qEMYGRjwrwOlzs5dkTD4mdvVlrSk8t2WAs79u6J1CxM X6++w6bgznaTHbuDnil/EZfER2z/cebRpuC/91+oUFfUfUWEnQXm/KDe9uZPg/1cM+97 W8Igi90qtgPiC+qVasueAG22EY70h0+ijT14IePaGLkcdKO2vktSphaN+i9gFT5+xb9g JkA7C4U7699xglivT4gUiIbSUDTlk1KLun2a8lh4zrbPU1Awd+O0vGyGgYJefUCpzrce M18A== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b="A3gT/Clv"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id a1si4028219ejb.137.2019.05.20.09.41.30 for (version=TLS1 cipher=AES128-SHA bits=128/128); Mon, 20 May 2019 09:41:30 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b="A3gT/Clv"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([127.0.0.1]:38427 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hSlLt-00051U-DV for patch@linaro.org; Mon, 20 May 2019 12:41:29 -0400 Received: from eggs.gnu.org ([209.51.188.92]:42753) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hSl9D-00033b-H5 for qemu-devel@nongnu.org; Mon, 20 May 2019 12:28:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hSl9B-0001H4-M6 for qemu-devel@nongnu.org; Mon, 20 May 2019 12:28:23 -0400 Received: from mail-wr1-x443.google.com ([2a00:1450:4864:20::443]:34688) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hSl98-0001Ev-02 for qemu-devel@nongnu.org; Mon, 20 May 2019 12:28:19 -0400 Received: by mail-wr1-x443.google.com with SMTP id f8so8932535wrt.1 for ; Mon, 20 May 2019 09:28:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=dQHnN+4pHJlYmoFJPk7sNMgKdxxuc9MbNwGNtlQi5Ao=; b=A3gT/ClvCRV7rtEPPnJmn1DsOMTebZrY5pD/AfpV30uVMBPOpEHXpgiWVrtV9TK4Hl AP0HbS3dNqAPrTIvYLokPQrdvhn5xlIKW8Y68A2SZff2mG5VIbW1GMhQPKIUeqB6whKV +NSf6ixOc2BjT69T/0eecTslatzI3woee0R5waM7PeBLNnFlXs1eLf3GFZ8jcNKXWoSX ULUM6hU6VJXZcwkW0Np4q9fQyWeS7AohOA2xpu0iWzGdHNMlHtEk+VrDMxxjGHGoYkLa hpNkwVkYxvAEY7BhnxFC+kUjEJtvHsJ5+yse+UQn/HFEAxK0rmHFW/E0A5UktknsV926 YWjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=dQHnN+4pHJlYmoFJPk7sNMgKdxxuc9MbNwGNtlQi5Ao=; b=WAEkI19FRuCzOYwhtmx4ezOjJJcSdM7CqYjvv93q7b70Ta0AmBeISslueIKvBqtC4M uq7BWV37HMTI7edasFx2xja2oKA5ieyHxQt294H97zrLghbZSNV6Ip/h+OEumy+utO5M +64OfFfmBYJ/R5YK7O76MJ5HDizXoha71PE/ABsLJ09N5sdHMcZe5iz4WeZM25spJDcw 60NR3WqwZs8oBcyAKpRy0KQzBYsV5Esq8jBBrtDe75dHHqEXaBFDEn3cGh4tZl1cnQ6w SmWCIthjk54AlTS56sBEPPvZzBs/tjOifcTZezp+kriSpIsYDOYAy1x3ALAq3i5XrXnR EjQQ== X-Gm-Message-State: APjAAAUzlBjwgCFwmlc4j/P05udABFuVKpAniOq2qyEFe9O5MKvzfG5u WwgjPApyHSEdsgsEefciXiy4Tg== X-Received: by 2002:a5d:68cf:: with SMTP id p15mr17181726wrw.105.1558369695764; Mon, 20 May 2019 09:28:15 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id x2sm5830394wrs.39.2019.05.20.09.28.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 May 2019 09:28:15 -0700 (PDT) From: Peter Maydell To: qemu-arm@nongnu.org, qemu-devel@nongnu.org Date: Mon, 20 May 2019 17:28:08 +0100 Message-Id: <20190520162809.2677-4-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190520162809.2677-1-peter.maydell@linaro.org> References: <20190520162809.2677-1-peter.maydell@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::443 Subject: [Qemu-devel] [PATCH 3/4] hw/intc/arm_gicv3: Fix write of ICH_VMCR_EL2.{VBPR0, VBPR1} 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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" In ich_vmcr_write() we enforce "writes of BPR fields to less than their minimum sets them to the minimum" by doing a "read vbpr and write it back" operation. A typo here meant that we weren't handling writes to these fields correctly, because we were reading from VBPR0 but writing to VBPR1. Signed-off-by: Peter Maydell --- hw/intc/arm_gicv3_cpuif.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.20.1 Reviewed-by: Philippe Mathieu-Daudé diff --git a/hw/intc/arm_gicv3_cpuif.c b/hw/intc/arm_gicv3_cpuif.c index cbad6037f19..000bdbd6247 100644 --- a/hw/intc/arm_gicv3_cpuif.c +++ b/hw/intc/arm_gicv3_cpuif.c @@ -2366,7 +2366,7 @@ static void ich_vmcr_write(CPUARMState *env, const ARMCPRegInfo *ri, /* Enforce "writing BPRs to less than minimum sets them to the minimum" * by reading and writing back the fields. */ - write_vbpr(cs, GICV3_G1, read_vbpr(cs, GICV3_G0)); + write_vbpr(cs, GICV3_G0, read_vbpr(cs, GICV3_G0)); write_vbpr(cs, GICV3_G1, read_vbpr(cs, GICV3_G1)); gicv3_cpuif_virt_update(cs); From patchwork Mon May 20 16:28:09 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 164655 Delivered-To: patch@linaro.org Received: by 2002:a92:9e1a:0:0:0:0:0 with SMTP id q26csp503075ili; Mon, 20 May 2019 09:37:14 -0700 (PDT) X-Google-Smtp-Source: APXvYqzoPSllfBO57sKUP3p3hPLy1KEnsxnerbj3ZSfQ6HItKilkXBrJDk+Yjca7dGeRv6NJlNB1 X-Received: by 2002:a17:906:1483:: with SMTP id x3mr29183016ejc.90.1558370234036; Mon, 20 May 2019 09:37:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558370234; cv=none; d=google.com; s=arc-20160816; b=1G9wDmg3AwNZU7ZCa5efuE27FDT4PguKVBm/hxFE+e0hKnr8aVsxoK4PB/MhmiBeJI fN7RgSzmAbNHKDZz/3FyVYKV7rOg9UQ3Gd/x0C0UWb7Z9N6Cn7sb3UzxvYcl6bLFmbqN zeAbphVc05RywVL3DqaRak2iXSIHFbWf58B3cC/fAooN4/EBwIND15wUJB2lRjcgHaZm ojQP5sOQe9LEvf84lBCcj8WRXIxsHhI/I/f/PNDi3kCdIZc/JlFX+lSlHCPxzstWWQvw YQs9eB8G8zX80BJ+LhJUe5Es4ReKmQh7ZbRODGpAJqVnGYqLJXJxsC5maHLxFFXS95hf ZdxA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject :content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature; bh=PkWoGkmjDkhsD31RM3UCQj/839ATuI528gwh2A5xGB8=; b=xKL4QhvbRCegMjmpkDNWpz24ouVwZCSnHF11/EQr0obhNvGPGVh/Bb6Z8Y/it/Bh+L +JAyIedzUz5oqdIdCBT4s9YOJ0fzdoQ/ow753YgGER9MonAwusQtsdNfdWPhLoIeZXWD 0EvTGocU4Zyzl1obSX0bU2oI+YGMRV3aK27atRXGfhCn70OPkFALGGKAOr3Q5+Q417w0 uWwKYS8uFSksedgzqOI3hlxekosZlabJ+6SFs+b8g5D5nr8cTpUJDK1ZsXyvR7fcK5/J E7gXvEZ0FIf4ySeiTDIBLA0zBYdt6JZhHo8zhvx+KZENWFpQKfwCmoieYM7k2PW62RL3 LSfw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=Jwmi22dV; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id t10si2418507eju.219.2019.05.20.09.37.13 for (version=TLS1 cipher=AES128-SHA bits=128/128); Mon, 20 May 2019 09:37:14 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=Jwmi22dV; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([127.0.0.1]:38356 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hSlHk-00015R-Tg for patch@linaro.org; Mon, 20 May 2019 12:37:12 -0400 Received: from eggs.gnu.org ([209.51.188.92]:42775) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hSl9H-000387-Ap for qemu-devel@nongnu.org; Mon, 20 May 2019 12:28:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hSl9E-0001Hz-NK for qemu-devel@nongnu.org; Mon, 20 May 2019 12:28:27 -0400 Received: from mail-wr1-x443.google.com ([2a00:1450:4864:20::443]:37148) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hSl9B-0001FI-JJ for qemu-devel@nongnu.org; Mon, 20 May 2019 12:28:23 -0400 Received: by mail-wr1-x443.google.com with SMTP id e15so15346985wrs.4 for ; Mon, 20 May 2019 09:28:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=PkWoGkmjDkhsD31RM3UCQj/839ATuI528gwh2A5xGB8=; b=Jwmi22dVbDnOydNY0B5odrgKV11CmiOu58HW75RFMOF+ajMvP6M8TNN9G0wVXg1w4g DPknhgM5CQc/ZvzQ2kefCY+bRy8vbb0F1sD4ZlbFWwost/aaHmEE+YJvbgm+RuDWxTa3 Hn7SexgatDSuWC3WRjuu+f8Pk+/Gt7rSwQbCpVjh5kqgpLHmGFRvsinQszxZAuFgODMm rC2geh8z3gCmt/zg6PBCUhI9iLyNThh/rTKFhCnQaKvtkd8lm4dwZc7hGLTfWeUXOfKC x1s6JXp/Zho6Pay/ztjRqgVwfVPzxQa1oIzJB9OMYZxA2eQ/6p9Pze4kA46UvvQGeDpO A2pg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=PkWoGkmjDkhsD31RM3UCQj/839ATuI528gwh2A5xGB8=; b=hiNxr9eUbp0ZFNV96OEE0fVt7wuyfxFU3wd2/ttDqUpvETEUlyijvZqPMBpundUrYM gUdqWk/xe6T1z4lqeZp1lxqPXAL8x2grX7p5jofpudO1kcS6G4zyQopeR8KQgQ2+kdfP 6yYCpgwh3roXZDQbQ3ezjrIhuMUdeB34Dz1A7vXIEBRGdI14/5khjQEqMQh/5ezLVb9i 81+n4ziF6tlu7ALUv20fRAzewGHb8gS/vg/VN/xMJmml0nsG58rZHFVOaPM9zyxwLZaM xt8E4mD8UooUDCxFkkBR7ySCuH6Bptm5gmNQQwqAaklrtceyHpmvz/p5R5XFRtIOWd5j 9ypg== X-Gm-Message-State: APjAAAUAiSAT2P5jNuDfXUcWAmwAFUmloni5xBg9fVhHRU0B/MyPOVWn oY2TlSV9KnknkBfhX+VO6DRey6CjmOQ= X-Received: by 2002:a5d:4907:: with SMTP id x7mr33644400wrq.199.1558369697410; Mon, 20 May 2019 09:28:17 -0700 (PDT) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id x2sm5830394wrs.39.2019.05.20.09.28.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 May 2019 09:28:16 -0700 (PDT) From: Peter Maydell To: qemu-arm@nongnu.org, qemu-devel@nongnu.org Date: Mon, 20 May 2019 17:28:09 +0100 Message-Id: <20190520162809.2677-5-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190520162809.2677-1-peter.maydell@linaro.org> References: <20190520162809.2677-1-peter.maydell@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::443 Subject: [Qemu-devel] [PATCH 4/4] hw/intc/arm_gicv3: Fix writes to ICC_CTLR_EL3 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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" The ICC_CTLR_EL3 register includes some bits which are aliases of bits in the ICC_CTLR_EL1(S) and (NS) registers. QEMU chooses to keep those bits in the cs->icc_ctlr_el1[] struct fields. Unfortunately a missing '~' in the code to update the bits in those fields meant that writing to ICC_CTLR_EL3 would corrupt the ICC_CLTR_EL1 register values. Signed-off-by: Peter Maydell --- hw/intc/arm_gicv3_cpuif.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- 2.20.1 Reviewed-by: Philippe Mathieu-Daudé diff --git a/hw/intc/arm_gicv3_cpuif.c b/hw/intc/arm_gicv3_cpuif.c index 000bdbd6247..3b212d91c8f 100644 --- a/hw/intc/arm_gicv3_cpuif.c +++ b/hw/intc/arm_gicv3_cpuif.c @@ -1856,7 +1856,7 @@ static void icc_ctlr_el3_write(CPUARMState *env, const ARMCPRegInfo *ri, trace_gicv3_icc_ctlr_el3_write(gicv3_redist_affid(cs), value); /* *_EL1NS and *_EL1S bits are aliases into the ICC_CTLR_EL1 bits. */ - cs->icc_ctlr_el1[GICV3_NS] &= (ICC_CTLR_EL1_CBPR | ICC_CTLR_EL1_EOIMODE); + cs->icc_ctlr_el1[GICV3_NS] &= ~(ICC_CTLR_EL1_CBPR | ICC_CTLR_EL1_EOIMODE); if (value & ICC_CTLR_EL3_EOIMODE_EL1NS) { cs->icc_ctlr_el1[GICV3_NS] |= ICC_CTLR_EL1_EOIMODE; } @@ -1864,7 +1864,7 @@ static void icc_ctlr_el3_write(CPUARMState *env, const ARMCPRegInfo *ri, cs->icc_ctlr_el1[GICV3_NS] |= ICC_CTLR_EL1_CBPR; } - cs->icc_ctlr_el1[GICV3_S] &= (ICC_CTLR_EL1_CBPR | ICC_CTLR_EL1_EOIMODE); + cs->icc_ctlr_el1[GICV3_S] &= ~(ICC_CTLR_EL1_CBPR | ICC_CTLR_EL1_EOIMODE); if (value & ICC_CTLR_EL3_EOIMODE_EL1S) { cs->icc_ctlr_el1[GICV3_S] |= ICC_CTLR_EL1_EOIMODE; }