From patchwork Mon Feb 1 11:30:08 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yunhui Cui X-Patchwork-Id: 8178251 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id C7C519F4DD for ; Mon, 1 Feb 2016 11:41:47 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 0D252202C8 for ; Mon, 1 Feb 2016 11:41:47 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 3C56E202B8 for ; Mon, 1 Feb 2016 11:41:46 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1aQCq3-00058u-CM; Mon, 01 Feb 2016 11:40:11 +0000 Received: from mail-bn1bon0115.outbound.protection.outlook.com ([157.56.111.115] helo=na01-bn1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1aQCpA-0004At-J7; Mon, 01 Feb 2016 11:39:18 +0000 Received: from BLUPR03CA011.namprd03.prod.outlook.com (10.255.124.28) by BN1PR03MB072.namprd03.prod.outlook.com (10.255.225.156) with Microsoft SMTP Server (TLS) id 15.1.396.15; Mon, 1 Feb 2016 11:38:53 +0000 Received: from BN1AFFO11FD021.protection.gbl (10.255.124.4) by BLUPR03CA011.outlook.office365.com (10.255.124.28) with Microsoft SMTP Server (TLS) id 15.1.390.13 via Frontend Transport; Mon, 1 Feb 2016 11:38:52 +0000 Authentication-Results: spf=permerror (sender IP is 192.88.168.50) smtp.mailfrom=freescale.com; nxp.com; dkim=none (message not signed) header.d=none; nxp.com; dmarc=none action=none header.from=freescale.com; Received-SPF: PermError (protection.outlook.com: domain of freescale.com used an invalid SPF mechanism) Received: from tx30smr01.am.freescale.net (192.88.168.50) by BN1AFFO11FD021.mail.protection.outlook.com (10.58.52.81) with Microsoft SMTP Server (TLS) id 15.1.409.7 via Frontend Transport; Mon, 1 Feb 2016 11:38:52 +0000 Received: from titan.ap.freescale.net ([10.192.208.233]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id u11BceQm018252; Mon, 1 Feb 2016 04:38:50 -0700 From: Yunhui Cui To: , , Subject: [PATCH v2 4/4] mtd:spi_nor: Disable Micron flash HW protection Date: Mon, 1 Feb 2016 19:30:08 +0800 Message-ID: <1454326208-4533-4-git-send-email-B56489@freescale.com> X-Mailer: git-send-email 2.1.0.27.g96db324 In-Reply-To: <1454326208-4533-1-git-send-email-B56489@freescale.com> References: <1454326208-4533-1-git-send-email-B56489@freescale.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD021; 1:VFXWo9pLZpEw3mwUfvScfTfu4zJh41eDDnNsOmeR+AKz4zcCgSBUOdWRuQTTb/ewP5i1Bj5vTAfmXlKpxB2Oli8MxkRsLmt+SzSaCkPGm1g7cRkbzkqcqFmZM3BAb4Thm1w4AeZFY4NG4x/iIC3Ebdp1wSpKudzdYhKqQ8xF5dti+hpCLluYHIW7n+vuFMv+lJiV/E2XM9h/0MRS4tOzBSKhKQ0gWf2WTL9Dp+KDVTmlc1wu+xPenb/wCU/V2KIwDs7TWh6f1XsGxiTBHtktFcChqqJfGgNgGgVaI84HEJ9h/8oY3ULzESGCO4laYXbKZMFW+ExpK++0xz0F2bW3riZ0cjmaOJwaiTwrPD0gtpg4uRGM28NYthVjd/NoN4CDJGjH9BI6czCpdujwR0EmAOGJhGLP7ZfHqG9Pslm3sowB0TN5XbbSisOKiwnVhO/2 X-Forefront-Antispam-Report: CIP:192.88.168.50; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(2980300002)(448002)(189002)(199003)(76176999)(50986999)(87936001)(4001450100002)(2201001)(3470700001)(1220700001)(106466001)(1096002)(229853001)(50466002)(2906002)(586003)(86362001)(575784001)(4326007)(36756003)(92566002)(11100500001)(5008740100001)(104016004)(6806005)(48376002)(5001770100001)(85326001)(47776003)(97736004)(5003940100001)(81156007)(77096005)(2950100001)(50226001)(189998001)(5001960100002)(19580395003)(19580405001)(7059030); DIR:OUT; SFP:1102; SCL:1; SRVR:BN1PR03MB072; H:tx30smr01.am.freescale.net; FPR:; SPF:PermError; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: f37a49d2-6001-4be4-33b9-08d32afc42e1 X-Microsoft-Exchange-Diagnostics: 1; BN1PR03MB072; 2:BlP3dWHP3w+vS24MOjkbiPpgjOxVixnKZ1t5fQiYWDCWVBkBN5ia7eN06Si8dju/8WFEDlD/GbdwO7p0iGrc1yZDh2Zmqane1oBYwCAl6e7kkbL5ERkRwPQAD/sQRBlQQLfmOVihWO9nN5pK5ELA/zveeT+Sw9qj4V6oboJQWMYEkwrxkzH1CTSgcld1T4a1; 3:B6WxKQHh42WoU2AByasA22tLd9bmW5hUIOfk1guam+0g7cvkpKj4akStOC6fNHOHNh2pmrCURJyl4lrezwcLfw2/RlOm3qfNNh1xdWL0gXaazAyd51mb1HXB2pzTnqtuUUqXNSprAQoFIQUABOkpGbjaID0c00jSRR+7zFys2cAD6VqcG54Og8MarzuVWUwlTjkYzr7xw+6zgmoCN3iz9ScS5Z+L+rWjs9x038nqzi0=; 25:k1WHjauQKzi8HUtkONwp9GiOT32ei4xw/OHQ0pS/C5He3qduE6Am/K68KxqKV2SoeRjU4nLGGUcAn5bUCBNX2sxgBwgi/gxy5hLezYUwKBX0uJVjtkrSzq0hyceQKuFB05En2z/X+1afi/LoCVixWZbp7kCG7Ndc8+b4A/CjqPUtzA5y4a6qRhY6NcmLlmm/22mvvMu50sV/ATlwzRjm2ktxL2J5Yf0er5MEdcH1EXDe9e99VGxNLMPZzj+eJAaf X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN1PR03MB072; X-Microsoft-Exchange-Diagnostics: 1; BN1PR03MB072; 20:xRWOJsgtEZ1bl6SdyCIE2TS9yM/k97rFBcRGGlYxDXF3VJiGBQQ0aNJwnZSeP99e9MYnR9oR/CQL1XCPsvChniYfQKoII5yLt2xLitecEYyt7jRQ5dLatY4Txpnwxc6NCfpuUlgD3lmRx2W4Q7n6x58EvYXLEZg3dL2DyzNwRej5yKnIsPtKg+kR9SpXfSOolJU9W1ZuzHPs1AF9kHQP87kMvcqjiKVc1w4+W0i4ibtgqBGzxOpk6lxj8DWXRy1WgpbUAYFIDhmraDNM/BSm9lBH8Zo1wTgWmc3Z7SFCY3/pNMA0cZNddt49gY3B7lZXqWjgWsEFQP9w64Ckw93mSvjI+PEAoAP1msmZITsdXJnudsXVIhmNYUar0CfSjyflK2LdLIqZE53G1JfyIHlAi58s1R42no4KdN/2RxJBnc5f5WJnF16YGFZCVutWKA7A; 4:d1J2t08OdpS3O896b4X03I8AS+7EWgVVBOVt0SUoywio8uN/qhK/eCGywpB8x/ODe1qd+Fw4MaCNcFO0H78wxZ/ly2tMqBDANyJRjUx3NoJ2l+jMgcg85dYZJ00xD2tmuGG63Jy9tXuPygwDwHcBGbOcImJbw1+2vAK8nYoMd77I3pESsDyPTNuLmT+uHtPgEUwJsqMqrSWphcwnN/CYHokRa+o0Z63NrZ6lsH4fuMde2b6e/ImP8U6j8zZsJnS51G2u60fGc7jDMITIJoWSVMtg+gqXqF1z3o5QXQ1GV8Gx9YbkIZlQB5pcfjwQqy4pRXVNTod4N6RnYt9nQHkTW7VKo4boVIkKq1t0o+vbOoNplSzSWR+VZv6sAtciu6At7SwajcJkL6yaIZUId/fpGlesM5+MQumnqB0MLE1xfsICv/zVzauNiQgThzSYt1WkH5VVBpjYcseJUaO/3Op9/u955ADQaaLH0iwANP+S/VtS52XHb51aL80suJOegNvf X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(101931422205132); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(13024025)(13023025)(13015025)(13017025)(13018025)(8121501046)(3002001)(10201501046); SRVR:BN1PR03MB072; BCL:0; PCL:0; RULEID:; SRVR:BN1PR03MB072; X-Forefront-PRVS: 0839D067E7 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN1PR03MB072; 23:rQnAYBAa1MQVT+LFvxew3A29s6bwKStWmelHsBnq2W?= =?us-ascii?Q?IZGJjxRCj+2tRvp8t0uDrUtS0zIaA6t2vO3tEZB9mzKiFYOd8dXt4e5e6/z0?= =?us-ascii?Q?0d/rpMNFgY2zTToVIapuXK4CZ1d6Y4CWCFIGCPHFkkKNUFn/YfUKhYO8oylx?= =?us-ascii?Q?f2j2QL0X+UehcCnA5iEUb7YdUWoP5sP588tU3ZL35erI1YtEB3U7U52kBv8Y?= =?us-ascii?Q?ivIYBhd/KduFzy9cOXqGVbdC5fTsbW0yWpPYlnSJ7Tv3XZqWHUKzRmxjsrz2?= =?us-ascii?Q?h12oX3NTikh6e3FUu1X1fKTMqZPLesLfc0bhRB9QEfGWCkEh3SJwQyGeQKI+?= =?us-ascii?Q?3WYCEa5WyyB3RB4mHh2WE1w50XKbbz8lglM5CEHuE+DaIUlUY2klBwOh7FPg?= =?us-ascii?Q?qgmyoNQMqeW1tik44NRmJR9hYntqUO6VuqTLFbeNrxhhOGye7j/20vTGn3Mx?= =?us-ascii?Q?xC7Xp7ce35Wna6q4gEgGgoTvegDEa+7PZcdDQGT/FnnJFuyzaBi2pgdiYq7m?= =?us-ascii?Q?jIai07F8Q//1KUrkaAewnLtrwRReiq4qHvpH/gcoCVY03YlfiNAkFNowUcJk?= =?us-ascii?Q?/pYu5GA35+JCQlFW1GBskpNiB4BYbZOCn6tZE8htifb8mA1GxhemFCya5jVy?= =?us-ascii?Q?Ih6J89XprxzWIFNpX4OcuGukB/1zrmVl9bYKXTlS6FurWd/w2FJ1yaBZeDvn?= =?us-ascii?Q?S6daKfjZmlye2ASrPoVMXYXR0tah0mS/3R0GevqFc3Prxip+Lqimcxs/xqc9?= =?us-ascii?Q?/WOznxRvtU92RlqgXdhCU2BRA5dWrh3D3sGPPwn+6C52+5gsukx5xFyiU4Dq?= =?us-ascii?Q?GjGBb0id2GYY7v//M+oNB66MjLL5CrZQ3Epm6vn8cvR0mD0lAOdbdzyxmrgv?= =?us-ascii?Q?CVhSPgpuecokZgN7k8ew3hZW0LWelzJPwdJ1rtpr6CE0woD84vLOv0b9XzOE?= =?us-ascii?Q?ZQTb5pd90FAh4rXMVRFgSDlG0m3C4L3/ZT85urdiXnEHGbMAGbWdC/bIzO88?= =?us-ascii?Q?+yO1KXD9M7JonfIMMueuwi6tG9q+TzweePi16RdhaWSIDirvfbXNdhGKycNo?= =?us-ascii?Q?yB1fNbKEdWLxDbCkEqWkABwHKlvZKqmjok7NxzGrm5opetNYxL8szTQ0H1//?= =?us-ascii?Q?+njpJE2EU=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN1PR03MB072; 5:Ina02Xwk4SHmxBit+oITCwDz/zr6LO8nnqHEY9WPH5SOMgHXnPsgMyzn36ubrfIvybJjfEgxOkKy7dCyoLrSnW4+MR4aJvWHZjd+ED/BbcH7pgD/DZm7hHHh9EkW9B63CSD13DfNkkpJEFiqGpGsRg==; 24:BMUPYaSd6gpBmkYPJ3phkt7GrEVhYifO7L6fZAS7pwd3LLUi6kLRMaduWEVHVpM9uTzTHyo1vspxpu+dpzdTT4cxb36IItplbXzRHYKJKR0= X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Feb 2016 11:38:52.9680 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN1PR03MB072 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20160201_033916_921270_4DAD6FB4 X-CRM114-Status: GOOD ( 13.90 ) X-Spam-Score: -1.9 (-) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, yao.yuan@nxp.com Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-4.7 required=5.0 tests=BAD_ENC_HEADER,BAYES_00, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP For Micron family ,The status register write enable/disable bit, provides hardware data protection for the device. When the enable/disable bit is set to 1, the status register nonvolatile bits become read-only and the WRITE STATUS REGISTER operation will not execute. Signed-off-by: Yunhui Cui --- drivers/mtd/spi-nor/spi-nor.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c index ed0c19c..917f814 100644 --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c @@ -39,6 +39,7 @@ #define SPI_NOR_MAX_ID_LEN 6 #define SPI_NOR_MAX_ADDR_WIDTH 4 +#define SPI_NOR_MICRON_WRITE_ENABLE 0x7f struct flash_info { char *name; @@ -1238,6 +1239,14 @@ int spi_nor_scan(struct spi_nor *nor, const char *name, enum read_mode mode) write_sr(nor, 0); } + if (JEDEC_MFR(info) == SNOR_MFR_MICRON) { + ret = read_sr(nor); + ret &= SPI_NOR_MICRON_WRITE_ENABLE; + + write_enable(nor); + write_sr(nor, ret); + } + if (!mtd->name) mtd->name = dev_name(dev); mtd->priv = nor;