From patchwork Fri Jun 24 08:07:08 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: 9196903 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 213B660871 for ; Fri, 24 Jun 2016 08:14:23 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0DE2828485 for ; Fri, 24 Jun 2016 08:14:23 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 010D828499; Fri, 24 Jun 2016 08:14:22 +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 C51FC28485 for ; Fri, 24 Jun 2016 08:14:21 +0000 (UTC) Received: from localhost ([::1]:41776 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bGMFo-0005Nv-SV for patchwork-qemu-devel@patchwork.kernel.org; Fri, 24 Jun 2016 04:14:20 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59511) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bGMAX-0007jp-S4 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-00086R-0I for qemu-devel@nongnu.org; Fri, 24 Jun 2016 04:08:52 -0400 Received: from mail-db3on0148.outbound.protection.outlook.com ([157.55.234.148]:39578 helo=emea01-db3-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bGMAE-00085z-Ep for qemu-devel@nongnu.org; Fri, 24 Jun 2016 04:08:34 -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=67tkbq+Lq0a0Lk12CogX58wOP59zqyvyJcErbufE9M8=; b=tTjtvyxETjXPhqUjrUHU3Qjn/VCAgcAwPTTwWu7r/l9NDUF+DG2NaRXStUzNjRSefJPy9Taut8m+cIkKzXScgWSu/56TF1zRj3LKTWpnDdZpLpU9mgljvnv/Mfp6865+gf3Meww6zMWwIAKk4o6avu1z/FRY4CQq0qA8HewHHmI= Received: from AMXPR07CA0018.eurprd07.prod.outlook.com (10.242.64.18) by DB6PR0701MB2117.eurprd07.prod.outlook.com (10.168.58.8) with Microsoft SMTP Server (TLS) id 15.1.523.12; Fri, 24 Jun 2016 08:08:32 +0000 Received: from DB3FFO11FD043.protection.gbl (2a01:111:f400:7e04::168) by AMXPR07CA0018.outlook.office365.com (2a01:111:e400:1000::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 DB3FFO11FD043.mail.protection.outlook.com (10.47.217.74) 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 u5O8811C008620 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 24 Jun 2016 11:08:01 +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 u5O87u78008453; Fri, 24 Jun 2016 11:08:00 +0300 X-HPESVCS-Source-Ip: 10.154.155.220 From: To: Date: Fri, 24 Jun 2016 10:07:08 +0200 Message-ID: <1466755631-25201-8-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)(189002)(199003)(92566002)(81166006)(11100500001)(81156014)(77096005)(8676002)(97736004)(23676002)(19580405001)(19580395003)(356003)(5820100001)(50466002)(106466001)(16796002)(86152002)(87936001)(305945005)(586003)(8936002)(7846002)(6806005)(86362001)(36756003)(47776003)(50986999)(76176999)(68736007)(2906002)(2876002)(33646002)(53416004)(50226002)(229853001)(2870700001)(110136002)(2351001)(189998001)(2950100001)(4326007); DIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR0701MB2117; H:fihe3nok0735.emea.nsn-net.net; FPR:; SPF:Pass; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; DB3FFO11FD043; 1:PI09D1RgvIwFu4zI1NACt9dwQf/FRe+JNn7z0JUpOsfxpIAxj8sHkoFbac4dPQa0oSET3P2q+O6A7ECQ5vX4ASkag20dCpR5/hFVRRGR2/Rqy50zuQd8fKx6GidhlI+6gFzr1elB36C05GUUk6ky4kDXZxRXctsFGkw6gZg1Mzhtk6LlVN1e4gXvjXrRq/DvBnloPlQwM3zy/VPHeo0QFM7rFSYndqaxNOVSPZy2H5f/wGmBPJYt22de7B+A9RQgZoLdz58vnlDkqkYffrUy52Y1+pHBFZhUMso53kgU5Ls20bojKR201Gbs237Wi8TZwIXfvRIF8fc9idIPBryHWs3QMcI5jdvARHpHGqOPC2GV8bxaK9Km7HRx2vpWH5wUhqe4rRrAJ+A/EPmsGq4zx6zW9Jqk1rpZaAjGCYGc7XVIEn/AcMPTsgFI2jY0i0ZI X-MS-Office365-Filtering-Correlation-Id: 32b03168-4f74-472e-1a7f-08d39c06bbf6 X-Microsoft-Exchange-Diagnostics: 1; DB6PR0701MB2117; 2:4NXbdQBUaxwqj/5Y9ooL0OBMXNP+5cemO/fgve/+1qhukjiMIIq0QSIigj3YmUkHyqaZaPDJg15IYZe7yGJGn/iymFtkcuS1LuhTTfGerrw6hzrFflExm74kMTYzwqhG+Qe/cSxWEHNoEi3CKdQc47I6F6s9wjlV9WoJaet8FRpjHJPNwlMsGrJ0WJ82P3Ss; 3:QRVRPC+Bt0rreYIFq+iePlk27oSL5PbStsb16uGG9SffzAG80zlazWPou5ZBUFWa83UjxComghoyCOkvKPagYOZwun5ZzTptzfFOzy2ikSrggy3NounMhqzQKALlvAGuLxVK/A2c4Z5drIhJB8HYIl6sdXHGHXi/mAfg1GeR8PkC0T0VGov2RmLa0y4oeLu2RzCM7Qt4V1gBUO3p4Zl3zd/nhZC/DTcSZYri93ftfm6HFgCmjf5aXZHOHB2DVWNa0xMvgZ9MrPFD6yoYToZCHA==; 25:e/T4LRVflyUlkvkBEIQi9Mk4TCvcgtNNe15+x4Dxm+vSsgjf61BjU6LGmE/MerryMkZpFHB63lVvVhdw+4hzNaiFOYRcevR9FVvfQ2XdG80ww+t594jdNOCVK0sJpcPeFJoaMUJ4e9l/saIT/22H5j9AZ0wvzAb/Aq42sPj6UNLIflfUrEOWGuA3eqXasTHvjDhKaHhn4O7owL1omD0KieR6LaFSFTs9euUlRvY5DtZ5GVfalfk4dqLdRLk3G4a7123moV8yBik9HgO/bNXbakzwaSY6z/IOX0jW417Zq4w/dgVXIIrFrvWnaSXgdMuplIFIJFaoZ8IDzRlA3IaeKmbm4VV/T914jyO+i2ZwhV3Mmw7KUvaiOdX00v6rLlPPCUsOkb3AyzqmAybXnmJflC7wAjGjiQ4iYGKuT93ThiU= X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(8251501002); SRVR:DB6PR0701MB2117; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0701MB2117; 20:HbPbqqqDrfjbEPN4oUvKT3KmFMNEMQH1duR0o+v/G5ikiPhIe2AoIHSjWq5AemSwqsSGUz1flESKA7M7Fg03Ht8YvmJGY09gioixlbcTCUzcKInWrsE99dOJ0HUJblfmMTlWGlWb726FSrdBgS8a9QhJEsqc6INGewidAAtPbQ4/yfdnnDUMMpuiYUs1FhI9xdef+/PlHmX6KpTScLba02O4iIFyLNxjZXf5hyykjgf7ZPe6yRhGVXOOJHa+Qf0y/DKL27Zdpn92q2b+PbbMacjLYTHhLnACHZReMCpvhxASQ2J4xifnQfBX0ZgCbZ7kNjK7z4KHlxYG60n4XlMQEzYIYv0Oj/l4SBa5rDJUbJeSYGCm0RCj9hwQ1QX81bm8hNheQTCP2gOeVzYR+qWIRfao1YCXayO3G+jeCYQWJv6FeWpiy6gIviUq+pg09+bls4THd+EGrBdR9Dy56cnM890bNpicv1gYW/Qa5RSSvMwdsb2eOJU4hIXSiAlCST8EB2F1VpBtWaEqLBDQxdjmPGar1/eQkfJ8CC7P7lsb3jOTx3nQ+4EvtuDDFkq+iVORh0ezXh8DalKjwe26mjGWnGYkmKH4gcsosYnmXYRuKw8= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(82608151540597); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(13016025)(13018025)(5005006)(8121501046)(10201501046)(3002001); SRVR:DB6PR0701MB2117; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0701MB2117; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0701MB2117; 4:zl4klyT/MLjSwFHnJuDT4UvSYr1KSz0UAoT2Mkw8Fad1sDTKJrLfIu0iwSO2IWHFzABlo/P3Si8XhtT5oItWSSZv6y4cNyh9ItjQIQUU+gzXSmF2UQfixq6nVNcTqYs8tau5HjbF/kGa3/Fxwfhra/QOFsMGplekot299s/qY0+cnwYOYouvytigPB/4yiroENvkK3S2tREX6dfFjmBClsejvVdMCAsEqEOu2czFExJdF7IqXciV5FKPde7KZK8J0qsbnsfSwvGBhM4G2l9omUEE2uuhClOAwrp4yst6/bewxRK7ldWpMb0xXbEUM+adS/hHxN//9vLbM12pD8yj6FxLNB10KVr8T1jgFNc4w6ubfSdE9zmHF/KxRh3xLiU1bbb3/XJY3PpkiVn+YS4mFaeXUcTkTjWq2gD0X9lb0taKluwAXbLnHkhB6Ylj3ya2aeosjBp1iougan6ZOiXqfQ== X-Forefront-PRVS: 0983EAD6B2 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB6PR0701MB2117; 23:yirFIL5nJVqGPvRnLIX61gd8/BAeLj584U+U3uE?= =?us-ascii?Q?dVO/+4gwByLG/UndlwYj9xtUbmTty5I3my3leGQlBocLz6QjSM749IfHqPl9?= =?us-ascii?Q?j0kxtmXwh/GInJPn6qBrA7vxlTqFNBDrmxNN41Jxv47k45G++FNq7PCNN1L5?= =?us-ascii?Q?w5UPYsJAniGlPOfrcr4XMhIuURE0Evu4N3t1q5AX3DAg2lL7dD6yPgBZKOFd?= =?us-ascii?Q?V+HhZp8YcNLAiTU6bM+6NBkXAxYTnNczqJtuz8EcrwmC5gTx/yiaVS4m5rfg?= =?us-ascii?Q?ksynvLrP3p9Xt4+exGuYm+9EDqj9xPJ03bAGeWpaURzMnARvI6zy1Ft6ljGT?= =?us-ascii?Q?rnwK7l3hKjA2hTb/wnoeNa+LjtsHhAPg+xHOdhtVzZieONX56mRL50KRFy4x?= =?us-ascii?Q?0poHi+OZse8kQwRNqT5b9ipR2jA/Zr7JmYFpN/J8ASsA0jhEdvTIfCt6dBpt?= =?us-ascii?Q?Myz9KpBKcDayL9cReC1jTmKuNJ9OSkiAgeBtsgK/iAOeWeBKYWft73tgBrP9?= =?us-ascii?Q?itAIX4OkLXevtEVdr1MyZA1tAHgH1oz5WSPyUGLtiH4F8Rv1ycKhSZopMtpU?= =?us-ascii?Q?DweFCadMgHgGhvCNFpUf6S0bYOCmI62J/X8C0jGbIo5DLa679IybnkrFczqo?= =?us-ascii?Q?30D76ppk6g28cdaDbTbmHvJeMVtMBsUfPXERuXkW7wqruVuaQ1yifDobPcet?= =?us-ascii?Q?F3YTW2TYv3R9JzCJnzUfj9oWmTuFK4MxDDnRUbxzfV9MP5dVgZMaVzJ7Fso7?= =?us-ascii?Q?gqmAiP/9J/N42xR8lfYCXszGPRlvQzbkqwpOFxTLF8PHpp/6S8VcVkfFJHhL?= =?us-ascii?Q?cM44dv7mgzx7fqPtO60oI2cqtYhT8wyQkV6Qnts00Z4gVX21O9Qtr73xcQcd?= =?us-ascii?Q?vXce0I7JRuCzjYyqQq17w/fDMQUWEcnfpHyxxSICgpXXUhHFUUENBAl8Uiyz?= =?us-ascii?Q?Y6jHRnHS/liJcij2VLda95HVxHGZOWUtPAaFWt/oCtNMCv8duTINb/bOGbOZ?= =?us-ascii?Q?dj1L2B8I4y9TYhasKoHSXLuyWCTJH0eLX3pwhQcbceLQecBdFpKTNRI/xx3i?= =?us-ascii?Q?Hs1PYLHC7MGVC77Dzf/eH3YEO3Q0hA8XNa2T6hkILL4RhsM8cP8RA25yNb3G?= =?us-ascii?Q?Q7eoYume3E/u0SyHbOjpHZnZV42X4sGLX?= X-Microsoft-Exchange-Diagnostics: 1; DB6PR0701MB2117; 6:jMNsxGK/VMghD4+Icz5p1Jd5jaons8K57qTOBc4qsk+tXCiSX5IeR9T7ElJpdTfm0tYYMFmW7Bv7RFoR0xn7sPJ5oMsBsGygIdXTj8NWDmX2nTnS9uqQwkZ325Zd/hlof93V9QvN77hQSc1A1HGu2YWGJCWPVitPjJbG0yBFf4I8ZWdz9vHa4VED4uwUfXMzrILtPJpbWhJn4T91HWS8/XdzRHpfaRxdxHHaQ66RWZR2RYhPWQEKh8ngBNLDP1SVOWFzEhZ4XQXnK3HiMHRaytvpRaEAaPcOIp9M3dABmIBfi+gjSAE3BQXMChamt/2h; 5:upvcW0Aff1IFgqc0yXLTn8eWDnnGhjIPQZirmToqgIt9KxeiZLnanw3ORssCBdB2213Lh4LrHQuoWV8+yn9T1OqCdJF7X+n2l/7+GzkIYf/C06Vdvjvm+tAtjcmOs8Hszx2Qz4b3RQJiLzvs/2tyoQ==; 24:PRTmx0i/UY9LXzzJ5s8335uc9+P2W4ut0ELJH9vyUhroEp8zzfwj1Qc5UTvowR4ntskgevtia9YeGhjolQFrCdltmceF3YfBLlew2t18Zl4=; 7:L/2KkfuIuYjaeRts7DrMjgyh9eL9bxTSsIabJbb9XEvWc1Npoq2x5hscgzk5q/K/aXCV2oXgCXrtr5WLIQfftqepnBhMcu6MYe2qLVMSECLnaak6JkMNOrx/DdcXY0O/qikLs5KOCSY7XGu6rrupkyc2IdTmDC981md9K7V6DXDkbDJUibUZ/f7HZy+v15uMkjFKqSv7lniGMcsBA15scEpQHQpxYK8BXAfP82jwaKpGHDlva0dWjcWOzsq15pviQeLBV2sZ7DRjoq5aJFf6PA== SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: nokia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jun 2016 08:08:32.4704 (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: DB6PR0701MB2117 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 X-Received-From: 157.55.234.148 Subject: [Qemu-devel] [PATCH v3 07/10] m25p80: Introduce configuration registers. 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+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Marcin Krzeminski Configuration registers for Spansion and Macronix devices. Signed-off-by: Marcin Krzeminski Reviewed-by: Cédric Le Goater --- hw/block/m25p80.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c index d1c4d46..21998db 100644 --- a/hw/block/m25p80.c +++ b/hw/block/m25p80.c @@ -134,6 +134,14 @@ typedef struct FlashPartInfo { #define FSR_4BYTE_ADDR_MODE_ENABLED 0x1 #define FSR_FLASH_READY (1 << 7) +/* Spansion configuration registers macros. */ +#define SPANSION_QUAD_CFG_POS 0 +#define SPANSION_QUAD_CFG_LEN 1 +#define SPANSION_DUMMY_CLK_POS 0 +#define SPANSION_DUMMY_CLK_LEN 4 +#define SPANSION_ADDR_LEN_POS 7 +#define SPANSION_ADDR_LEN_LEN 1 + static const FlashPartInfo known_devices[] = { /* Atmel -- some are (confusingly) marketed as "DataFlash" */ { INFO("at25fs010", 0x1f6601, 0, 32 << 10, 4, ER_4K) }, @@ -369,8 +377,18 @@ typedef struct Flash { uint8_t cmd_in_progress; uint64_t cur_addr; uint32_t nonvolatile_cfg; + /* Configuration register for Macronix */ uint32_t volatile_cfg; uint32_t enh_volatile_cfg; + /* Spansion cfg registers. */ + uint8_t spansion_cr1nv; + uint8_t spansion_cr2nv; + uint8_t spansion_cr3nv; + uint8_t spansion_cr4nv; + uint8_t spansion_cr1v; + uint8_t spansion_cr2v; + uint8_t spansion_cr3v; + uint8_t spansion_cr4v; bool write_enable; bool four_bytes_address_mode; bool reset_enable; @@ -601,6 +619,9 @@ static void complete_collecting_data(Flash *s) break; case MAN_MACRONIX: s->quad_enable = extract32(s->data[0], 6, 1); + if (s->len > 1) { + s->four_bytes_address_mode = extract32(s->data[1], 5, 1); + } break; default: break; @@ -674,6 +695,23 @@ static void reset_memory(Flash *s) s->ear = s->size / MAX_3BYTES_SIZE - 1; } break; + case MAN_MACRONIX: + s->volatile_cfg = 0x7; + break; + case MAN_SPANSION: + s->spansion_cr1v = s->spansion_cr1nv; + s->spansion_cr2v = s->spansion_cr2nv; + s->spansion_cr3v = s->spansion_cr3nv; + s->spansion_cr4v = s->spansion_cr4nv; + s->quad_enable = extract32(s->spansion_cr1v, + SPANSION_QUAD_CFG_POS, + SPANSION_QUAD_CFG_LEN + ); + s->four_bytes_address_mode = extract32(s->spansion_cr2v, + SPANSION_ADDR_LEN_POS, + SPANSION_ADDR_LEN_LEN + ); + break; default: break; } @@ -1052,7 +1090,12 @@ static void m25p80_pre_save(void *opaque) } static Property m25p80_properties[] = { + /* This is default value for Micron flash */ DEFINE_PROP_UINT32("nonvolatile-cfg", Flash, nonvolatile_cfg, 0x8FFF), + DEFINE_PROP_UINT8("spansion-cr1nv", Flash, spansion_cr1nv, 0x0), + DEFINE_PROP_UINT8("spansion-cr2nv", Flash, spansion_cr2nv, 0x8), + DEFINE_PROP_UINT8("spansion-cr3nv", Flash, spansion_cr3nv, 0x2), + DEFINE_PROP_UINT8("spansion-cr4nv", Flash, spansion_cr4nv, 0x10), DEFINE_PROP_END_OF_LIST(), }; @@ -1077,6 +1120,10 @@ static const VMStateDescription vmstate_m25p80 = { VMSTATE_UINT32_V(volatile_cfg, Flash, 2), VMSTATE_UINT32_V(enh_volatile_cfg, Flash, 2), VMSTATE_BOOL_V(quad_enable, Flash, 3), + VMSTATE_UINT8_V(spansion_cr1nv, Flash, 3), + VMSTATE_UINT8_V(spansion_cr2nv, Flash, 3), + VMSTATE_UINT8_V(spansion_cr3nv, Flash, 3), + VMSTATE_UINT8_V(spansion_cr4nv, Flash, 3), VMSTATE_END_OF_LIST() } };