From patchwork Wed Jun 15 13:41:11 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: marcin.krzeminski@nokia.com X-Patchwork-Id: 9178763 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 1EFDF60573 for ; Wed, 15 Jun 2016 15:18:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0D26C26CFB for ; Wed, 15 Jun 2016 15:18:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 019B027DF9; Wed, 15 Jun 2016 15:18:50 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 436FE26CFB for ; Wed, 15 Jun 2016 15:18:49 +0000 (UTC) Received: from localhost ([::1]:42842 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bDCae-0003T8-Vs for patchwork-qemu-devel@patchwork.kernel.org; Wed, 15 Jun 2016 11:18:49 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39537) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bDCZT-0002MS-GK for qemu-devel@nongnu.org; Wed, 15 Jun 2016 11:17:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bDCZP-000348-El for qemu-devel@nongnu.org; Wed, 15 Jun 2016 11:17:35 -0400 Received: from mail-am1on0104.outbound.protection.outlook.com ([157.56.112.104]:45442 helo=emea01-am1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bDCZO-00033s-SR for qemu-devel@nongnu.org; Wed, 15 Jun 2016 11:17:31 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com; s=selector1-nokia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=mQsWJ9TjcxjddBHhjDpLDiyu8U36lPlrRuyiOK7vFpk=; b=bVIsRbrHUtAOub4Cs96qxfHUJi9/knEPGrnPiRRzFy65wu/QeQ8jxQoHopgX3Z8qAWIB/ByDibo0U5SEfbECZP8DCvxJ9nsaeBVDmaA/e+l2pW8UcwZzfeAeLAre++luGinijsqXYooHz79+IHenXr4I8ucEqfhwGC1DAjsK0OQ= Received: from HE1PR0701CA0020.eurprd07.prod.outlook.com (10.165.214.158) by HE1PR07MB1068.eurprd07.prod.outlook.com (10.163.177.142) with Microsoft SMTP Server (TLS) id 15.1.506.9; Wed, 15 Jun 2016 13:42:51 +0000 Received: from AM1FFO11OLC005.protection.gbl (2a01:111:f400:7e00::162) by HE1PR0701CA0020.outlook.office365.com (2603:10a6:3:5::30) with Microsoft SMTP Server (TLS) id 15.1.523.12 via Frontend Transport; Wed, 15 Jun 2016 13:42:51 +0000 Authentication-Results: spf=pass (sender IP is 131.228.2.240) smtp.mailfrom=nokia.com; nongnu.org; dkim=none (message not signed) header.d=none; nongnu.org; dmarc=pass action=none header.from=nokia.com; Received-SPF: Pass (protection.outlook.com: domain of nokia.com designates 131.228.2.240 as permitted sender) receiver=protection.outlook.com; client-ip=131.228.2.240; helo=mailrelay.int.nokia.com; Received: from mailrelay.int.nokia.com (131.228.2.240) by AM1FFO11OLC005.mail.protection.outlook.com (10.174.64.132) with Microsoft SMTP Server (TLS) id 15.1.511.7 via Frontend Transport; Wed, 15 Jun 2016 13:42:50 +0000 Received: from fihe3nok0734.emea.nsn-net.net (localhost [127.0.0.1]) by fihe3nok0734.emea.nsn-net.net (8.14.9/8.14.5) with ESMTP id u5FDfqS3004164 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Wed, 15 Jun 2016 16:41:52 +0300 Received: from CNU418C7XK.nsn-intra.net ([10.154.155.220]) by fihe3nok0734.emea.nsn-net.net (8.14.9/8.14.5) with ESMTP id u5FDfkXD004036; Wed, 15 Jun 2016 16:41:51 +0300 X-HPESVCS-Source-Ip: 10.154.155.220 From: To: Date: Wed, 15 Jun 2016 15:41:11 +0200 Message-ID: <1465998071-7355-10-git-send-email-marcin.krzeminski@nokia.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1465998071-7355-1-git-send-email-marcin.krzeminski@nokia.com> References: <1465998071-7355-1-git-send-email-marcin.krzeminski@nokia.com> X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:131.228.2.240; IPV:NLI; CTRY:FI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(7916002)(2980300002)(438002)(199003)(189002)(47776003)(53416004)(86152002)(33646002)(575784001)(50466002)(4326007)(86362001)(2906002)(2876002)(106466001)(586003)(2351001)(356003)(50226002)(11100500001)(8936002)(36756003)(77096005)(6806005)(19580395003)(76176999)(22756006)(189998001)(48376002)(2950100001)(87936001)(16796002)(5008740100001)(68736007)(92566002)(8676002)(81166006)(19580405001)(97736004)(50986999)(110136002)(229853001)(81156014)(5003940100001); DIR:OUT; SFP:1102; SCL:1; SRVR:HE1PR07MB1068; H:mailrelay.int.nokia.com; FPR:; SPF:Pass; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; AM1FFO11OLC005; 1:8eM0qkSARlBo+LJDQYQQrRU+q7FmUNFMXPBSLFxYhdQTQS012byfB3UyywOYQkQP9h/Qgz97olvFUjYv5pSPNW68lBcr1og0ndEOcOlGSLwYyEBXovModryEkJibE1dNfNFVXWyJlgmoPBIs+UPM2gInmKNYN6j23hNawVpLKf7kpjTl2dRS8TL4tDBbKKQW16d1obgSl3R+iQGONW7JS8Z747LDiFoUNoGOsGBuvkcmIWIdd2aE2/Nittqncmj7RUmEnRAnAulnNGDe/0hZMGY7peJoRCkT++OOigysJhPvJsXZtPOy5m6TG8xBBNDwm4doiDPXXguTY9kH4rDjwVqh434fx/8GiYt3dZo09rDaPBlX/ShJfXbFlohAVUFhUFY5dXhNQ1uN/vIFJ6eeEzhepXG1kCDJbnfJ3v5dOIqoNFlPkN9D+LqY2nzA6/SHW6V2Dcc6WpoY+aQTfmSMQgyqqmW4uAlXUGRUIutYkM8= MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 278daf3d-821c-431e-1ba0-08d39522f1bd X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB1068; 2:aycp6jZNUQNMnj/xRe/1G5I+N81UP6pKbB4F0m4vYnItcDzRcujN28iZWdzCJ+IHBuMebsOrdvzoT5AoYqcit4ZoUSFmhMcyiuZOmkKmKQql8T4Q4ICQE8bWfhBwULLgW5Al1kY/AYCU0rrUEcFO6Cwh4X4axhmrnyzEdp2IGKWZg8qN/gmrc1i+SiBirMda; 3:Kn+ZbUtZriZsfYl3m1U054oQwaO4ltMHhLk5d/EhHlzheq3SUj1jO4Nb3xP7oeLEDWLlkYfrnG2Y7oFko1NonY8NhZY4GlmxsADqODPYu1tmxNaDn63AfZoxM2uRECVMVdOwJNTNe7TftTyXa73jwP+E++e6PsM2Qw9vjbKUeN7YLGOx4gdJQwoTV+SzUSYgGxMCRJ2Tvh3y5TFbNdjj4cqGH57b205rpSJlSArlJIs44B3ZpbdImnWdqvX0sdENu72OJiQA7AOKbpaS0/u9Uw==; 25:Z6BQxHcV7Texxh5h5x+vXSsaXz2IK1I/oS0GJcipIjKJus78/+s9ZzZa70YV8SFDZ4Xti8eGyiUZdrywRIzz15DjRJcHO6ZKtfZBc8IZXwvAPeNhN4kQpFNXi+nFExNTNPavB+hfLp6E65S3w0XQnOwaf1HoiWpzQnubDYiMdmk0zFxkbM8h4oiyCtdnKSDkwbOZ+0YYL8z0LpO2r06BwtwUl2jROL2IubgCJbN+67ko/5q4RFLrLXctMaXx2ZcM+4hRD/1KfqhjpTWEfa0jqSugKe08eVdOeT1Qqdw0lkMm0Ynzrvi1Op7BOgGQNsyIFI2JZeaCa02BuQDHxF8JE7I6hBf0l+8X3YaupHbl8IUzVbX9WD41LO/GJ2M+SGJRlBuHQ/OmEO6sqTTFFuXAJtG0KCRpUo2ARtlm1OHlsVM= X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(8251501002); SRVR:HE1PR07MB1068; X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB1068; 20:SJ4hzwAijSSjG9Jqjo7AmemGIK+fSzjRUsNyg8hCEojfS1lGCvHXawS8XhrjGSa7wDQZGLu7fnlW8h0YJozoywQmK/CC2Xb+tDaq3JaEB3r0Lnn8kaJoq1KjXfTJnc7BEP+oWp3+9xG7QqjN1UbbeWewOZUXwzG2YudRSExYysIcm8GDV9EYUJqyyVRg6qLcmpgVEUl7r/6b9ecn775UR04NtkLXwFHj/b+IpJ8FhLHTorfTVPOCJcLkFIpVUVw1CIcN3M9N368xV2CED9eJqCU2vJRZDiAtQ+OAff3a5WvtxPYK/psIcKGUcBpsP/s4oiTf34c/08NmOsiL86LMdRFdMNIl90lt1oqVnEpriQWzEE6xNgmr/OgTYZzUSVmcOBo38ZFB3igJIulCP7T+LeK+8A/GrdSyYHfbWtvkii8v92v1uGYRPDT7KAxwQ4BUoD+k1002XsssqAURfwodSTc1t1aoK7RvCnmBt0a16YbxQt2rzUJ8czQ/3fNkcc4f0Z7iwToNWQFmlvWwqpKWk/JhYQzP4dXbJM6nUrZZE3Z0TOYI2/+Q0UDFemCKO/AyKaxZe7b9ryXc6D83VYTokIguGxlLN14U9Dr3LR9NHGk= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(82608151540597); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(8121501046)(5005006)(13018025)(13016025)(3002001)(10201501046); SRVR:HE1PR07MB1068; BCL:0; PCL:0; RULEID:; SRVR:HE1PR07MB1068; X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB1068; 4:vDOJoXz/qqp9QojRVjYKg7/FR+LiHAISs0+P/9vZ5BLzeFYDU9mZ8wx0zC8ty3dS0bvwiTviJ2/cpX3XzriSiFPiW+WRrQDuw0gvIyGRMcEh6Z2/8OWtD6ON01UNdftJypIgorhXT1gGZhE+cffQpI/jIEwD5EQzi3WtuuE8rsAla7tKwIJS2B94V4rXh7Xbxh41YU4BA0TS9EfUAoQgLLxhCGe+/xJM/gu46PxMcZT6EahYUnqEjGcMu/4p3RHpG/hlECnMgIRoOf3n5YQM2c3v6/kNHItfJ5pIAWbOrFYwKObkJC1zci12L4fb1utF6RETDYLKiiKvN/ZoboNo13LcE0wb19bHS+cTp+zr6oMhzebWPujzKHC/BlvkWV6uLe6PqosYoLmjPXgMOOvPDbYZRmqqS3TtGI2r4lieQuGuJdSYfoxopMefaMCQ7l0Jv7/5DOYvVwz335QNJlWNJA== X-Forefront-PRVS: 09749A275C X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR07MB1068; 23:+auloOZ75Fl683vVCpdLCDH5lS8rusReLMvRcnIJW?= =?us-ascii?Q?5gqLcrhs8BWGW+tkQSaBkrdxksWa+2V3r2SZ360RNCiUqqTrpdzieGgmMWS7?= =?us-ascii?Q?YRSYdmnFAU0xHfws0GdxrpVIxsymJEN83TvAsCVp8vvbdsM211Onvwf7z9Ob?= =?us-ascii?Q?RRW8T3EyYY4SwqAP16ou0buZvdUbhGfb27iDiV9EAZr/ROdHy3rsgQUUKMrx?= =?us-ascii?Q?XMfNdJ4Y9y6rQ/9qO1xw0ePILClcbZalpKGaAs9FC/0IPtCIC3AK1Z+eXoyg?= =?us-ascii?Q?di/LgYnplTfFM0u+Em5EsUda79lhekDz5fw/Z9HdLLnTMzWhwtflbXSKtThP?= =?us-ascii?Q?pOBUz3pyAa89/SImjaLAyiSwm2nqe5Ofwz5LlAsnQcio8f+0H5BVU+GXFY/M?= =?us-ascii?Q?Fd45MgIjMe48561u9K0xJG90ypMyO15we0Dhz4QjfcBebT1Grc6n0BmZS1p4?= =?us-ascii?Q?VZPa5E7W2fJjVyteRR589HoRU4o4e3sRmim9hugnSRUEyX1ckDhO/9kNUClD?= =?us-ascii?Q?yr60+vcZ3H/TCxzzTummikvXHc6u3QHxAftZo+2pH8/0mtF4X9RQNUOjdjvh?= =?us-ascii?Q?OvEstJXlQSkwIcY1FxBAeKQWIMqdMIxA3yFasqGuRJreDWTh6t33W6MFFdLG?= =?us-ascii?Q?tx1/hdwmWuJ7uH3x+mtXUy0rsxo5bZycix/8z8sp9zlRH6f7ijOWTyJGo80z?= =?us-ascii?Q?6iDHMVn6GmzRRzCkE9KQsWPCsnZ4xP1YTO4Oal+UIXF33Ta6IDF+5QJVFTul?= =?us-ascii?Q?0k0IsbP36hf2FlQ4lGxrDaRzpKuFOaD5FC7Rx94pdBVbf+eIm+pc174kvDhy?= =?us-ascii?Q?cLT1JEmAKY6l/ftOCoB3y5HvlWv84P+ywMSN+Q7UwSNYsC7QTtseK74WxvPH?= =?us-ascii?Q?QwswTpS7d76gJWJJpW4zZFQW6NIZzXzExe7JxKjaHAuT4aKmC+Y4OcXJf9kl?= =?us-ascii?Q?Gl+mU6trGRMlawrRId7i7bPwkVAxTX91o7pxZb8nrYCSxrOos6hpjGxVZIWq?= =?us-ascii?Q?hV/XmT6T7XLj8MwsT4ZsKcGQFL9gJnVzlVRNXzXDdn7O3tmRA6AutWd8EzNx?= =?us-ascii?Q?ULY60sC43O4wwFYna9qEVOXCIp+Aw36BnOQlOiDIdvHpOn0rTDj5YIulszG6?= =?us-ascii?Q?+qbZiTsFpN9sgvZqGbOlUdZWoD5D+urpsnD60hhY+LJtkI/Al8ngw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; HE1PR07MB1068; 5:0wtdcaQ9yrNoh1Rk/FXs9qK3HYL+22bZD9KQBKpwF3xr9dJZnXNfK315vGZQtZyi7+Lo8sFyazplpY7yb83RsDU7zDsvD1qe6YzAsflQyLBhmb2U93afVBjtMoltzf2XzkGZ6we5boMya0qZdYCEVw==; 24:OIZqIoB00PF4bvm5RAQOxXk2zrw75q0ksGP8iocaxPc1Iypq/+ZyLGW6p9XqPHCrflkEDlrsujNzhPmLZ8kBOFTUYnW/0l86C3qgnU/+wvI=; 7:vb1bpB9Z4EpD1ry4M6557itwzROejFxc039Lp6zNjbO9rl4MpUj8bWkpS3zGa4YgglRXq8n/83TWtva0svbJPk3mty0YfsQ0KuCGXkFkNEH/COtEFRHHPZtyzegkEEFwIz6HnU+iPC2ZcA46kuDx4/twgIuMoHui5noD8w89qd4ycUw7BsvDPR+VJA48c5XgfXIevzt7RHxgk2pncR+ZRjaYQB1unYg9Frx+HAeqlVA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: nokia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jun 2016 13:42:50.4940 (UTC) X-MS-Exchange-CrossTenant-Id: 5d471751-9675-428d-917b-70f44f9630b0 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5d471751-9675-428d-917b-70f44f9630b0; Ip=[131.228.2.240]; Helo=[mailrelay.int.nokia.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR07MB1068 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 X-Received-From: 157.56.112.104 Subject: [Qemu-devel] [PATCH 9/9] m25p80: New flash devices. 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, crosthwaitepeter@gmail.com, clg@fr.ibm.com, rfsw-patches@mlist.emea.nsn-intra.net, pawel.lenkow@itlen.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Marcin Krzeminski Macronix: mx66u51235f and mx66u1g45g Micron: mt25ql01g and mt25qu01g Spansion: s25fs512s and s70fs01gs Signed-off-by: Marcin Krzeminski Reviewed-by: Cédric Le Goater --- hw/block/m25p80.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c index 7bc0e03..e1a7698 100644 --- a/hw/block/m25p80.c +++ b/hw/block/m25p80.c @@ -192,6 +192,8 @@ static const FlashPartInfo known_devices[] = { { INFO("mx25l12855e", 0xc22618, 0, 64 << 10, 256, 0) }, { INFO("mx25l25635e", 0xc22019, 0, 64 << 10, 512, 0) }, { INFO("mx25l25655e", 0xc22619, 0, 64 << 10, 512, 0) }, + { INFO("mx66u51235f", 0xc2253a, 0, 64 << 10, 1024, ER_4K | ER_32K) }, + { INFO("mx66u1g45g", 0xc2253b, 0, 64 << 10, 2048, ER_4K | ER_32K) }, /* Micron */ { INFO("n25q032a11", 0x20bb16, 0, 64 << 10, 64, ER_4K) }, @@ -202,6 +204,11 @@ static const FlashPartInfo known_devices[] = { { INFO("n25q128a13", 0x20ba18, 0, 64 << 10, 256, ER_4K) }, { INFO("n25q256a11", 0x20bb19, 0, 64 << 10, 512, ER_4K) }, { INFO("n25q256a13", 0x20ba19, 0, 64 << 10, 512, ER_4K) }, + { INFO("n25q128", 0x20ba18, 0, 64 << 10, 256, 0) }, + { INFO("n25q256a", 0x20ba19, 0, 64 << 10, 512, ER_4K) }, + { INFO("n25q512a", 0x20ba20, 0, 64 << 10, 1024, ER_4K) }, + { INFO("mt25ql01g", 0x20ba21, 0, 64 << 10, 2048, ER_4K) }, + { INFO("mt25qu01g", 0x20bb21, 0, 64 << 10, 2048, ER_4K) }, /* Spansion -- single (large) sector size only, at least * for the chips listed here (without boot sectors). @@ -210,8 +217,8 @@ static const FlashPartInfo known_devices[] = { { INFO("s25sl064p", 0x010216, 0x4d00, 64 << 10, 128, ER_4K) }, { INFO("s25fl256s0", 0x010219, 0x4d00, 256 << 10, 128, 0) }, { INFO("s25fl256s1", 0x010219, 0x4d01, 64 << 10, 512, 0) }, - { INFO("s25fl512s", 0x010220, 0x4d00, 256 << 10, 256, 0) }, - { INFO("s70fl01gs", 0x010221, 0x4d00, 256 << 10, 256, 0) }, + { INFO6("s25fl512s", 0x010220, 0x4d0080, 256 << 10, 256, 0) }, + { INFO6("s70fl01gs", 0x010221, 0x4d0080, 256 << 10, 512, 0) }, { INFO("s25sl12800", 0x012018, 0x0300, 256 << 10, 64, 0) }, { INFO("s25sl12801", 0x012018, 0x0301, 64 << 10, 256, 0) }, { INFO("s25fl129p0", 0x012018, 0x4d00, 256 << 10, 64, 0) }, @@ -224,6 +231,10 @@ static const FlashPartInfo known_devices[] = { { INFO("s25fl016k", 0xef4015, 0, 64 << 10, 32, ER_4K | ER_32K) }, { INFO("s25fl064k", 0xef4017, 0, 64 << 10, 128, ER_4K | ER_32K) }, + /* Spansion -- boot sectors support */ + { INFO6("s25fs512s", 0x010220, 0x4d0081, 256 << 10, 256, 0) }, + { INFO6("s70fs01gs", 0x010221, 0x4d0081, 256 << 10, 512, 0) }, + /* SST -- large erase sizes are "overlays", "sectors" are 4<< 10 */ { INFO("sst25vf040b", 0xbf258d, 0, 64 << 10, 8, ER_4K) }, { INFO("sst25vf080b", 0xbf258e, 0, 64 << 10, 16, ER_4K) }, @@ -274,10 +285,6 @@ static const FlashPartInfo known_devices[] = { { INFO("w25q80", 0xef5014, 0, 64 << 10, 16, ER_4K) }, { INFO("w25q80bl", 0xef4014, 0, 64 << 10, 16, ER_4K) }, { INFO("w25q256", 0xef4019, 0, 64 << 10, 512, ER_4K) }, - - { INFO("n25q128", 0x20ba18, 0, 64 << 10, 256, 0) }, - { INFO("n25q256a", 0x20ba19, 0, 64 << 10, 512, ER_4K) }, - { INFO("n25q512a", 0x20ba20, 0, 64 << 10, 1024, ER_4K) }, }; typedef enum {