From patchwork Fri Jun 24 08:07:06 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: 640094 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 3rbX2B6tS9z9sxb for ; Fri, 24 Jun 2016 18:44:34 +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=XVD4/33D; dkim-atps=neutral Received: from localhost ([::1]:42006 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bGMj2-0007IC-Uo for incoming@patchwork.ozlabs.org; Fri, 24 Jun 2016 04:44:33 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36861) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bGMPU-0000e1-SD for qemu-devel@nongnu.org; Fri, 24 Jun 2016 04:24:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bGMPQ-0004gI-0N for qemu-devel@nongnu.org; Fri, 24 Jun 2016 04:24:20 -0400 Received: from mail-db3on0145.outbound.protection.outlook.com ([157.55.234.145]:52819 helo=emea01-db3-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bGMPP-0004ek-Id for qemu-devel@nongnu.org; Fri, 24 Jun 2016 04:24:15 -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=KHdZs1m++9bADzXVIgEpTg5cgks5zV6+08lZFi7I9d8=; b=XVD4/33DhbTQ6lbxE539yrfDVxdbH04RxmAfqSDGmjdXPJwsXlk/HgePoowGg7cQfA2UrUWzLcIPQBA3Rb0v9kcCvceXF9yMXHxAv8xdrKr2UcO9brsvqIUC2WzZNZSldtcDmmPTwhLeqYe8cZTgx6zunDue5rkHM6kmM+5gZXU= Received: from DB5PR07CA0034.eurprd07.prod.outlook.com (10.167.223.44) by AM2PR07MB0897.eurprd07.prod.outlook.com (10.161.71.18) with Microsoft SMTP Server (TLS) id 15.1.523.12; Fri, 24 Jun 2016 08:08:31 +0000 Received: from DB3FFO11OLC004.protection.gbl (2a01:111:f400:7e04::171) by DB5PR07CA0034.outlook.office365.com (2603:10a6:0:2d::44) with Microsoft SMTP Server (TLS) id 15.1.523.12 via Frontend Transport; Fri, 24 Jun 2016 08:08:31 +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:31 +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 u5O880qL008582 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 24 Jun 2016 11:08:00 +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 u5O87u76008453; Fri, 24 Jun 2016 11:07:59 +0300 X-HPESVCS-Source-Ip: 10.154.155.220 From: To: Date: Fri, 24 Jun 2016 10:07:06 +0200 Message-ID: <1466755631-25201-6-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)(19580395003)(76176999)(19580405001)(586003)(92566002)(36756003)(2950100001)(97736004)(11100500001)(2351001)(6806005)(53416004)(110136002)(50986999)(68736007)(77096005)(87936001)(33646002)(86152002)(47776003)(16796002)(86362001)(50226002)(8936002)(189998001)(7846002)(106466001)(305945005)(229853001)(23676002)(50466002)(4326007)(356003)(5820100001)(2870700001)(8676002)(2906002)(2876002)(81166006)(81156014); DIR:OUT; SFP:1102; SCL:1; SRVR:AM2PR07MB0897; H:fihe3nok0735.emea.nsn-net.net; FPR:; SPF:Pass; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; DB3FFO11OLC004; 1:6+m8M0eieVnhL8P9NPB8h9IiXMEA6r9ksEbOZnewX0uSqpkO9LH7c8RT1Jcf55yAvnJsN6FCY0dXaWLrucCUK78C0C532qkEm7ocY/uitwTjocZTpYRpulObOuVjg4oCeDjT/6ZOSCH+Jx4cenAnhjY/PJWEkHyluYPyGNe9nhHtG2+rcklsxwAkARWbT+85w9NgGgC5YjJ+wb65MkWr7Km1Tl1X3kIvIvwgs1EGg5xX3r9xT2PoyMNA/2A09BdhnhnZ1bxnRnEoSgxtCRgTS6cdnG8q1eJKvTPnvRqLeZgzhoG+0GDZGHHpztSdZF5u8MXPgYV+JUG+xG5M8u0Efpx79gbpwbkaWPwgYhW8qZ1LWfdJvbpvcTLAXPA0Xj3nTgB5sl/0SExKK6ZoWVZHe6mOvm51JhN/VNskNBhYnIgZbvyPvOufEi76sbI8PFuK X-MS-Office365-Filtering-Correlation-Id: cbb36c18-c720-4279-0ea5-08d39c06bb39 X-Microsoft-Exchange-Diagnostics: 1; AM2PR07MB0897; 2:sP79sabAaENtVqi7UhN8kOnAf9qCPao6Cayi8lXP7BdQd2EPVBHs4flXUWKBwTT5svs9DWB4hlLU75oxi5E66VDE0wuzukRhada7JiQsAYyyZibNg1zDOMu5c6CYfYNggkpNmeWQw+2QDx2lo/Q/Kf+wT30zHDiz0FGHUQmYIniWJHPEc7nF+oeR3lSA7ZaP; 3:j59Cdf8eINC6LPOHdiD+PlbZtrlYbih/yliu9uKn76ACUASvfu67uhiHF+TeA0LHSYNGCwkwVdU+6zPq7qxYe56mtFc1iGyG83Bw/SsjwAmoTEWm0n1SgxD1FgD7KaRDs5cr8/idPLFrBOvWwRd+svIH+OHoF1TpY76raW+qdsqMagpg1f5HL+RLxDTFj2wJ367Hs8VrEoQk7pTtjf/Ej88if/hCxh78MbNqDpcdNADOdFcMeDXBdT1zwqD1FL0Bkau5XQgbHiMT9y/rkbm5+w== X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(8251501002); SRVR:AM2PR07MB0897; X-Microsoft-Exchange-Diagnostics: 1; AM2PR07MB0897; 25:fiXKmlaIvrasnWYHcE8Vom45guTEfLDjkK6hzIQMYTJAMBWIjTdAJPznjROVrnLr6i4j8NG4mQO1z7Kg8f98bqo5cAu988o/wbL4ckxdhiI50VvdoMbaqR958Wwc/Asf9ts+4VJ+TeFxuCprdCkR6x6P3rUhQlcY9sjnO5w5PvPyycrgyQCkKr34DE9DWO6T3vfU3oO3R/r9MT+xNS4IuqZ5s+auajPyPh+W4N1TQsWzakwaKq4JqlI6VbDZ9lMccBLGxHZRLTE/vbLrKzyv5DjoD7HTTiB4jwwq9LGAGeb4U50Xah/dI2iPWSl10VWaQVZ2lcRJq0o9bKJUWxcsz8+2vNlkSGz2ExmFK5u0hcJ9nSaVXnGdag5Lzj6Dtdq/rDNaslY4+t1tCbmcOIZ0cPJma8jYvS861EGjXghZQubE36e/E5iISEbHgCx0niBlFEur5U43gvuovbRlrlCUk7sqcs2++M/B2pDitY7dDd+Xd8VukOemlL1bjTc7YgJ/akA0FIhjMxeEktp5Ll4NR3i6W2L76WvHeKIn//6fGCquMIjVS9MNl5tSpDD9ymdHdt+VxTI2oOLYu/NPw1Y/wJbTO2gED85luCcv0JVYiRueh85o1qmLct6lcXTDqpeRd3xoIyI727wqjyZLRSuS3zcshQuV7aaidZWvQ0f9C/h9aOf+4x1ivAonhAxjqdsc0YF1J5ATbfG7DxYKZpgJIw== X-Microsoft-Exchange-Diagnostics: 1; AM2PR07MB0897; 20:gRDR/hi2K2zjkxPu44GFH8qStXsRnkv3iOfptvE33T8R4H8iW0BZWMzAGHvQNsAepfvLmqrXtdmYSxHsztYevC663OGlE0nLMUJn6RQXIPk+qY69AuFl4zzTAMnV5yJDZRpm6wUsW9FPkp+3HH02NMTutYKnw2t30lSo/YJed7g7/ua0+TaRI1lQ7rKRE9OlAMdpt739WgbQ0KIIsGCQ3hgu7R2W8a4DsYjhZJ9uf9rYJId1MPiWIkLm+v7JyT+asOrqzC1GofOTnPWNMvz00QdZ4cptFS3ETdCLROpqqmT9Hqu4H/Iqfeacr8k57meZXo9kvUDBMFmIihNE0I7iRfk0Td94rxqUoWOqo5MbbMNxnUgAKp5aRxAFKkbIkNUC3x0Ecs0dm+zUvu8gBYUO8atSmOECpIDQAD3mkyLT5UYNBNTxVjuz3bMRuRhDQxRgI5ZzD4PM6ubX0VGqYoRCNJW/6d26ZeXTUT75SV7Axc0+/Nwq34GDxs1aJgPN+xuy2Gkk7XooUnbZDrOj+/cwht2LfyzOgNuFZqQoq/rG3Qf+vCPcgSZDKfhbtZtCW/thiKaP1EdyrlSovhtgKXVi8WmfGd6DVGH/fXxZszOgMcQ= 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)(5005006)(8121501046)(13018025)(10201501046)(3002001); SRVR:AM2PR07MB0897; BCL:0; PCL:0; RULEID:; SRVR:AM2PR07MB0897; X-Microsoft-Exchange-Diagnostics: 1; AM2PR07MB0897; 4:Es+6cbvyOZSlP6u5nXMUjaYUgE3tLn2NQs+YBPcmb73k52BZIee0OHvGycUowPk3iHuagJmiWqnSiswT/1zcdgdxSW+d29N7ZEe8y2BoHSETGy3gAusZ22rlGFWcdxqfaYk9uR9tbeQj1jYAUJz1uejynT1RkyUrQ5FwWCYwz6q0F7R1lMypIA8zgzcD/anTJgbgzlYWaBliTzS4mIFgSnYd9dzpfaPgLnXvjKHKxjdnkKUymCti/jXjPZjZ3y4o2ZXyYg8asPP4oxKuwqWCaJazbz76GDRd67AkZ4aPwgp82dNx/NEiYhPB4xg8QNk26n3+BSBNLrbf8LHKhxJJ0y4mg0lQO4XmilHl4rt9Hj+d3szJNoOS1S68WdR2FUyLa0Rts0FBEoSCEaGxKAGCZyc1XNjLm7/3xYijEPWmUpkX6y+EVXz2M0r1Dz6WyTPq X-Forefront-PRVS: 0983EAD6B2 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM2PR07MB0897; 23:I9Qbu9V/PqutRziNiYptElIIAvFfmKRdGT5xp+dAP?= =?us-ascii?Q?HUx5whdHcjj6Vv/GpRN4iP8HpZ2jh6nMKRb99FkKVvkdpmOYQXawpEKfQKbA?= =?us-ascii?Q?h1CHOCzdAMaOlZBSod7b7kHIDR8KwB/NY4xCcVNN1IyhLhK7YxUoeXfBHcJe?= =?us-ascii?Q?Zoa7B7Xb1YN9bGm48ETu4pGzzQLPKdLLxRQofkB7G+/k6Yfi7k8zTkQBA7j9?= =?us-ascii?Q?nJsjZt9QbZ4qiEsRby2uds1A7M5J0lIlovel6xpTw/5efEGaOr5zJyzZf4X/?= =?us-ascii?Q?5iR5W4TKu7WfUVSwxQc5/aiJlgi2/AAOvIMb1nNQPBeKi5XqRtb5DTMfco4f?= =?us-ascii?Q?6ag/3u2768zviYmg7X9oEcfNgctfjU7AYOFSlcFGAwqa19YpvO0qaQNAvPiI?= =?us-ascii?Q?eUUdtqULE5g3m/kM0oMaP9vVxl9LkwRry98nn8DCuJgLjt3++PNS0CtDAQJQ?= =?us-ascii?Q?nEGReQa+r2Wfq8LKsCUOLZnA/WvJZMWEs4ysbhpgpqPRGkzj9b1JWXIV97ob?= =?us-ascii?Q?pNDrVOqU5n3ksK4/BJKR415RXoXP3AJMnR0MMI8K7EDHPspaRJTRHZbbtzH7?= =?us-ascii?Q?FYNpIfPbiZfZFvjm9Ir/DBiW0IKJEwSe0HYoFWzxiAmp+Yfqg5IMPhjoSfI8?= =?us-ascii?Q?76asKfvBt0AmBHKcfZofkNgeF8DGEAeLP/Wr9Hp0pGxY78qcHEcqba4VNX0u?= =?us-ascii?Q?z5cfSui3HOC02OITsx4iGNJCNkeq73919Iv9HLG4OXCLIc8dz9psvhdQ71QM?= =?us-ascii?Q?jqIR0lNJYXeJ/tSgJNwZ/2UCBRZ+MbsLarrQBZ2BI7+0iOO98Fu7BAZrhXxP?= =?us-ascii?Q?4tZrEZWsNOrxbt0N4148fbyQE2w5eIRw2Rolu5sPWTno7kfKfG/+7l37L3sS?= =?us-ascii?Q?L5MSMpq6tBfqKlU17WBOnYlvtn2kX97E046dffJY1djStp3V/T+9+Tn8wtOe?= =?us-ascii?Q?HZTWCRGbV4EBp8dazqyTBNQWq8E+pJySS/S+xsL1TgzTVUICQN63JTR7MN5r?= =?us-ascii?Q?Mv4hhwk1RfTfnNz4tb4HwVYctM8Ftr1V48AtnTdclx3C+Otw3SUjSBR8raVq?= =?us-ascii?Q?BoE5RUk8KxfsuQVn2SflKdGvoWGSnm+uvjH2FO0YMXGgl04xFJ17qULuNI3t?= =?us-ascii?Q?KsY6oa66psSSFcIdBfxaE1a0o9BHdk9?= X-Microsoft-Exchange-Diagnostics: 1; AM2PR07MB0897; 6:wUAdF9UyEJVELKw4dg5gPtHaJYcDRjKMJSz0bm0J29MHhs9Pu6sCUP9c8pHAtCWJAvjVn9v7+H4rlkrDBmgH5qWtOHsDirkC2MdZ7FFky/99rP+soCsONPjO6k90ey9qjsO9DEGkqEOIw2rGvoVXXWdInD7eBn3AXljhmDavy2Jru/hDfX9vLcms23WOOGw6009ePFUB28H1E63iVIXl074DZYnD/hUuoBEKaTVAw4ZQ+tGEwENTkcgqEz09N59YAi6xz/Y3mF780uAKuIBECsDyEgPuKkIwvzkQRhjBGrX7AO4d+n0jemH7Pp3P1HVM; 5:TIaL2qRN6SeZXgpywgWj2HdC8Gk9Viox3we0Hs8gxmSPLflLnj07OF+R7cVi25G9/GqoW1sFP242cMY0ChYFp5RExlTebZVwzN2u0VSXqoRUJfUKsKNw9TO5Zz9H1FcsCAr6SGw2i8mThGPUKEnIKQ==; 24:oJ96Rxkq/MSGv/WHYWM7W0GUVQk1A15fnJZBSaYM6bSua3fSlimt71Iyyp92gZoAoncgp7h4piLWvhKss/7TqWlr+eQdoV47+idyU5fIY5o=; 7:izFxTw2AH1kXJmS08Tha2rKttexWvymqN4rC5PqY1PQEFaInMyVWetkyr46hWLr1Jr3y+zfVIwux1H2cklhqJfTA+YYpWQbPxfIxJjChgPawZV9lcOz02ehrj38zpIHBvqrOxN/0p3o1VxRC73dwQBnJl/B6mH21GDGhPdXOTF0p4Ocu63HR2yI5CSTyZp665cBmEobWy6NGnGh1ng51BEpn4oAQD8U2We2f2v808zGIkAGW0DLn3flA0ETYETF3fsqPrW/mx+bT/RzAIu54Qw== SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: nokia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jun 2016 08:08:31.2315 (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: AM2PR07MB0897 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 X-Received-From: 157.55.234.145 Subject: [Qemu-devel] [PATCH v3 05/10] m25p80: Add additional flash commands: 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 Page program 4byte/quad and erase 32K sectors 4 bytes. Signed-off-by: Marcin Krzeminski Reviewed-by: Cédric Le Goater --- hw/block/m25p80.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c index ca1f882..55b4377 100644 --- a/hw/block/m25p80.c +++ b/hw/block/m25p80.c @@ -297,12 +297,14 @@ typedef enum { PP = 0x02, PP4 = 0x12, + PP4_4 = 0x3e, DPP = 0xa2, QPP = 0x32, ERASE_4K = 0x20, ERASE4_4K = 0x21, ERASE_32K = 0x52, + ERASE4_32K = 0x5c, ERASE_SECTOR = 0xd8, ERASE4_SECTOR = 0xdc, @@ -449,6 +451,7 @@ static void flash_erase(Flash *s, int offset, FlashCMD cmd) capa_to_assert = ER_4K; break; case ERASE_32K: + case ERASE4_32K: len = 32 << 10; capa_to_assert = ER_32K; break; @@ -519,9 +522,11 @@ static inline int get_addr_length(Flash *s) switch (s->cmd_in_progress) { case PP4: + case PP4_4: case READ4: case QIOR4: case ERASE4_4K: + case ERASE4_32K: case ERASE4_SECTOR: case FAST_READ4: case DOR4: @@ -555,6 +560,7 @@ static void complete_collecting_data(Flash *s) case QPP: case PP: case PP4: + case PP4_4: s->state = STATE_PAGE_PROGRAM; break; case READ: @@ -574,6 +580,7 @@ static void complete_collecting_data(Flash *s) case ERASE_4K: case ERASE4_4K: case ERASE_32K: + case ERASE4_32K: case ERASE_SECTOR: case ERASE4_SECTOR: flash_erase(s, s->cur_addr, s->cmd_in_progress); @@ -669,6 +676,7 @@ static void decode_new_cmd(Flash *s, uint32_t value) case ERASE_4K: case ERASE4_4K: case ERASE_32K: + case ERASE4_32K: case ERASE_SECTOR: case ERASE4_SECTOR: case READ: @@ -677,6 +685,7 @@ static void decode_new_cmd(Flash *s, uint32_t value) case QPP: case PP: case PP4: + case PP4_4: s->needed_bytes = get_addr_length(s); s->pos = 0; s->len = 0;