From nobody Fri Oct 24 09:45:20 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=gmail.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1519428328344954.5129317342364; Fri, 23 Feb 2018 15:25:28 -0800 (PST) Received: from localhost ([::1]:47771 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1epMiV-00080S-LD for importer@patchew.org; Fri, 23 Feb 2018 18:25:27 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49604) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1epMfq-0006KZ-PB for qemu-devel@nongnu.org; Fri, 23 Feb 2018 18:22:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1epMfm-00026X-Go for qemu-devel@nongnu.org; Fri, 23 Feb 2018 18:22:42 -0500 Received: from mail-lf0-x244.google.com ([2a00:1450:4010:c07::244]:44652) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1epMfm-00024y-8Y for qemu-devel@nongnu.org; Fri, 23 Feb 2018 18:22:38 -0500 Received: by mail-lf0-x244.google.com with SMTP id v9so14576628lfa.11 for ; Fri, 23 Feb 2018 15:22:38 -0800 (PST) Received: from localhost.localdomain (94-255-131-112.cust.bredband2.com. [94.255.131.112]) by smtp.gmail.com with ESMTPSA id q63sm685919ljq.17.2018.02.23.15.22.35 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 23 Feb 2018 15:22:36 -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=22T+CFgNtpSUNsBr6zOOV0tgl5JLF6HkXoE28i+0tJU=; b=F3f/lKI45bRPEt+HJQSSOeFgC73hHl6HSAbR1b3Q7kvSrgxnLmXOje6EVBHCdBmOJS ZJjD1hbmk8M7L0LRdwJR9TPRCtFNc6j1sPSo8+99d+ynmkVzFixY+ExWEoXg22FyO3my Mbqy1eQ+JKFEv58i3nINkEhQtaWUpoh3rj5EXVDCeo+HtKmWUSG+AXtwLh7l9rd4MGIb PB2fC7vn7S3xK4uSkLDSGA0jqK0D0Y+PCzx3wzaOep7xOS17wRBBpRnWs9fLByusrd/L EP/XbOqcRgIol5IQ6ov8jEFoaNkZy2P0nWlLCb+dPM+/OC2RFXJxcRAfg3PVI6LW2DFN ApBQ== 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=22T+CFgNtpSUNsBr6zOOV0tgl5JLF6HkXoE28i+0tJU=; b=g3fdpZrngjn6TJSFwuGA3dA7lDsoBUBO74dDblldESbJtu8PBZsH9aqd9gyVH01fNt KRwstZIC54RUB12oW1KIuQb1GTI5sLqY6Px2nVstKfCflCqdvAUptE4+dYL/PWUPeP97 657HeLGSiMpWLbQ9/uM/0VzmhICXIwx/uFLzPrNICopnhnsR2imFDe1qQ8myxkJaOdgP PSchA5fBno1xShhyDrq7tXOmSobzLMmAD0otUHNxcMDYGiPB4yjvidOspft7on/Y83le zn7X3P9Q5U4slFawRsgJnigToCHDRfLHEwKfy9oe+D5W0ackt1Jbe6mjcLkk0i97sdVU 8Q4Q== X-Gm-Message-State: APf1xPDOhKhOUWjPuARiTAI4/miLvs3joci0PQdGVuCk8U8XfBp+pAbL UrGNmLv6XNPcha8GhOlD3I31ZNP4 X-Google-Smtp-Source: AG47ELs50YrzzhhTwR7CWmcqShgvF8BTPocIZLYRBaEFN4YgnN1pSQ2XR2eMuay81HEw5+TZtRmvdA== X-Received: by 10.46.4.74 with SMTP id 71mr2439111lje.51.1519428156738; Fri, 23 Feb 2018 15:22:36 -0800 (PST) From: Francisco Iglesias To: qemu-devel@nongnu.org Date: Sat, 24 Feb 2018 00:22:32 +0100 Message-Id: <20180223232233.31482-2-frasse.iglesias@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180223232233.31482-1-frasse.iglesias@gmail.com> References: <20180223232233.31482-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::244 Subject: [Qemu-devel] [PATCH v2 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+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 Reviewed-by: Alistair Francis Tested-by: Alistair Francis --- hw/ssi/xilinx_spips.c | 41 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 4 deletions(-) diff --git a/hw/ssi/xilinx_spips.c b/hw/ssi/xilinx_spips.c index 8af36ca3d4..0cb484ecf4 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; =20 - for (i =3D 0; i < s->num_cs; i++) { + for (i =3D 0; i < s->num_cs * s->num_busses; i++) { bool old_state =3D s->cs_lines_state[i]; bool new_state =3D field & (1 << i); =20 @@ -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 =3D SNOOP_CHECKING; s->cmd_dummies =3D 0; s->link_state =3D 1; @@ -248,7 +248,40 @@ static void xlnx_zynqmp_qspips_update_cs_lines(XlnxZyn= qMPQSPIPS *s) { if (s->regs[R_GQSPI_GF_SNAPSHOT]) { int field =3D ARRAY_FIELD_EX32(s->regs, GQSPI_GF_SNAPSHOT, CHIP_SE= LECT); - xilinx_spips_update_cs(XILINX_SPIPS(s), field); + bool upper_cs_sel =3D field & (1 << 1); + bool lower_cs_sel =3D field & 1; + bool bus0_enabled; + bool bus1_enabled; + uint8_t buses; + int cs =3D 0; + + buses =3D ARRAY_FIELD_EX32(s->regs, GQSPI_GF_SNAPSHOT, DATA_BUS_SE= LECT); + bus0_enabled =3D buses & 1; + bus1_enabled =3D buses & (1 << 1); + + if (bus0_enabled && bus1_enabled) { + if (lower_cs_sel) { + cs |=3D 1; + } + if (upper_cs_sel) { + cs |=3D 1 << 3; + } + } else if (bus0_enabled) { + if (lower_cs_sel) { + cs |=3D 1; + } + if (upper_cs_sel) { + cs |=3D 1 << 1; + } + } else if (bus1_enabled) { + if (lower_cs_sel) { + cs |=3D 1 << 2; + } + if (upper_cs_sel) { + cs |=3D 1 << 3; + } + } + xilinx_spips_update_cs(XILINX_SPIPS(s), cs); } } =20 @@ -260,7 +293,7 @@ static void xilinx_spips_update_cs_lines(XilinxSPIPS *s) if (num_effective_busses(s) =3D=3D 2) { /* Single bit chip-select for qspi */ field &=3D 0x1; - field |=3D field << 1; + field |=3D 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) { --=20 2.11.0