From patchwork Tue Jun 12 06:04:13 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vipul Kumar X-Patchwork-Id: 928117 X-Patchwork-Delegate: jagannadh.teki@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=xilinx.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=xilinx.onmicrosoft.com header.i=@xilinx.onmicrosoft.com header.b="NN1y8HWV"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 414fjN3YyTz9s1B for ; Tue, 12 Jun 2018 16:14:16 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 2DEABC21D8E; Tue, 12 Jun 2018 06:11:10 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=BAD_ENC_HEADER, SPF_HELO_PASS, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id F059DC21E62; Tue, 12 Jun 2018 06:11:06 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 0375DC21DB6; Tue, 12 Jun 2018 06:10:15 +0000 (UTC) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0077.outbound.protection.outlook.com [104.47.42.77]) by lists.denx.de (Postfix) with ESMTPS id 24C20C21E45 for ; Tue, 12 Jun 2018 06:10:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector1-xilinx-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SFwgdxK4Xo9rPAmdv7d9t3lQq5XQZxxSVl8rQk1CHG8=; b=NN1y8HWVDsra1ZGR3BbbefFZ77RXB+CL4+MPtKb+7NRL5LYrjhjJsqZ9JyzWSSa42CRZ2hmpbEEuqXr7gr0M/7ToSV0PSe/i1Lqsmptr33qJ8MxPYPSvomPTtUs02mai2YFBRUcR7+rId0WpjE5rQZfmfZSed66VsCqU1rKEwbA= Received: from BN6PR02CA0095.namprd02.prod.outlook.com (2603:10b6:405:60::36) by BN6PR02MB2803.namprd02.prod.outlook.com (2603:10b6:404:fc::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.841.18; Tue, 12 Jun 2018 05:59:50 +0000 Received: from SN1NAM02FT055.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e44::203) by BN6PR02CA0095.outlook.office365.com (2603:10b6:405:60::36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.841.14 via Frontend Transport; Tue, 12 Jun 2018 05:59:50 +0000 Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.100 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.100; helo=xsj-pvapsmtpgw02; Received: from xsj-pvapsmtpgw02 (149.199.60.100) by SN1NAM02FT055.mail.protection.outlook.com (10.152.72.174) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.863.11 via Frontend Transport; Tue, 12 Jun 2018 05:59:50 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66]:48186 helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw02 with esmtp (Exim 4.63) (envelope-from ) id 1fScLN-0004dz-PF; Mon, 11 Jun 2018 22:59:49 -0700 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1fScLI-0004Ji-MA; Mon, 11 Jun 2018 22:59:44 -0700 Received: from xsj-pvapsmtp01 (xsj-pvapsmtp01.xilinx.com [149.199.38.66]) by xsj-smtp-dlp1.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id w5C5xabI007060; Mon, 11 Jun 2018 22:59:36 -0700 Received: from [172.23.18.183] (helo=xhdvipulk40.xilinx.com) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1fScL9-0004Hd-Jt; Mon, 11 Jun 2018 22:59:36 -0700 From: Vipul Kumar To: Date: Tue, 12 Jun 2018 11:34:13 +0530 Message-ID: <1528783453-7375-4-git-send-email-vipul.kumar@xilinx.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1528783453-7375-1-git-send-email-vipul.kumar@xilinx.com> References: <1528783453-7375-1-git-send-email-vipul.kumar@xilinx.com> X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.2.0.1013-23620.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.100; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(346002)(376002)(39380400002)(39860400002)(396003)(2980300002)(438002)(199004)(189003)(76176011)(51416003)(47776003)(7696005)(59450400001)(316002)(478600001)(9786002)(2351001)(26005)(106466001)(2906002)(63266004)(426003)(6666003)(5890100001)(486006)(77096007)(446003)(4326008)(54906003)(81166006)(186003)(50466002)(50226002)(48376002)(6916009)(476003)(5660300001)(126002)(2616005)(106002)(36756003)(8746002)(356003)(336012)(107886003)(8676002)(81156014)(6346003)(305945005)(11346002)(44832011)(8936002)(36386004)(107986001)(217873001)(5001870100001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR02MB2803; H:xsj-pvapsmtpgw02; FPR:; SPF:Pass; LANG:en; PTR:xapps1.xilinx.com,unknown-60-100.xilinx.com; A:1; MX:1; X-Microsoft-Exchange-Diagnostics: 1; SN1NAM02FT055; 1:2P6poxF3878ydBZN/vcA53DzB3Ksti8wjTo5L4lCs4YrdTSNwyKSrhnrJHzdt0Y+LB/ejtvOjNKxDOpCr4k/bxz+SovE2X0Z/qvTim2C5apBDyR9LsntgYqC1OVy3hu2 MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(4608076)(2017052603328)(7153060); SRVR:BN6PR02MB2803; X-Microsoft-Exchange-Diagnostics: 1; BN6PR02MB2803; 3:u6uL6DKvr4Il/Fxbqd2gf/JKvoC83CXIq+NgfhTLO2s/HPujl9+B884YaCYiPc9oGwERHhx9HuRrKMO7iJC/RCmZMOd2pMalmcDIDDRQuVdvA1JAEhLVeE6DPx2t0vFT4eWt2c+Fg0ROIKNGygJ22N6Bo4XxV5t/E/hlRb3Qhq71S+01YBApoYcUt391+HpsErbs3b/9UA0bTkODPvpnEh0u53H5JmSAVUdYR4gWS2gooNcxfpN8wVgwKVHx8c9+gP4ZuutSRTrvPNGr4vM2f4owsSKsoRpnxwUjmUKJJyjoBPPRw2spkkFL3lR3N0F4sErIDLxy8XxYDVPHmNd6mKyz6GJ4tqfcesju76XF+7w=; 25:t+6FwWsq1ieOzpwbpWYeZis478BeIx0mGfGR6tKEwzGIHr/v4w+220jDTX4ZJmwoztHey7JP8w4pcuOw3w9Qhjcwg+QkDdxmBtIEVAlusItHBEairiYBBd9QqxdPodamiOqTX+GZVhkZNoHi2ki7klD4Jg+Gtlm7QpUEL0APAzyGgEo0Cpk8cU2ZLg9mETIOuQNiCSESSARJTGWC2U0eQt3l2xdVnypGqdBTyX+hEHHePg7RnXdBErZxra3f81t+hQxbEHN8/ZsYpdh80qzbXQ/Iz8c7vGUZwLX1ySDr1AY9NOU/iPpkLykQKeXH6AFSmv9TGVu7SSWaKVcGovMsQg== X-MS-TrafficTypeDiagnostic: BN6PR02MB2803: X-Microsoft-Exchange-Diagnostics: 1; BN6PR02MB2803; 31:YUDNiFZ4RBQXmgvuVc4O5FS6bDN8mHV98Zp08fZmYJx7tX3T7oWINeY56PkGhuDOZgSmZ5K4XXm0NnKWUUZ9rdU6M9dqwEHu5trVTKmD6b/LzZkc2H/Ba7J8RP6WwAwdXCM2mkfBsBw7mHXTrVbPqVRceyYlrXc0kHTbpEiRKB3f99XNUT31buTmu79mVJteLpOgbpN9eo0Q9ecA7xBBUgnAXfhTwFcBYHI+pn2WpK4=; 20:Z+/00GMtdE5wEms7ek3s3J2W6wwh1El8MZ24wr0Kv9VtmMHv36LyJrw3NurbFEsgFq3UaxpUgn2RY1sEVcCM90DRfnQlqug+1/is1iVCMdBL6MvT2oufKzPOaK5mFTJHvsbii6USKT1R6H214NhEeqfhBq7CEQNtB5ppJARP46ZV45fsNUulAD63OeAMA23sEWl1sg20lsvncykWBkpbETUgTxDtB6iGhZtky9tr2HE89lyITv+xgzVOBzHNtpMBnKBsNcHj6xOQ9ilQpO9LfBIobAZjseTwGwzuiJu6htVrA1r8KEH4sTt3Q2WdQ1oFI9Xi+toXpX3FtgjKwJSVBgXHG8tSRv+niwT34AwA51UI9Ip+ZEUsTdBjuFtCk9KtjHuZ8N88RKrIikGhhHiqmtOQg3O+vErO0AzfWfWj5c2GyiCbcvmDThCRhyvqsy1ElZOfFbOvKSwfVgU4ZHkF+EbC64avIyID+AaMdSSHrMnKyGklsjkOITS8/QXw60MC X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(192813158149592); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(3002001)(93006095)(93004095)(3231254)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123560045)(20161123562045)(20161123564045)(6072148)(201708071742011)(7699016); SRVR:BN6PR02MB2803; BCL:0; PCL:0; RULEID:; SRVR:BN6PR02MB2803; X-Microsoft-Exchange-Diagnostics: 1; BN6PR02MB2803; 4:d2puGjWs3PeW+cK4oBtPRhS7oE4Etb0cYEIhE3QlxyMwRbc0AVNJgJK9b2/kLOFpkxO/s4kixmok3P/vQCMDVu5uNP9w89jhSwUqyhIEvNUVymAL3fcEYtrbZ5uxo6g8xwcz6iJHov6MmhXWrqaQV8mme9/+qh+16lNRGAjx3DCsnkSx54BAgimditkYgIhonNE0s6oPy9nEnT3RMBayBr7AoGoBS0gmZvHAyYV+0fJBmtlrNz0BGrZAFgSZycRhe+SGCtN7kAzYkH3yxvehPD+vTh7n/NK6x76dkoZuEKrSQ6SFqwfdy3gLzb8xhAqa X-Forefront-PRVS: 07013D7479 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR02MB2803; 23:AwoshtfA3VSxnvkaQcrfyVk4anfOc9cvK6byTBRGN?= z/5PJsYwLfLLIgU3x4yUZORNTuARoaeblSdYGvhgLmKjkk1grZRK+9/ZWtLOvY7k6TfQ6bNfXspKJJURnPFSb67kucc9fLRhCGLAVN6ksgK/vzvjlBEe4Bs8SMVAHxBbl1TbhlORiEYnD9VQYWvXrPWxyfdjDSIWtAEhIxFQFFiGO3+cFP5gx3LwfDovBI2QH5Y7H2KDKmjORw0pleYqSVlLeyc5ei1nT4ad+/CcItzJq21dspYa4YYvdzDSejphD+o/EhNGRlKeiTlCqA/sRa4LXfRtXTSdyXYe6QRQoI3JVKEkNJxMzxr9OebUJeHh6Q2PnvX4PLUVsQYONXbQgzYFPZt6U1B3JgoE2TNmZ+EOmNOWLy8M6i23T5NALuo/zODjlkeitNW2F4Nk82eqhZWAKQQDHLAcigYX20Z74vkqwB2yOZ0+20KzDhahvssGw8E3mH52lftdqkMbV3JMXW7Olx5QKbcTDqv5hcWLb7KBc//owqL+XKkCvv9yRQZok0MtFbjzoGz5xTPyx0WvHQAn+q3KzzaYYyZMh/rjm+LfTG0uIU+dPzBhTsRV1Jv+xg0rmfsYws4iwbRDho+Vu3ESt6HbE7Ms/AxkqFg59HZFRvJK5UkktFK1P+LS8eP3V2KxI7711Wl22uXVr7le0f7rkhyF+KUhLOR02zMLG4rWLeCYa16vnrIJ+Ve1ZBtp6EcYOLIfJAB3sCC8hnZZVeYPxcgr3d6QWZYBTYUlD7fcul3l8NmLAtfsEJdHlcV7CyEH3kWBzNT6SJmWMrMWqQLYxGGhmEMZLir/dZ8IvXlTkT4VvtdPC/pnLQjSEzZZHQgVwC3fWxwpx4enFP2xm4wQ7bXEe9A7FsUBXVNeab4hP1Mg1yg4m6Ssa0aV6F7lWcClzIsNHMy9EAt2htgqi2c69ZKljGOnzuG3haD2RyEaSTKTV1NzS7BuH/huycNWh6ddK80IOul04oYW68kzUU3p+Jf132xh19j2DCabxkictqmVQNBauIkfe01vNZqChlPLKZ2b9YYss7Cd4hdsOHIxMMxJ/sVBRnm8txxjhgqpGamaIipt+uQUNKL7FTgzZK1J5gNaENs14UUtuILr7mM2Kd/DpkFbTeDy6LEAuYRsn7N8QxqcmQxdoyE1zPGcKdhfPlrwViVch2DnK8+mSbka0dDj5McPfPzKdtIRFCfY64ze3fiLZoiZv2VqyfRXu1loEF2zkYosx4ghsjh0qrI X-Microsoft-Antispam-Message-Info: cf9RG72XcTwHw98MmaIc4AcJZuIVO7zVUEDuwbmfDVVNt5poP2UtUeEfgRMEHTPER5Pjpf0zTh+HufiK0iqfP+k8VcYtRMG3uPk6Oex1I5QHBsmJ9STykLkwhi9QE0rRaxibnQXHQvk+gJfGantzqgHaTY7F7EAth4Hl9e/TD0iKhFgc3GwcMG9jbUOQNP1n X-Microsoft-Exchange-Diagnostics: 1; BN6PR02MB2803; 6:HWQqtZcyxRMDghtJpqKNEqL3k9AyfjQZy7x/lpBcKNhvVRf1pBMmUzsoMW6ucP0J8aylamYjPZtLF4GgWQDEeHZDmSVtZbhMpg5KVo4vEnip5fstexRXi/Us1yZZPw1UbHhoSo6g30p+Y8Qw8Ypwg4DjGdMq44Y9njVEzT1iekRt2MHh2CnSTZoqsOVombLXED9nXB1o4nnvxECvmnIlKQ7ymZ6q+qoSs89QrpedP9MENuG4O9Isusxdi1JQwHPb5XdqOwFuYDgV5Bcg26YSyxKXIMrfnoVTjXDQeJ5XKWXrbGp+wGPh3yA0CKcGHx+GgZNTQIMNw4m+4xo2qnlZ9UIpV2bP9pYBxVGxsNRgHxoa4npxGACRFT0/ytMsNbLG40zTcppeP5O5E5lvbk1ZCYK3IUa3yb6k5ngM6cCG71bUBG0m1LJD7SxFiMPEhexpZPKaaklQ8dBJwkurqrMIwg==; 5:refkIfnBaJxHIotIUOMR+U/Kb3B8oyGgxkwg6I5M0FnIbPUcBzQVllh0UW26TATzg/q5D+fsMGvKt9R2z0DGWio0mzTUYmkppFrGQKhbTN5Y7pVNLaSj4OfWUhP8vZLx8ZuaH+l+x9a8jPrb+2yAc/WuFdcVpMIPnVJbc7Y2pJI=; 24:1gj0HMbS3whOW4aSzu46cuz94d+iE8YUF+77pQ2ZoKnOtdoK1qzMWvVArv94NrYFv9q5NJYXRcBF9vekqkjvVZqd+g0VL/MxDE2ZGpuAlLM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN6PR02MB2803; 7:Ij8/GT+Dt2PAL+4XrWeqj5QNDpqtSQNlMohbM9n/SZ9WgOm/Xak+ooQQqcQPbiTmnTfeS7cJUXW6Povm+g55sAN/m+ttKSeAWPV+xWUKShXTISVXFPA0WwsByVnvj3XKb4Lhgm6U/tsRGR4Z3RH+agoF7nHI1VqI8ybyzbjXDUGHKKqBKqW2bpqukvuPtT+Ryv/UGEQDnb28KXXcEtbUl5vvSLa71JwXnNG1xROvfjYWlCDURmV0TVvdH5eETQyf X-MS-Office365-Filtering-Correlation-Id: e11bcaf6-c550-4b61-93c2-08d5d029b5a2 X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2018 05:59:50.1110 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e11bcaf6-c550-4b61-93c2-08d5d029b5a2 X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.60.100]; Helo=[xsj-pvapsmtpgw02] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR02MB2803 Cc: jagan@openedev.com, michal.simek@xilinx.com, Vipul Kumar Subject: [U-Boot] [UBOOT PATCH v2 3/3] spi: xilinx_spi: Added support to read JEDEC-id twice at the boot time X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" This patch is for the startup block issue in the spi controller. SPI clock is passing through STARTUP block to FLASH. STARTUP block don't provide clock as soon as QSPI provides command. So, first command fails. This patch added support to read JEDEC id in xilinx_spi_xfer (). Signed-off-by: Vipul Kumar --- drivers/spi/xilinx_spi.c | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) -- 2.7.4 This email and any attachments are intended for the sole use of the named recipient(s) and contain(s) confidential information that may be proprietary, privileged or copyrighted under applicable law. If you are not the intended recipient, do not read, copy, or forward this email message or any attachments. Delete this email message and any attachments immediately. diff --git a/drivers/spi/xilinx_spi.c b/drivers/spi/xilinx_spi.c index 70a110a..08c2883 100644 --- a/drivers/spi/xilinx_spi.c +++ b/drivers/spi/xilinx_spi.c @@ -199,6 +199,40 @@ static u32 xilinx_spi_read_rxfifo(struct udevice *bus, u8 *rxp, u32 rxbytes) return i; } +static void xilinx_startup_block(struct udevice *dev, unsigned int bytes, + const void *dout, void *din) +{ + struct udevice *bus = dev_get_parent(dev); + struct xilinx_spi_priv *priv = dev_get_priv(bus); + struct xilinx_spi_regs *regs = priv->regs; + struct dm_spi_slave_platdata *slave_plat = dev_get_parent_platdata(dev); + const unsigned char *txp = dout; + unsigned char *rxp = din; + static int startup; + u32 reg, count; + u32 txbytes = bytes; + u32 rxbytes = bytes; + + /* + * This loop runs two times. First time to send the command. + * Second time to transfer data. After transferring data, + * it sets txp to the initial value for the normal operation. + */ + for ( ; startup < 2; startup++) { + count = xilinx_spi_fill_txfifo(bus, txp, txbytes); + reg = readl(®s->spicr) & ~SPICR_MASTER_INHIBIT; + writel(reg, ®s->spicr); + count = xilinx_spi_read_rxfifo(bus, rxp, rxbytes); + txp = din; + + if (startup) { + spi_cs_deactivate(dev); + spi_cs_activate(dev, slave_plat->cs); + txp = dout; + } + } +} + static int xilinx_spi_xfer(struct udevice *dev, unsigned int bitlen, const void *dout, void *din, unsigned long flags) { @@ -231,6 +265,13 @@ static int xilinx_spi_xfer(struct udevice *dev, unsigned int bitlen, if (flags & SPI_XFER_BEGIN) spi_cs_activate(dev, slave_plat->cs); + /* + * This is the work around for the startup block issue in + * the spi controller. SPI clock is passing through STARTUP + * block to FLASH. STARTUP block don't provide clock as soon + * as QSPI provides command. So first command fails. + */ + xilinx_startup_block(dev, bytes, dout, din); while (txbytes && rxbytes) { count = xilinx_spi_fill_txfifo(bus, txp, txbytes);