From patchwork Fri Jun 24 08:07:03 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Krzeminski, Marcin (Nokia - PL/Wroclaw)" X-Patchwork-Id: 640083 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3rbWH76clKz9syB for ; Fri, 24 Jun 2016 18:10:43 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=nokia.onmicrosoft.com header.i=@nokia.onmicrosoft.com header.b=kt0jxA9T; dkim-atps=neutral Received: from localhost ([::1]:41759 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bGMCH-0000v7-Jy for incoming@patchwork.ozlabs.org; Fri, 24 Jun 2016 04:10:41 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59515) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bGMAY-0007jq-Af for qemu-devel@nongnu.org; Fri, 24 Jun 2016 04:09:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bGMAF-00086i-Ry for qemu-devel@nongnu.org; Fri, 24 Jun 2016 04:08:53 -0400 Received: from mail-db5eur01on0097.outbound.protection.outlook.com ([104.47.2.97]:51456 helo=EUR01-DB5-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bGMAF-00086I-Ej for qemu-devel@nongnu.org; Fri, 24 Jun 2016 04:08:35 -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=ea5MRcW0q/ZtqX+crhMKVbhEv460RdjnAH15EwB88Vg=; b=kt0jxA9TaNWTZNyxr+DOLSmJ1CMG7k4zJHtir3EQtId9f+wrR+f5EIYm2wX3W4dqHnk8iJbVheRJ9mk1BOMCnLjo7OwzN82iGhf/A4kPA69g/ZAk3K/9RxsB6niejqoWGHBJIkH2qTAmHCwemRVgUuzKIHSHp0rW4PcVwn4lsaw= Received: from DB5PR07CA0008.eurprd07.prod.outlook.com (10.167.223.18) by VI1PR0701MB2126.eurprd07.prod.outlook.com (10.169.137.7) with Microsoft SMTP Server (TLS) id 15.1.523.12; Fri, 24 Jun 2016 08:08:33 +0000 Received: from DB3FFO11OLC004.protection.gbl (2a01:111:f400:7e04::116) by DB5PR07CA0008.outlook.office365.com (2603:10a6:0:2d::18) with Microsoft SMTP Server (TLS) id 15.1.523.12 via Frontend Transport; Fri, 24 Jun 2016 08:08:32 +0000 Authentication-Results: spf=pass (sender IP is 131.228.2.241) 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.241 as permitted sender) receiver=protection.outlook.com; client-ip=131.228.2.241; helo=fihe3nok0735.emea.nsn-net.net; Received: from fihe3nok0735.emea.nsn-net.net (131.228.2.241) by DB3FFO11OLC004.mail.protection.outlook.com (10.47.217.132) with Microsoft SMTP Server (TLS) id 15.1.517.7 via Frontend Transport; Fri, 24 Jun 2016 08:08:32 +0000 Received: from fihe3nok0735.emea.nsn-net.net (localhost [127.0.0.1]) by fihe3nok0735.emea.nsn-net.net (8.14.9/8.14.5) with ESMTP id u5O87wMr008548 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 24 Jun 2016 11:07:58 +0300 Received: from CNU418C7XK.nsn-intra.net ([10.154.155.220]) by fihe3nok0735.emea.nsn-net.net (8.14.9/8.14.5) with ESMTP id u5O87u73008453; Fri, 24 Jun 2016 11:07:58 +0300 X-HPESVCS-Source-Ip: 10.154.155.220 From: To: Date: Fri, 24 Jun 2016 10:07:03 +0200 Message-ID: <1466755631-25201-3-git-send-email-marcin.krzeminski@nokia.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1466755631-25201-1-git-send-email-marcin.krzeminski@nokia.com> References: <1466755631-25201-1-git-send-email-marcin.krzeminski@nokia.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:131.228.2.241; IPV:NLI; CTRY:FI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(7916002)(2980300002)(438002)(199003)(189002)(77096005)(2870700001)(47776003)(76176999)(6806005)(92566002)(87936001)(50986999)(33646002)(11100500001)(19580405001)(19580395003)(2950100001)(189998001)(36756003)(23676002)(229853001)(2876002)(68736007)(8936002)(356003)(50226002)(86362001)(81166006)(8676002)(81156014)(86152002)(50466002)(2351001)(2906002)(305945005)(7846002)(53416004)(97736004)(16796002)(5820100001)(106466001)(586003)(4326007)(110136002); DIR:OUT; SFP:1102; SCL:1; SRVR:VI1PR0701MB2126; H:fihe3nok0735.emea.nsn-net.net; FPR:; SPF:Pass; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; DB3FFO11OLC004; 1:CfVcGZnqm/qq0oJF8/YlHCzu7dGhAYDunHZZhI1gXkOHYQKxVEc2/xh0NYp5kC//4W52WVyX3aAeJNuzHH/dSiyJ2IDqsV1h+O0lINBaiURG4x48uAZzOeEWxftff6ZqN3jFv4Q0mFQLLfyph8oWlnMKAQMxqH+GgTnwy4Ej8/wQliG1WKp7ZUd+bI3UMKoYeiJzMFn4WWefQUMfq7vugwRd1f437Y8kOJEdnjVKI6xJA4ZeQNV+ef+6+otvGLc2jArQwaLEP5DSqdAyLyNOCrsO2r5WdhiUN/ustnMqHcBHEIZnJQLm9FSMXwTUmk3wcMqtpvEUY0BKLXvZy+hVnJha39di5epIbYUi2x2w8hkGRRpO+mSWsmZtPdtl5xBJFqyjaLa9cSlVAte2tDNlltKsG8pdqsEukcusx4p3R/tsiHZgAG/KP+ORS6bCsYzm X-MS-Office365-Filtering-Correlation-Id: 42e6bff2-d57c-4ac5-32f3-08d39c06bbe9 X-Microsoft-Exchange-Diagnostics: 1; VI1PR0701MB2126; 2:ZYd8cGFbC/AaiXCNYq43gWnuy563fyjwJmbZCOyI47MFtVaDIIEe8XP0Bm3GWGobwmpq2t9Uu0iB6iVi4d8nhf7rViorLC9TQ5PBr4drancfW/1yqWkFQiBB3t7qoYQdUGNMCYUzlSjHUKidIwF24KPvl1p9Pr4P862tARCq7WmMEcYlYrCD1CyAdklFnca1; 3:SsvordndHpHb3O5Cvwcxjwl3cW9OTXR+DVdys+eYsMn4An1q08JRVCCjtO7UvH2YLl51wfFrUtIFtp9t1NG0NC7LRn9hyxhzBUhO0GgGFtEI3nRrLzWDB8iqxyLnGzafacQcQHUJkDG95T7pyANHyGeHoKXOFkh5PRGYCzGfvTJ0doDma0pzQmqhkVek3M7Paa5ryN570RY9twKzpxo6JRwFQo45w1NAMTaAEcugZtN4RCBKU7S2MO8JgVYfHrieXIPXW64L7DV9sAwVes1BIQ== X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(8251501002); SRVR:VI1PR0701MB2126; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0701MB2126; 25:6JdToyk1x9gkQbO6eiJJZ3HBtTBawO+MFekr6wFTtyPL3Iaz0+3xaTSFJDELTHBNegh4DzLafX+sTTn96D/E3yNH3c2ojr0Ip7ruwWlEzBWpWM8C/j77V+96S8JlFFwNRQZ72mBJJpJSNL3IbIWFiBLZ1rY2S20Mk13ixWHb0aQTaR/57rJrSz2XTId5kTHEq925PVDmC12stLvEiwn4Kb1JuHMBcGehAWGYtfU5/CmIDOPyJ0+jmT3YMlcgrXTkGAVTPTODqZP8O+EkCx0hiu01o5a5AnkSIkj7iwjkR+jHsBIhXJKDooZyGlbBFgWBorZJbq91AiHJ+JIBAjXwBr/fSAnSdFcLj8PzHAo6ohzcUcsJ0HELz3CpmRVUG48jSCfKf4U4XCglYmDcz1QmZNebESzH6jgV7kEYtBJL8XQFMsnEjZpL3desOVrvGBLFmEZFIYbIL4zfhQSzZ3hHwdqMM15ktByNuKxyUhnRqsET3Hh3d1yxVjqnrfFvnhWx17QGTT9OPaESVzgKSpoChN6bVh+smGKCRoE85PBMpXlShWalKY2/Le5ISEsPoV9TmDCi6zq0md30aq69PkZ3RaWBOtDEUFe9d2vjQPhaY7Ustqa3g2jnFpEfhx5Ge9tHpP5V0H8aRMO+A0NBL87qUAJmgYhGfBmzpu8W+9ZX2l8QL3CRdfAB8uUOsqYVfBeCFvPFHxN7utRnRK1GdoDYvvnrdtsbMBs8hO0OSWQWw8w= X-Microsoft-Exchange-Diagnostics: 1; VI1PR0701MB2126; 20:CzRyApOshGDmCg7dsCxMjjsNa2bBpKvRyG4HsIAZyf9XBMG4J6THB921/feGq3QZPn1UIxTD7h7zbpoyD1VPBjPBpSADAHi8PQwPLEtHTAnPIaepfUHOlF9mKDizd9NdGG/fbPR25YOa5DROdwPznbZX5OOy3flQHtXRjtrRruiHA/9mmoUG+WV/MZPUadx/yJV/HDNBrfcC3eicWZXB1V7SvYnTkYnCWFCeTWOl7YeaorlkVZ288vbxAFXaF780XlT3wJPmqoztbIior8xDDwpQTDB5UL4SuPg8l2L3MpcjPNL0+O+w8pKdEVQxzXDQY1VoZn/U+Jo5nlbK/pq9b0gqAFL38z3je6FKeHeHCWCKPelGy9xN63AOX0kkPmkbmZUDWNyA3OFZg71u3yNSNFcldnf1xkwjv/t5k6CADR/IDjb6f23nGUi9MHxMmhLDjuprImsO9vslSKbOaFeMwbifUd0vMH7+uelcHxwwQ1q3+WUS3VrkGzUnKZQDhcNnrSBYtrDML97HGxyrOLy3Ty3YQtK8b19jK+0KsgteIAP3p1194VLmQfvtdKL/Jd23Dn4DaMn6gX/9mg1oNccMTX/jAtbsKwrtbyBOSj4/bAY= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(82608151540597); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(13018025)(13016025)(8121501046)(5005006)(10201501046)(3002001); SRVR:VI1PR0701MB2126; BCL:0; PCL:0; RULEID:; SRVR:VI1PR0701MB2126; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0701MB2126; 4:kuFOdbdkCLtJGE6j97NXH2Jaisn81+nNN/yExQ+bzTzTTKm/IUbFN3a7k/AhEnUAubGlxtlZWwWl/Z0nFdY0Rya7cf7+3lNVrVKltSEsh4rRMYas6RwexFVN0shcOM0Iz84hGWwy2n2z3wtRQ2nDxp6XVUtEN+qv+1nCr9dZxZsjPwWtsNTtAfGCObPdDgfiwzYn5VtEOvRC/+rXUUv5BJvV8pfcbrZCr/J5owgBO/MAdpMDzaJwxy807TCG84XqbYnYqMfO/ityihqoosXFmTL3IOo2YTHSf0ZYIR4TaquCNnN3yWlPIZcaAf6YJ7X+aQzn5GVEfi7wXsz12tFtkC5nXFarzbvD/s8WZh2hy6HBJuqpEPxLT9bFxYC/K7hv98ApsqBjfQy23dM+OpsgsvfOdESNo+f95dk5lhhx9muQVZRsNEeNef2VRIUtJilINJOUzYObOZ1dp1cXhvXvOg== X-Forefront-PRVS: 0983EAD6B2 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR0701MB2126; 23:e6LFAvCglZcYUhnU7IABhcZ6FBTre9PINHGudvX?= =?us-ascii?Q?V/3DtxLuX1tNCDIN9JlYX1rKEVTIkw9uiLeYR9CRDvLQ7FCH9Zslo8WgloxP?= =?us-ascii?Q?Rnh3PQoT7EcF2l6EvfuEZuLAQVMVT4IuhJqdbzaWhYCbAU6ZUxmtb6Kdtu+T?= =?us-ascii?Q?Yl6k9T9A9cyLvRC7rKle7+C3+UYz2NfwA2drhL5pIDNpMMhr+9/j/Vn1b/Ut?= =?us-ascii?Q?WXZ7L5h71K86cAjQQCP3lF7LcvxrbR969jKHHQi14ups/gfCPV8+B2NnvfVd?= =?us-ascii?Q?9NvTAN4LeKPnas8swS+aUqadrTBrCRT/3Z+YtH2szBwdoqCp7ZdWR04Mex1E?= =?us-ascii?Q?GaucydrCKnS/Fl2JjUX0WEsLkdQIRn2e85AxA7/MMXGdGDttVVZKzBgXJ2+o?= =?us-ascii?Q?7truZ+V2re2H/+X4DQwOfTQrdrMV6mmspr1VmPyXGWlemnjTXRicaPu6lYKH?= =?us-ascii?Q?+BerN6arYQ//V77YkeAwK/bfP1/bV86NstPoXsFIbrMccd1oyORNib3yG+5k?= =?us-ascii?Q?4agUR/RWiyLOgfVAlaxrXLL+YovNRQdlip/7835tkr0ZBpj+gcQoCDp7lCkZ?= =?us-ascii?Q?/BFUKLv+RRbf6IxwbiSb0OVRqsGyPzRxYUyWaQTmtoAshC8GqtV1oXGs1VGJ?= =?us-ascii?Q?bUhEfWPtY+avFgW2d+mlRYk0HhjNsPTfBQNmVr9v/22m6W617zB/VjyHWI/F?= =?us-ascii?Q?BV/jU1y4p31Bkuq+AzmgJa/Kufak88uwoTrzm07eDmWlhC+7cIaptejO7UE+?= =?us-ascii?Q?Hii84WncnR4dRZck2QmXo0YrsGCb4UgF4YZdoIDgagbpRXtA7iRs9jhhMRNV?= =?us-ascii?Q?1rr6FnBK/fOxcfbJ019J3/i5Qb/n4QFw5ZxVXJl88kLIAlS1H1JuaRGPX8Ek?= =?us-ascii?Q?WS+lOA2GpFQHGeWifFHHvPFkRJDuhg5zOyF4fbMLx3/cqrie1QrpAHLebQ4L?= =?us-ascii?Q?3OII1t7CjPXDbRZJvMqBujKkJsnRtUWE89jiMriLjMyIiblV6wciZauc5Q95?= =?us-ascii?Q?QF7u7H2vX8HlmABNk+qvdYPsaUFwJJeYhKJdShrhooMlYDD5B9MHl7olyYWU?= =?us-ascii?Q?sl6Jo2txlTqQfQj1vusDsfCsbOfyyBaKXppEJs43CMC+mwGvxwBpYMqaw1O3?= =?us-ascii?Q?b3xwgGSSBoKH2KzN+lxEB41rt3eWIgk+P?= X-Microsoft-Exchange-Diagnostics: 1; VI1PR0701MB2126; 6:uOHAihj123HcCJGsAurDOqsp+0BasCkePYJWD/i24mnBPq9xfU8nnGrzfgKVMD8tpcfIMo/yZBsKkLSmZatSYogpsjkLs7z6ZVDEvonTOAZvugY2VXZcMFoz2fC5Uu4/ZXksdbeusSDGRrK6KB6o2r3YW7fmJXZ36iTfw2Ru30bVttTenxw2wh0S3PNGV1B/SOOu9iUT1uOZVNwbUJNHsLkMh46SljN7FHfggCq7Kdh/4zGMTNQScIbceGLuTGD7Mu/5FZqZ4UFqxwShkDxsARWSddWMANjjJzNrh7WvzvTdyXKlrrMJPzbSxAfta2JO; 5:2BljN4JVOxALdmCT0O3QZt0DEHvzv4B4+HzL/0oT/+tQoQ6wrEmQvz2CN/tu6H6LhufzEoymyeB/f6YuYgh6NPal9eexZcKD10OHdU6VJkO8xck6z4KodJsCyrMZOuI+49DUohluaK6V1UyF6V6fog==; 24:Je2bYwd1gyjXM7jTzcOpSoU22/4ylORSwqJlrkt8eBWj9na56+sjFJfG+LuR3mJDc4DdUfZ/CUxDmHiGnLVP3zyZ/xImWn6OHo+cG0NopfY=; 7:XOkRind1bI/OrAohK4mcYT+pnI7eB8cLaed6eerKMnJ94Yq/fmaWNC5/uZlwg4vI8RYNKsJnfwxMvV8qlyqR/kq+zBCtfUWgzyrwkkU+/Nw7cUQC3+zgLOljt1xZBDN0ArbqzPKN7SY/0TIcm23HqlfNC4B0JG9ji0AqYHsMlyTqyvsgXA+P+dSDceMtwZbLcvjo6erMgYly8Tjvm+bgkuupAiLFvcBtyXI59UHcmpMeoXcG5JcA52wlBJeHoxu238WgHufczT/7iJ4s+4Q/0A== SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: nokia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jun 2016 08:08:32.3703 (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.241]; Helo=[fihe3nok0735.emea.nsn-net.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0701MB2126 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 104.47.2.97 Subject: [Qemu-devel] [PATCH v3 02/10] m25p80: Make a table for JEDEC ID. 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, clg@kaod.org, pawel.lenkow@itlen.com, rfsw-patches@mlist.emea.nsn-intra.net Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Marcin Krzeminski Since it is now longer than 4. This work based on Pawel Lenkow changes and the kernel SPI framework. Signed-off-by: Marcin Krzeminski Reviewed-by: Cédric Le Goater --- hw/block/m25p80.c | 61 ++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 42 insertions(+), 19 deletions(-) diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c index 15765f5..342f7c9 100644 --- a/hw/block/m25p80.c +++ b/hw/block/m25p80.c @@ -53,12 +53,17 @@ /* 16 MiB max in 3 byte address mode */ #define MAX_3BYTES_SIZE 0x1000000 +#define SPI_NOR_MAX_ID_LEN 6 + typedef struct FlashPartInfo { const char *part_name; - /* jedec code. (jedec >> 16) & 0xff is the 1st byte, >> 8 the 2nd etc */ - uint32_t jedec; - /* extended jedec code */ - uint16_t ext_jedec; + /* + * This array stores the ID bytes. + * The first three bytes are the JEDIC ID. + * JEDEC ID zero means "no ID" (mostly older chips). + */ + uint8_t id[SPI_NOR_MAX_ID_LEN]; + uint8_t id_len; /* there is confusion between manufacturers as to what a sector is. In this * device model, a "sector" is the size that is erased by the ERASE_SECTOR * command (opcode 0xd8). @@ -70,11 +75,33 @@ typedef struct FlashPartInfo { } FlashPartInfo; /* adapted from linux */ - -#define INFO(_part_name, _jedec, _ext_jedec, _sector_size, _n_sectors, _flags)\ - .part_name = (_part_name),\ - .jedec = (_jedec),\ - .ext_jedec = (_ext_jedec),\ +/* Used when the "_ext_id" is two bytes at most */ +#define INFO(_part_name, _jedec_id, _ext_id, _sector_size, _n_sectors, _flags)\ + .part_name = _part_name,\ + .id = {\ + ((_jedec_id) >> 16) & 0xff,\ + ((_jedec_id) >> 8) & 0xff,\ + (_jedec_id) & 0xff,\ + ((_ext_id) >> 8) & 0xff,\ + (_ext_id) & 0xff,\ + },\ + .id_len = (!(_jedec_id) ? 0 : (3 + ((_ext_id) ? 2 : 0))),\ + .sector_size = (_sector_size),\ + .n_sectors = (_n_sectors),\ + .page_size = 256,\ + .flags = (_flags), + +#define INFO6(_part_name, _jedec_id, _ext_id, _sector_size, _n_sectors, _flags)\ + .part_name = _part_name,\ + .id = {\ + ((_jedec_id) >> 16) & 0xff,\ + ((_jedec_id) >> 8) & 0xff,\ + (_jedec_id) & 0xff,\ + ((_ext_id) >> 16) & 0xff,\ + ((_ext_id) >> 8) & 0xff,\ + (_ext_id) & 0xff,\ + },\ + .id_len = 6,\ .sector_size = (_sector_size),\ .n_sectors = (_n_sectors),\ .page_size = 256,\ @@ -360,7 +387,7 @@ typedef struct M25P80Class { static inline Manufacturer get_man(Flash *s) { - switch (((s->pi->jedec >> 16) & 0xFF)) { + switch (s->pi->id[0]) { case 0x20: return MAN_NUMONYX; case 0xEF: @@ -630,6 +657,7 @@ static void reset_memory(Flash *s) static void decode_new_cmd(Flash *s, uint32_t value) { s->cmd_in_progress = value; + int i; DB_PRINT_L(0, "decoded new command:%x\n", value); if (value != RESET_MEMORY) { @@ -743,16 +771,11 @@ static void decode_new_cmd(Flash *s, uint32_t value) case JEDEC_READ: DB_PRINT_L(0, "populated jedec code\n"); - s->data[0] = (s->pi->jedec >> 16) & 0xff; - s->data[1] = (s->pi->jedec >> 8) & 0xff; - s->data[2] = s->pi->jedec & 0xff; - if (s->pi->ext_jedec) { - s->data[3] = (s->pi->ext_jedec >> 8) & 0xff; - s->data[4] = s->pi->ext_jedec & 0xff; - s->len = 5; - } else { - s->len = 3; + for (i = 0; i < s->pi->id_len; i++) { + s->data[i] = s->pi->id[i]; } + + s->len = s->pi->id_len; s->pos = 0; s->state = STATE_READING_DATA; break;