From patchwork Thu Feb 22 22:28:43 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Francisco Iglesias X-Patchwork-Id: 876856 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Yh0IkpG7"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3znTYT2lBbz9sW4 for ; Fri, 23 Feb 2018 09:29:33 +1100 (AEDT) Received: from localhost ([::1]:41256 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eozMp-0000SP-D3 for incoming@patchwork.ozlabs.org; Thu, 22 Feb 2018 17:29:31 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46579) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eozMC-0000Rf-9G for qemu-devel@nongnu.org; Thu, 22 Feb 2018 17:28:53 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eozMA-0001Lt-5l for qemu-devel@nongnu.org; Thu, 22 Feb 2018 17:28:52 -0500 Received: from mail-lf0-x243.google.com ([2a00:1450:4010:c07::243]:44598) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eozM9-0001L6-US for qemu-devel@nongnu.org; Thu, 22 Feb 2018 17:28:50 -0500 Received: by mail-lf0-x243.google.com with SMTP id v9so9664237lfa.11 for ; Thu, 22 Feb 2018 14:28:49 -0800 (PST) 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; bh=fydBjBU2RrX3fu1gQeDKATZFGbyJ3B0HT07jjEt1hic=; b=Yh0IkpG7hja4xHe7CMPy7xKCbjVVaVEn9HG6X1ipuqutmuOxO6mGsQI7QRQVpkt2Zw r452YIvXXiS5Se3rGBpu76mgt+LJE0/ijEf7L4bnBhsM7qNSlNN5bH3xa3BNcwvFbJvY LPIm/oFpuXhWDcLLB/5SmZDhd5cJH0lg9X79E2XXJNxjhGP4GOWyelLyVVDfypdh3eUE 0Dh1hLTUcJZT/Ehzo1nfmG8DEWSjfRg3xFKVd3Ybv6/1lHf0JgmXp4X7zQ/L57CG35D8 ao1/YR3UWSqtZvkTXwABvQF4Yt+hdXhEqE0F9l2sSSaKQnSgqpBWfpTMM9NEYNddUO7y F3gQ== 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; bh=fydBjBU2RrX3fu1gQeDKATZFGbyJ3B0HT07jjEt1hic=; b=JXFts0S0nqAezSdUE9l1f978v/ocuDsZLnqOuoZ7cSaY87DZ0iWJwku5Q+2Ss7zJNi r+7SMj0zoTu0xrosVciWVFEBh0caDHetWPY0T/xk9UxGyGznoFyrkZnwBjYFk6Uu/3Em 5qMoEg+sLqmlcMzicyZofXHczHCtt7gWgvAvM1D2DckHapTph+vNwtAli+vvN/auvZnQ 40p2XocaAp6ztez78mO4GGEYKR6baMjSn2hUdC+vfiZ+a1MUeI0bqD7b6usiq8fydP8p RQ3vbqNzyWioMdgJjWpbUDIDPU686zCNPh/EWg1SU/OJmsK3gIwiF9CqGLOTTcYeV0HR wigw== X-Gm-Message-State: APf1xPAEBsliu6rGZDnbHBQaaGHj/TDmHfeEoDJm5ZsgLHvobLMzpm8q BATOXy3NoipjypnKUQd59pVj/w== X-Google-Smtp-Source: AH8x225a4lPUCjO7Aw0OtdUxRCtPeU1O4yTM3EVDAdPj8DYXnVKQOHq+pDUTzZ/+g5gYXaqiRQdv7w== X-Received: by 10.46.58.2 with SMTP id h2mr6279816lja.95.1519338528295; Thu, 22 Feb 2018 14:28:48 -0800 (PST) Received: from localhost.localdomain (94-255-130-40.cust.bredband2.com. [94.255.130.40]) by smtp.gmail.com with ESMTPSA id x23sm203593ljc.33.2018.02.22.14.28.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 22 Feb 2018 14:28:47 -0800 (PST) From: Francisco Iglesias To: qemu-devel@nongnu.org Date: Thu, 22 Feb 2018 23:28:43 +0100 Message-Id: <20180222222844.7109-2-frasse.iglesias@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180222222844.7109-1-frasse.iglesias@gmail.com> References: <20180222222844.7109-1-frasse.iglesias@gmail.com> 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 1/2] xilinx_spips: Enable only two slaves when reading/writing with stripe 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: peter.maydell@linaro.org, edgari@xilinx.com, alistai@xilinx.com, francisco.iglesias@feimtech.se Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Assert only the lower cs on bus 0 and upper cs on bus 1 when both buses and chip selects are enabled (e.g reading/writing with stripe). Signed-off-by: Francisco Iglesias Tested-by: Alistair Francis --- hw/ssi/xilinx_spips.c | 42 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/hw/ssi/xilinx_spips.c b/hw/ssi/xilinx_spips.c index 8af36ca3d4..e566d179fe 100644 --- a/hw/ssi/xilinx_spips.c +++ b/hw/ssi/xilinx_spips.c @@ -223,7 +223,7 @@ static void xilinx_spips_update_cs(XilinxSPIPS *s, int field) { int i; - for (i = 0; i < s->num_cs; i++) { + for (i = 0; i < s->num_cs * s->num_busses; i++) { bool old_state = s->cs_lines_state[i]; bool new_state = field & (1 << i); @@ -234,7 +234,7 @@ static void xilinx_spips_update_cs(XilinxSPIPS *s, int field) } qemu_set_irq(s->cs_lines[i], !new_state); } - if (!(field & ((1 << s->num_cs) - 1))) { + if (!(field & ((1 << (s->num_cs * s->num_busses)) - 1))) { s->snoop_state = SNOOP_CHECKING; s->cmd_dummies = 0; s->link_state = 1; @@ -248,7 +248,41 @@ static void xlnx_zynqmp_qspips_update_cs_lines(XlnxZynqMPQSPIPS *s) { if (s->regs[R_GQSPI_GF_SNAPSHOT]) { int field = ARRAY_FIELD_EX32(s->regs, GQSPI_GF_SNAPSHOT, CHIP_SELECT); - xilinx_spips_update_cs(XILINX_SPIPS(s), field); + bool both_buses_enabled; + uint8_t buses; + int cs = 0; + + buses = ARRAY_FIELD_EX32(s->regs, GQSPI_GF_SNAPSHOT, DATA_BUS_SELECT); + both_buses_enabled = (buses & 0x3) == 0x3; + + if (both_buses_enabled) { + /* Bus 0 lower cs */ + if (field & 1) { + cs |= 1; + } + /* Bus 1 upper cs */ + if (field & (1 << 1)) { + cs |= 1 << 3; + } + } else { + /* Bus 0 lower cs */ + if (buses & 1 && field & 1) { + cs |= 1; + } + /* Bus 0 upper cs */ + if (buses & 1 && field & (1 << 1)) { + cs |= 1 << 1; + } + /* Bus 1 lower cs */ + if (buses & (1 << 1) && field & 1) { + cs |= 1 << 2; + } + /* Bus 1 upper cs */ + if (buses & (1 << 1) && field & (1 << 1)) { + cs |= 1 << 3; + } + } + xilinx_spips_update_cs(XILINX_SPIPS(s), cs); } } @@ -260,7 +294,7 @@ static void xilinx_spips_update_cs_lines(XilinxSPIPS *s) if (num_effective_busses(s) == 2) { /* Single bit chip-select for qspi */ field &= 0x1; - field |= field << 1; + field |= field << 3; /* Dual stack U-Page */ } else if (s->regs[R_LQSPI_CFG] & LQSPI_CFG_TWO_MEM && s->regs[R_LQSPI_STS] & LQSPI_CFG_U_PAGE) { From patchwork Thu Feb 22 22:28:44 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Francisco Iglesias X-Patchwork-Id: 876857 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="TYHH+ADY"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3znTYW1QBlz9sW3 for ; Fri, 23 Feb 2018 09:29:35 +1100 (AEDT) Received: from localhost ([::1]:41257 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eozMr-0000Sd-5o for incoming@patchwork.ozlabs.org; Thu, 22 Feb 2018 17:29:33 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46581) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eozMC-0000Rh-9L for qemu-devel@nongnu.org; Thu, 22 Feb 2018 17:28:53 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eozMB-0001Mr-BC for qemu-devel@nongnu.org; Thu, 22 Feb 2018 17:28:52 -0500 Received: from mail-lf0-x242.google.com ([2a00:1450:4010:c07::242]:45966) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eozMB-0001Ly-2w for qemu-devel@nongnu.org; Thu, 22 Feb 2018 17:28:51 -0500 Received: by mail-lf0-x242.google.com with SMTP id x196so9660438lfd.12 for ; Thu, 22 Feb 2018 14:28:50 -0800 (PST) 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; bh=4fK+2cXFxgSlg2Gu1WqRAkINvXQ7kmA2SmJPhVPa930=; b=TYHH+ADYUFH1Kj2E/Ztfx45vrD2JyeMjSa4FID8WV8qE3QuUEVSwEkITrnhY5l1mVk mZ/ahPc2x0XYXs0sRgBqRyFclv7OvknEqZfU9GKp3/VUw2b0g7XYfuQkHNuh0aFeixuU iDSScMwcNwwA5e/Ir0lYaB84uieL3gzkn6PtWy0EdySoBw1PeujJMzyBY65wUi98yHGu rIT2TGhrPbTElejeYzSCuUURjHFSvtHByB03cGE3B09QrvP4qV/TSmb1Fqp6AAwqvwoV jozJYvq7iepM206dDxEwgFYZ56Me8GHNe8TtW2IgFluTV97swxdA5JFij/ySPgRFLX0H PUJQ== 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; bh=4fK+2cXFxgSlg2Gu1WqRAkINvXQ7kmA2SmJPhVPa930=; b=MMTNTf+mrT8gDqViSSIc9YkRubaJ2TsCSH0txnZKicbKGz6eC7O607KdH8+TaXdad2 NQWrKErLxQ1RnkbXpECTjP+UeF2lH9hSegKLN5iULidvY8wygZbDoy1d62+mRq8jodFH G9Q6C7ANHvIX8ZIGeNpPrc/CsQHPmYoGyJsDodgepFqnOdk3liCHJ41xuce8rdWtCpBH d6MurEzfH4OQPpwlS8GY0bKfZVCBFqrP5f0D2L7ueHdTWlUfqxTKMGwkVzUNrPTAOo/d ooB5XW10iBDBdNTBH1Rdy7LJ+GIE2p0W5QUYn5hffWPdd18kmbpuqBr8eg+fw9BqMy07 OAHQ== X-Gm-Message-State: APf1xPCPMzUrQhWs8qOtlSgNcxhHB707BxiUQGtEqaIfMYgXbgNcSVnf Jf6MOjNDjQ1mAumMvCfcBXPNEQ== X-Google-Smtp-Source: AH8x225sDpDO9cm8yMaE6WPcdaL2eLNSzD2PBkEWt86QXMgjpn8eqUYQtaa7rjTu2ZRF/bOJdYpQiw== X-Received: by 10.46.124.8 with SMTP id x8mr5758720ljc.121.1519338529576; Thu, 22 Feb 2018 14:28:49 -0800 (PST) Received: from localhost.localdomain (94-255-130-40.cust.bredband2.com. [94.255.130.40]) by smtp.gmail.com with ESMTPSA id x23sm203593ljc.33.2018.02.22.14.28.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 22 Feb 2018 14:28:48 -0800 (PST) From: Francisco Iglesias To: qemu-devel@nongnu.org Date: Thu, 22 Feb 2018 23:28:44 +0100 Message-Id: <20180222222844.7109-3-frasse.iglesias@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180222222844.7109-1-frasse.iglesias@gmail.com> References: <20180222222844.7109-1-frasse.iglesias@gmail.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4010:c07::242 Subject: [Qemu-devel] [PATCH 2/2] xilinx_spips: Use 8 dummy cycles with the QIOR/QIOR4 commands 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: peter.maydell@linaro.org, edgari@xilinx.com, alistai@xilinx.com, francisco.iglesias@feimtech.se Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Use 8 dummy cycles (4 dummy bytes) with the QIOR/QIOR4 commands in legacy mode for matching what is expected by Micron (Numonyx) flashes (the default target flash type of the QSPI). Signed-off-by: Francisco Iglesias Tested-by: Alistair Francis Reviewed-by: Alistair Francis --- hw/ssi/xilinx_spips.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/ssi/xilinx_spips.c b/hw/ssi/xilinx_spips.c index e566d179fe..eb7fc0ea71 100644 --- a/hw/ssi/xilinx_spips.c +++ b/hw/ssi/xilinx_spips.c @@ -578,7 +578,7 @@ static int xilinx_spips_num_dummies(XilinxQSPIPS *qs, uint8_t command) return 2; case QIOR: case QIOR_4: - return 5; + return 4; default: return -1; }