From patchwork Mon Mar 22 06:30:11 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuldeep Singh X-Patchwork-Id: 1456398 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=hLsvRpz6; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4F3l4c2d3dz9sS8 for ; Mon, 22 Mar 2021 17:30:52 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 72AC1829FB; Mon, 22 Mar 2021 07:30:38 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="hLsvRpz6"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id ECD7282A68; Mon, 22 Mar 2021 07:30:36 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=0.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FORGED_SPF_HELO,MSGID_FROM_MTA_HEADER, SPF_HELO_PASS autolearn=no autolearn_force=no version=3.4.2 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2062d.outbound.protection.outlook.com [IPv6:2a01:111:f400:7d00::62d]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id DA12D829BF for ; Mon, 22 Mar 2021 07:30:33 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=kuldeep.singh@nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Pp9TKCd2aNwucME8O/HLW+iAO9eR3AJa76vJ8SY3yO3wMLR8peJwpkIZ2WRr1PU9ox7LrAbEqJwZXbk9n0i1cD7H/jhPnyt8PWeBdnfJODU3y/p5gcZG6dRvW+VbrUgznR3GJAcLJCfvGdIWjOcUl4UKvn1JbZLuTanHe9ieWhli/fTMW3gCWjlHLr8eJ3nfonY8J9Nx2cBFswZTM87h3Y9sQnpPz7Wrlwq3H2UNa+Pqpy7wlcXo9nTFprz+VhGkQUGPEoL+CspDogK9lFivx45iNW0gdxF/Du+rAn1z8wZOEvaOds5u9g8yoAeGcGE/tQfdCTpvMUjyCG/DfASroA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Wbo+C4PFJcwMlHh7HhgrxfsFybxAWntK1aGQV1Q5SLE=; b=UQwa4+EL8K58ePeGZdLNJlLAdDLZ99J7ym2DWMK/vvzDf6wRuo0d7b0E4CwtVEbX3OX7dGsN1+oPsJSg7Sh3aLJflJtnV+EjZY0d9nXnY7VfD0fuv2/WfO6hsKrKy7IfL1aRoIVTEj5pvf2aTWS9VslCEhbU97zmbwibRE+gFHceeqlRp02WiGd2PuDXaJbBYp3ZieAoSMnTDEwnS9NvYaPo/fZ3Xd9vfIN8eBHydA+XWdM/6x0jWgARc3vN9XgH0pmKJWmirSyVqoZo6an4/TCE29HivugwvQbY2zym9RmDVYB4Z/kzkjODAY4Voz4Co5INDrauLyKfEdl5UoMTqg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Wbo+C4PFJcwMlHh7HhgrxfsFybxAWntK1aGQV1Q5SLE=; b=hLsvRpz6hecqsG7nU37k8/mmPNtSSjPNqdoA9shzwoOMrikHfM9utZftOKRtCSuO6BVHINiQsJllQmY30AggenYdWdUF/ElM6usaqjTY23ammMHc1Mcz0Ngr9SzciakYEgE7lvFrmteXIXCLwDcePoJtASInLVVPcxtDBUd8TSA= Authentication-Results: amarulasolutions.com; dkim=none (message not signed) header.d=none;amarulasolutions.com; dmarc=none action=none header.from=nxp.com; Received: from DB6PR0402MB2758.eurprd04.prod.outlook.com (2603:10a6:4:96::7) by DBBPR04MB7850.eurprd04.prod.outlook.com (2603:10a6:10:1e8::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18; Mon, 22 Mar 2021 06:30:32 +0000 Received: from DB6PR0402MB2758.eurprd04.prod.outlook.com ([fe80::c99c:dbc3:ed75:e6e8]) by DB6PR0402MB2758.eurprd04.prod.outlook.com ([fe80::c99c:dbc3:ed75:e6e8%5]) with mapi id 15.20.3955.027; Mon, 22 Mar 2021 06:30:31 +0000 From: Kuldeep Singh To: Jagan Teki , u-boot@lists.denx.de Cc: Kuldeep Singh Subject: [PATCH 1/2] spi: nxp-fspi: Add support for IP read only Date: Mon, 22 Mar 2021 12:00:11 +0530 Message-Id: <20210322063012.3995485-1-kuldeep.singh@nxp.com> X-Mailer: git-send-email 2.25.1 X-Originating-IP: [14.142.151.118] X-ClientProxiedBy: HK2PR03CA0052.apcprd03.prod.outlook.com (2603:1096:202:17::22) To DB6PR0402MB2758.eurprd04.prod.outlook.com (2603:10a6:4:96::7) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from lsv03378.swis.in-blr01.nxp.com (14.142.151.118) by HK2PR03CA0052.apcprd03.prod.outlook.com (2603:1096:202:17::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.9 via Frontend Transport; Mon, 22 Mar 2021 06:30:30 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 98587933-afc5-4dde-c78d-08d8ecfbfdfd X-MS-TrafficTypeDiagnostic: DBBPR04MB7850: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: otCamG4lt4VsU5uLbyTy1p6v0CPnCJjbClloB1PugC+I+mg6DlqUE1fGYH5A8Ya/ri+PwH+aERvtqWvfmWVyyFQ3S+PwBc7a6Oc8tUB/FmMNZS1EOidouSI+whf59YRSZVBlvniqU41GVfZfP2Nt6VJIiakPVd5utChYrv8Emv91xkPfokvIBIF7OM3Z1Rbspz+oap69oWHGC60Z8uWC/rsF7JKjOD+J+CMBgpTFo3/qOzvfyl67N2/FVc7tiznETrvj5Ii+NyBsoADrPnruviPJoeay8XEowNMkYlM/CDV4TwXEVAQ+30SAXYsYsuSNInjGy1OW/PgYbi+IXNVLwRmWV1a0/oY0TOqkR3g+oetSX200S4TR3VwMDU2nnhNswXftnF2+N7HtWF1PsttPfyCkyFJV9iECzQSXHDHCgDjcdGTp1NBkH6IaqyClfV1cTi0zj5DRc6BvfYMo4GISE3+pus5MgVrA4HWAGSNd5o5nOPFMUlLFy2NE4O44LaJ4otmHR0NEm5zWwldeqqH2ogyWkJkJM8GtXFGGrmx8WnAs5NyR6VVgre1tqWUbWTASZwkYSz0a9aitZN+nUvXZ5vOLB4tPANkKlSQYYht+hrwNuaoQYPp1Ctq2medkkHyJrYvS6z5UFOB5zlOMEd5+uY2M5j00q2Ebh9dJyKaZFG+Iki3MLWxUcA0SK9TSHwQD X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB6PR0402MB2758.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39850400004)(376002)(346002)(136003)(366004)(396003)(26005)(186003)(16526019)(52116002)(7696005)(316002)(6486002)(956004)(55236004)(2616005)(38100700001)(8936002)(8676002)(66946007)(44832011)(1076003)(66556008)(66476007)(36756003)(6666004)(2906002)(1006002)(5660300002)(86362001)(4326008)(83380400001)(478600001)(110426009); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: 8LY1zuNMf/Z5Dn7jbfQ90peMJuR7+sAc6P1KzW+OVjFzECMIzGWR9By+Y7mWtjtDVx8NAyT/O/Y0CzTCJSaoS91caOD3LLWQPgYo8ceG3B8m4d0Xwv333BHRfQHSsUiCnLd058eZptuGm/Glcgy7OdC4pmj6zYBnIXGFtmIjzBu5Ky+h/ewmxFegqa13DAu9o86TmkZjArt1b4oHVQhfokPNn6BFsdRFRZoJs3RfDIisRYsSmeBAS3OCoFgcnjyhT3hEP8cKt+1Z3rFwmXpD1Huo2sHTKDADwQUogEPW1zAObMTiOhCfpp0IWUPFRKrcAj3OO3tYLWTW3UMKO0qMqu7QG5/Q7QUaDteTHG3PCjwnudya2zIl17rin8Fyb0yC/TNCjm+WPqoJ11a3mYLvmfr7oWTiP24ns/HjGov4znkdaQD6f/u6jx1eW0lAY6xE5x6xUnFgVraQ3l0J7nlVM+XHgy3269e5VqyvDRyD2QLnq/gB/TWvu9/0xBo1OEik63UL5+5VJEkSmaWop4LWJfWVFVKpTvHfNyd8hR9wyGxSdyRWNX080pbKe5vma8h0X3KaW34QeowGH1G6D2p7dIQlwHOJ3z6prEKvQxY2a4IWYbHXqGIW5numQL80eCKU7Kjt/4fOPSM1v7aTo93VTWFeA4Yv7KNVuGvI1ylh3q4V5QhmOYJdT40XWYD10JLX5WzUAqg42B9D7C17cSRE6iyWZvPTTbKn5GeJSdSpBkg3IdvLC9+ZrIZyJmIQ81f4UegH+Tg4VO31K5V81IDYQG5PAYI/6tQwXuAy3UKuNK82W9iZjj1qTv3yfwGBGpvM6x2V4NcLE8vn4xrRbn6oEJ847KKUV1KWt3Kwm+OjnvKIUZiEM6xZfgf+gQJKEtC05L7EL+KFH57WpsK8f0SweQjDI8aqW4omSkzlQKIwDGn55LHd/tS+6Nc0ACz6Y5Z/zO19q52LDwK/dt7FjvagBwmlSi0rGVNMnUq6/lC/3JYMGfEE7Uznkos3IhcrRWTVazkX1QhrvZ4JWI3VyqkXbASoLVpXVWwn54yC8Zk13bus0gdXkRKg7oEL1r7AceNGUlWKH1iZHOGuyyeyGZWBxN9PZnZhMQzPGezKomkSRxS/RwTNCYoX6cmXW9Emp/fbUhACt98pL1zl+k0hxGq4cV3++cJuMxsJEwJzOA4RMYgYzTMy1Si7bKXv68g7BM3ByRw3JOUmlQAPAa/xog5TQTr3zSfy1DRMkc6LDc2cPzL2uJyYkD61BMsBy5tDd1HOaCZAeGehBpN+YTwtjo+em3aAqiHO+JrhJn3m00/NdLSdQAs6BwUplZVPuzPvGeGR X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 98587933-afc5-4dde-c78d-08d8ecfbfdfd X-MS-Exchange-CrossTenant-AuthSource: DB6PR0402MB2758.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2021 06:30:31.8417 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ZydUrxuewz4P8Vx7uu08onKgB23Hk8bp5acOYpiVKqjrji3aBUpeGVWxa6DuLnvfrjh+4wQ/JNlOO+iZlux/IA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR04MB7850 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 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" X-Virus-Scanned: clamav-milter 0.102.4 at phobos.denx.de X-Virus-Status: Clean Add support for disabling AHB bus and read entire flash contents via IP bus only. Please note, this enables IP bus read using a quirk which can be enabled directly in device-type data or in existence of an errata where AHB bus may need to be disabled. Signed-off-by: Kuldeep Singh Acked-by: Jagan Teki --- drivers/spi/nxp_fspi.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/drivers/spi/nxp_fspi.c b/drivers/spi/nxp_fspi.c index 6c5bad4c2c..e1b3d2d77b 100644 --- a/drivers/spi/nxp_fspi.c +++ b/drivers/spi/nxp_fspi.c @@ -304,6 +304,9 @@ #define POLL_TOUT 5000 #define NXP_FSPI_MAX_CHIPSELECT 4 +/* Access flash memory using IP bus only */ +#define FSPI_QUIRK_USE_IP_ONLY BIT(0) + struct nxp_fspi_devtype_data { unsigned int rxfifo; unsigned int txfifo; @@ -338,6 +341,11 @@ struct nxp_fspi { const struct nxp_fspi_devtype_data *devtype_data; }; +static inline int needs_ip_only(struct nxp_fspi *f) +{ + return f->devtype_data->quirks & FSPI_QUIRK_USE_IP_ONLY; +} + /* * R/W functions for big- or little-endian registers: * The FSPI controller's endianness is independent of @@ -769,12 +777,14 @@ static int nxp_fspi_exec_op(struct spi_slave *slave, nxp_fspi_prepare_lut(f, op); /* - * If we have large chunks of data, we read them through the AHB bus - * by accessing the mapped memory. In all other cases we use - * IP commands to access the flash. + * If we have large chunks of data, we read them through the AHB bus by + * accessing the mapped memory. In all other cases we use IP commands + * to access the flash. Read via AHB bus may be corrupted due to + * existence of an errata and therefore discard AHB read in such cases. */ if (op->data.nbytes > (f->devtype_data->rxfifo - 4) && - op->data.dir == SPI_MEM_DATA_IN) { + op->data.dir == SPI_MEM_DATA_IN && + !needs_ip_only(f)) { nxp_fspi_read_ahb(f, op); } else { if (op->data.nbytes && op->data.dir == SPI_MEM_DATA_OUT) @@ -808,6 +818,12 @@ static int nxp_fspi_adjust_op_size(struct spi_slave *slave, op->data.nbytes = ALIGN_DOWN(op->data.nbytes, 8); } + /* Limit data bytes to RX FIFO in case of IP read only */ + if (needs_ip_only(f) && + op->data.dir == SPI_MEM_DATA_IN && + op->data.nbytes > f->devtype_data->rxfifo) + op->data.nbytes = f->devtype_data->rxfifo; + return 0; } From patchwork Mon Mar 22 06:30:12 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuldeep Singh X-Patchwork-Id: 1456399 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=r1pJr5Vc; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4F3l4f5YYRz9sS8 for ; Mon, 22 Mar 2021 17:30:58 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 0E9FA82A71; Mon, 22 Mar 2021 07:30:46 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="r1pJr5Vc"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id CEE8782A64; Mon, 22 Mar 2021 07:30:37 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=0.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FORGED_SPF_HELO,MSGID_FROM_MTA_HEADER, SPF_HELO_PASS autolearn=no autolearn_force=no version=3.4.2 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2062b.outbound.protection.outlook.com [IPv6:2a01:111:f400:7d00::62b]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id EADCC829FB for ; Mon, 22 Mar 2021 07:30:34 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=kuldeep.singh@nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ENO2jAlZxpKHK3GK9RCdnny0tatX1ZchC26tN4YY61wO6KrdkwIM/+tkZqdHHUz4r6Bup5RIX9xMKUuetqqH/vF8qBEjOiiQ9MQBj1zrPRPf5xnEr2H2lsdiE+fqUpY/rHUJ6iSHoAmhd5JApcBR8iwdaL25v54ycdWJ+u5VhTm4z93riVSHVMOPrJiGiRskW0pwL/VGFj/TQvvLdi5PVViuej8KAevzWjoP8LSno6P0UFppzPjh0/e9KQFpazwDSCwLkbN4VBELsiTwzphlwD3j+E8hq9KUtYnMvegdCKIM1rIbmNxlRdYaUEfbcj1Vrg3uPI/1L/6jyMKJKVqryw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bhg1lL9aPUR8QqCHR5/488kHVJRTOgmVkQn7ymNYpxQ=; b=BP1HflA0i24uqaoF6oGLARihxAb2IuGJ0/yEyBPPyVdgYSPsWgl0qaeY/PaR4lLuPXKUhkm6wrf+NA43cmBmqnO5HH588ks0a/1edfRQ7gq+qouNNCt3anHNMYYXSBY3ub6ePJ3DfLTmsiXS3IPClXXnPcpMtSjVJUtid3W3AizcCNVqAfMWQL3gXsGkVZWFK/EiKq1G25KpRtHKz1KqLbucgL7CQYk/DBUX6tb7X8vHXY8Nqdbns9+dXV81R5ThhMJCiwx/hEQbxFqQggtzY4H7oLtfgftzFNEy6aqZ+ZovKrD/SMDrGMZ49J+nlK0TBAY5JuhnwLo5UQgZ23WYwA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bhg1lL9aPUR8QqCHR5/488kHVJRTOgmVkQn7ymNYpxQ=; b=r1pJr5VcvvSOcVmXehWeNQ2D3q2Z9FgSYzVGecJ532S5vGyV5xvSuSI8UDvGl7698Q9u5QL6kHyBGexx0jvOqp8LETYm+z2GSerFhP8CVEKmFxrOiqWsV4Su2p9VQ4QcyVmf4//mY5IkyLmzO+q4z3DRa3NHedcdBeCCYT7hfnI= Authentication-Results: amarulasolutions.com; dkim=none (message not signed) header.d=none;amarulasolutions.com; dmarc=none action=none header.from=nxp.com; Received: from DB6PR0402MB2758.eurprd04.prod.outlook.com (2603:10a6:4:96::7) by DBBPR04MB7850.eurprd04.prod.outlook.com (2603:10a6:10:1e8::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18; Mon, 22 Mar 2021 06:30:34 +0000 Received: from DB6PR0402MB2758.eurprd04.prod.outlook.com ([fe80::c99c:dbc3:ed75:e6e8]) by DB6PR0402MB2758.eurprd04.prod.outlook.com ([fe80::c99c:dbc3:ed75:e6e8%5]) with mapi id 15.20.3955.027; Mon, 22 Mar 2021 06:30:34 +0000 From: Kuldeep Singh To: Jagan Teki , u-boot@lists.denx.de Cc: Kuldeep Singh Subject: [PATCH 2/2] spi: nxp_fspi: Implement errata workaround for LS1028A Date: Mon, 22 Mar 2021 12:00:12 +0530 Message-Id: <20210322063012.3995485-2-kuldeep.singh@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210322063012.3995485-1-kuldeep.singh@nxp.com> References: <20210322063012.3995485-1-kuldeep.singh@nxp.com> X-Originating-IP: [14.142.151.118] X-ClientProxiedBy: HK2PR03CA0052.apcprd03.prod.outlook.com (2603:1096:202:17::22) To DB6PR0402MB2758.eurprd04.prod.outlook.com (2603:10a6:4:96::7) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from lsv03378.swis.in-blr01.nxp.com (14.142.151.118) by HK2PR03CA0052.apcprd03.prod.outlook.com (2603:1096:202:17::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.9 via Frontend Transport; Mon, 22 Mar 2021 06:30:32 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 1dd66e13-edf2-4dde-b76f-08d8ecfbff43 X-MS-TrafficTypeDiagnostic: DBBPR04MB7850: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7219; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 791fqsA3H+iWZhAKFRqELb/XSNWdI+KTvyxS8XhVWiM7HUjXMSPVsYDPkddA4gaacrlAjfb0r1SGGhAgUGQr/koMdh2o8c7qNC+MxcOinbDRBjAywlNiJ7ItrWxWK0Klj1x4tlvWne0eJLWT/RRe9BiM3e+WqK7Rh/+xbf0TjgVeH1acxpL/376uasFwZnpmS8CQPqam7G5SPw2rZXfUkutV8Xcnoln+u5NHcAsv5LExC4LLUqtFGR2wQ6bfH+u7n41slA7/EQUGpfTCO0XleFuo8bTfZ0l/Km7yg5gWROLZvz68z/qXzIwI3klrThBJKufmHsTBTa9XoBqxmZfbYibuSF1mVMnZCdNU1LYVrFS8WBNBJg8AzlGDl9MlS9w/b5bOPUji3vhp+h3o1VoDT8nygCsLEQM63yQfCy6N3R9wyUe9beKNkWY3ABPUFTM3VpW7lmlBFT4y9X35Wp3vbVPptajGvFT+42n9UnYAcKb8BSJ57OpF3raTw8kv+Sm6KQAF1IflOYPQ5SDE3JFv72+6U6KOPAXrJyv8Icg2mQWbKGgGF4BA1YUoS7GIU3fOV4PJR7XvrDy7lH10SLvTTARCccmSmSDm1808Py4FIg7MwbK8mu06rvUJ6WKIdJlGCob9kBPtKv+Dohh4Uk0/7xXyDQS89+894U9Dics4UA4y+ANTbMup4e+eqEQp0aUW X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB6PR0402MB2758.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39850400004)(376002)(346002)(136003)(366004)(396003)(26005)(186003)(16526019)(52116002)(7696005)(316002)(6486002)(956004)(55236004)(2616005)(38100700001)(8936002)(8676002)(66946007)(44832011)(1076003)(66556008)(66476007)(36756003)(6666004)(2906002)(1006002)(5660300002)(86362001)(4326008)(83380400001)(478600001)(110426009); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: Ok3lTdUiiqxKnZKxWmiUxn1zQ4dq/vpsF3Z3M8aKpBe0omsilAJl9Sv5daFtXfzmpPXKmFl1zCSTeQmJXa2JzdSUT0Eh7zXPxWzXNOnV335kysKJ8IofX1b0MlAZ6wiUS6khNokFsSJJzsp1FwPOx59C1ywmaQm7B51v20srI2Yta00dBuXjAhEUaW4KbkSqekQUUhgZsntYMu1FJEgPDIft0KNo12OHQmRd+zLqt1KVR2/oj9PVFSfN8ySdB1L5+TRWsIC6cQb7XtxrdtJBu60cKELu9fULyRzYv1OJlnRopdJp6uLVGYOnH5cxoHS4/H0Z7CBXw+OJEZJE+msAilT5yAgNCZAMPSj0db7pqaK244dHb6Ewj+EFStOq06+49nu9nhmMG1VFyx1eu8ckHUmcySSpnffWJLWWjEOuEftCG1ZTnmHs6SxV72KYRN5yEFeZFPUesaCz3jvJl3E7s+ed+/NNa2HdufRXwYrGrImOZ5We3jUs2JExo8m+o+gh6PQYIB1lbOlmgWkboEJpe4avvnm2/vX2LAzy5AXDir6rxl5/tf4z3G8fDaxKK8FtI/UBBCyxCAwMlBXdhGhafH9cgGyjR15bpeoCg/YRgKthWuqXqsLVrupnLuqjoDuvdQl/BSkfBZqxGo9h7FIcVPL1YaeEGvuiBaC0pA7Oo3ewp6/QpeMUFW9kaP4hBD7WOd/NszCSnEoxi01LKQglws5OxNEwUaWXNjuPIQgJizm53ndQfywgF5ck/Ma3P+Gaq8Ma0YQjGpZC37oIntDHFtoGxn3Yov765bPdQVvSaF99yhK/TqqsGE3GPMHFlau9f80nDEzlrUYJWtheREERlhh8LaZSMAlldq6BtIyCvV5HXX2/kj3e0TYb57jTn6iOS4V0OhWyZran6r6BbsVIXv00M7YCWj/8T/SUopxUCUBy2aI6L6fhQhzn/dheMue0MYyOPoDOrJfcmO00/kE214L+YwxesVSgb9MmRwKXwtYEHusJHvalgfuKbizfwpDp55YN4kODhlRqDdEXMqGUdoE0rRu4BibIwgMW6LxgF7eoDcDeRE6oGzO7qd1zf/ZMqBkpxOIso10bT5lSYtB58iRg5mrh1JwIQTDwakB6LDCKchCa0SypTdmPYBvrvG/UMdo+A2gD9MLC4Kr9Ru+aLhhUA977PEVvRt1+j6ci4aoD3MGFoRL2mK0Qj6DJDBXC/frc8QKfQofHJI6NoEouIUBED118kkAY94z0Bmv/l9AtIYw+YBz66SSG9Z6rrCBYQjbBrubEBzbLr15hByJpqHaGu/lbx+qx6TVhGhQiLLlLyzc9jywTPwu4wzLHSIjt X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1dd66e13-edf2-4dde-b76f-08d8ecfbff43 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0402MB2758.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2021 06:30:33.9098 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: WHYhft/BrRVNEndLBMPwRygnXdx73jpgB9nwp9iU+OlZjK+u/edQ6M8SVaslv9bjmzq7vOqaPDRDWlpE+qtTvg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR04MB7850 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 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" X-Virus-Scanned: clamav-milter 0.102.4 at phobos.denx.de X-Virus-Status: Clean Errata ERR050568 description says that "Flash access by FlexSPI AHB command may not work with platform frequency equal to 300 MHz" on LS1028A. By default, smaller length reads(equal to RX FIFO size) are done by IP bus and larger length reads using AHB bus. For adding errata workaround, use IP bus to read entire flash contents and disable AHB path when platform frequency is 300Mhz. Signed-off-by: Kuldeep Singh Reviewed-by: Jagan Teki --- drivers/spi/nxp_fspi.c | 49 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 44 insertions(+), 5 deletions(-) diff --git a/drivers/spi/nxp_fspi.c b/drivers/spi/nxp_fspi.c index e1b3d2d77b..7ba3a72223 100644 --- a/drivers/spi/nxp_fspi.c +++ b/drivers/spi/nxp_fspi.c @@ -41,6 +41,11 @@ #include #include #include +#ifdef CONFIG_FSL_LAYERSCAPE +#include +#include +#include +#endif #include #include #include @@ -315,7 +320,7 @@ struct nxp_fspi_devtype_data { bool little_endian; }; -static const struct nxp_fspi_devtype_data lx2160a_data = { +static struct nxp_fspi_devtype_data lx2160a_data = { .rxfifo = SZ_512, /* (64 * 64 bits) */ .txfifo = SZ_1K, /* (128 * 64 bits) */ .ahb_buf_size = SZ_2K, /* (256 * 64 bits) */ @@ -323,7 +328,7 @@ static const struct nxp_fspi_devtype_data lx2160a_data = { .little_endian = true, /* little-endian */ }; -static const struct nxp_fspi_devtype_data imx8mm_data = { +static struct nxp_fspi_devtype_data imx8mm_data = { .rxfifo = SZ_512, /* (64 * 64 bits) */ .txfifo = SZ_1K, /* (128 * 64 bits) */ .ahb_buf_size = SZ_2K, /* (256 * 64 bits) */ @@ -338,7 +343,7 @@ struct nxp_fspi { u32 memmap_phy; u32 memmap_phy_size; struct clk clk, clk_en; - const struct nxp_fspi_devtype_data *devtype_data; + struct nxp_fspi_devtype_data *devtype_data; }; static inline int needs_ip_only(struct nxp_fspi *f) @@ -529,8 +534,8 @@ static void nxp_fspi_prepare_lut(struct nxp_fspi *f, for (i = 0; i < ARRAY_SIZE(lutval); i++) fspi_writel(f, lutval[i], base + FSPI_LUT_REG(i)); - dev_dbg(f->dev, "CMD[%x] lutval[0:%x \t 1:%x \t 2:%x \t 3:%x]\n", - op->cmd.opcode, lutval[0], lutval[1], lutval[2], lutval[3]); + dev_dbg(f->dev, "CMD[%x] lutval[0:%x \t 1:%x \t 2:%x \t 3:%x], size: 0x%08x\n", + op->cmd.opcode, lutval[0], lutval[1], lutval[2], lutval[3], op->data.nbytes); /* lock LUT */ fspi_writel(f, FSPI_LUTKEY_VALUE, f->iobase + FSPI_LUTKEY); @@ -827,6 +832,31 @@ static int nxp_fspi_adjust_op_size(struct spi_slave *slave, return 0; } +static void erratum_err050568(struct nxp_fspi *f) +{ + struct sys_info sysinfo; + u32 svr = 0, freq = 0; + + /* Check for LS1028A variants */ + svr = SVR_SOC_VER(get_svr()); + if (svr != SVR_LS1017A || + svr != SVR_LS1018A || + svr != SVR_LS1027A || + svr != SVR_LS1028A) { + dev_dbg(f->dev, "Errata applicable only for LS1028A variants\n"); + return; + } + + /* Read PLL frequency */ + get_sys_info(&sysinfo); + freq = sysinfo.freq_systembus / 1000000; /* Convert to MHz */ + dev_dbg(f->dev, "svr: %08x, Frequency: %dMhz\n", svr, freq); + + /* Use IP bus only if PLL is 300MHz */ + if (freq == 300) + f->devtype_data->quirks |= FSPI_QUIRK_USE_IP_ONLY; +} + static int nxp_fspi_default_setup(struct nxp_fspi *f) { void __iomem *base = f->iobase; @@ -847,6 +877,15 @@ static int nxp_fspi_default_setup(struct nxp_fspi *f) return ret; #endif + /* + * ERR050568: Flash access by FlexSPI AHB command may not work with + * platform frequency equal to 300 MHz on LS1028A. + * LS1028A reuses LX2160A compatible entry. Make errata applicable for + * Layerscape LS1028A platform family. + */ + if (device_is_compatible(f->dev, "nxp,lx2160a-fspi")) + erratum_err050568(f); + /* Reset the module */ /* w1c register, wait unit clear */ ret = fspi_readl_poll_tout(f, f->iobase + FSPI_MCR0,