From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by 2002:a05:6512:3aa:0:0:0:0 with SMTP id v10csp4246874lfp; Mon, 3 Feb 2020 10:11:10 -0800 (PST) X-Google-Smtp-Source: APXvYqxFUOugk2V9MuPLTl14kTLvR51yebEj0bC3Hx3eITFX4dZYSt2LOoFeUf7yVaWxFRsD6PSy X-Received: by 2002:ae9:f205:: with SMTP id m5mr25156565qkg.152.1580753469790; Mon, 03 Feb 2020 10:11:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1580753469; cv=none; d=google.com; s=arc-20160816; b=o5q0wnfVmX+FXs4i/Bg3dEODnw5EgAq4Oyhga/7fkO2yo7kNrTEoYMPSkTE1R396nr e4cZ3a00b231cr7w81jRA5aPohQuqjDFKNsmyLlMBcXLkMcsV72LD+BxRTiCsbD182J5 E03czJqidMDxoI/ljtFbUzgdxJBWcX1kOxNYFIDt3IS1iTRl/zl1YuggHx36ZoJh9Ygx JM94Cz7Gqx3PfhrxyVpllwOuXDQMPAwUdecr8wfLimuq5vDxOSFkpkkNDC1jGGMj7GlQ iDeGnzE/jBsBPYozNrEQFM9WM3ZFel+/LLVzaIx9i8vK4tEEjgC55fT7hyM/hTTZNFm/ qmrg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:references:in-reply-to :message-id:date:subject:to:from:dkim-signature; bh=yq6eFFb6QlatLCP1XykFR99zBztSE9O3BlU2GJ/1iI0=; b=D9mKzRBjv2+LC24BoLDsC6XnQjAtAFbFhlfZAMHcmje1UmIOx2TqjN5uzJwe9b729B zcaDtfvziFSRgqtghlJ2X++gCUF6tFDwXjuyMOqUlVyocSPB13aSR71VrLP1rB5kB+oH aW2lQpnFs6METV255WFHKXmJkNKetZQ91pZcACTAoPF56fkAkR0R4m7C7WPp1Ws9ImcP 75gx7Gno4dDK21sDQJcUJ4Wyz+w+k+XhNTh7EEFn0wiMZbaOsc2N64FdKe3GnqPsTAZF ZwuH9qeyWJ42enwgryyZ9XDKqwT/Ip693PTKWBhOACB5uEetWMIzx2Qa3T2z4lLOyqZM CdLA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=YIoNpmYc; spf=pass (google.com: domain of qemu-devel-bounces+alex.bennee=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+alex.bennee=linaro.org@nongnu.org" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id v2si12298686qtk.273.2020.02.03.10.11.09 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 03 Feb 2020 10:11:09 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+alex.bennee=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=YIoNpmYc; spf=pass (google.com: domain of qemu-devel-bounces+alex.bennee=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+alex.bennee=linaro.org@nongnu.org" Received: from localhost ([::1]:45495 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iygBh-00038r-88 for alex.bennee@linaro.org; Mon, 03 Feb 2020 13:11:09 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44948) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iyg9s-0001QX-Rb for qemu-devel@nongnu.org; Mon, 03 Feb 2020 13:09:17 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iyg9r-0004Jc-QX for qemu-devel@nongnu.org; Mon, 03 Feb 2020 13:09:16 -0500 Received: from mail-pl1-x641.google.com ([2607:f8b0:4864:20::641]:41725) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iyg9m-0003zp-SB; Mon, 03 Feb 2020 13:09:12 -0500 Received: by mail-pl1-x641.google.com with SMTP id t14so6155666plr.8; Mon, 03 Feb 2020 10:09:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=yq6eFFb6QlatLCP1XykFR99zBztSE9O3BlU2GJ/1iI0=; b=YIoNpmYcwsYHxKOK/UlD0vU6PTWdFWExXlL2JmdbzLh3oQk8fK66V6QL10L6w0ibtT A0wCYQI+1/Ah68mpRTr2DA/2BgTn8wWm4b0oY4Lw3CF/T0DDwhBI5r8aTjlMAaYbDXjH FXcIsD5GCXw9oG7uZcu1TY96k0BVyNpm27i412bAZv9GQFgyAzYlUWTyzBn5einmf3vB jMM3SQFiy5cUUW1A0oCUzOyqCrB2NZHdNr2ldXh97NTRavO36uH+j6A0u7ybqy5zjfJv ieor9NEYnd1bfnLqACFid750QI7pTfpUlFp/dJYM//RYEyiUi6DzEXvx6Re02X/0Pyxj cPcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=yq6eFFb6QlatLCP1XykFR99zBztSE9O3BlU2GJ/1iI0=; b=mp0g83B+CjFejlYU41TkxtEN3bQrIj6B0G/E2ZPtbbS6VZutnxjT6hEt5iSUkbDXxN iGyATluFYkSac8JbDPRL62N7nXys7JUpjgsLF89125fWl8ZdH1MH7V4ppNjyBiZpN+t6 FsyGthWbsU63NF3gTxueh2XWi+bb34G/4cCLy2usnA2JUZb9n2dl0+FXVuYYAdJNafR9 WKlAVgV+WvGOoc++kSYzRerBNcZ43Ku9rQM9w+9CGiHLwaa5wF8vAyEF5V5GY2X5LFlV KJK3v8tlYU9Ucii4g97zW6OEnBCjRqZlj8zhcRfyc1Iiaoo0hOdUO38m8oZXPcB8JyDl duLA== X-Gm-Message-State: APjAAAVXOF1UBc2FIoDoOGtXwMooDHnZ17vXH18FXWiLqQP3ykjhABPL sU8/tSw8smtN0lhu03ShP+Q= X-Received: by 2002:a17:902:a616:: with SMTP id u22mr24614170plq.173.1580753348008; Mon, 03 Feb 2020 10:09:08 -0800 (PST) Received: from localhost ([2600:1700:e321:62f0:329c:23ff:fee3:9d7c]) by smtp.gmail.com with ESMTPSA id w128sm20324023pgb.53.2020.02.03.10.09.07 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 03 Feb 2020 10:09:07 -0800 (PST) From: Guenter Roeck To: Alistair Francis Subject: [PATCH 2/3] m25p80: Improve command handling for Jedec and unsupported commands Date: Mon, 3 Feb 2020 10:09:03 -0800 Message-Id: <20200203180904.2727-2-linux@roeck-us.net> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200203180904.2727-1-linux@roeck-us.net> References: <20200203180904.2727-1-linux@roeck-us.net> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::641 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Peter Maydell , qemu-block@nongnu.org, Andrew Jeffery , qemu-devel@nongnu.org, Max Reitz , qemu-arm@nongnu.org, =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Guenter Roeck , Joel Stanley Errors-To: qemu-devel-bounces+alex.bennee=linaro.org@nongnu.org Sender: "Qemu-devel" X-TUID: 68aYQhAbRqH3 Always report 6 bytes of JEDEC data. Fill remaining data with 0. For unsupported commands, keep sending a value of 0 until the chip is deselected. Both changes avoid attempts to decode random commands. Up to now this happened if the reported Jedec data was shorter than 6 bytes but the host read 6 bytes, and with all unsupported commands. Signed-off-by: Guenter Roeck --- hw/block/m25p80.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c index 63e050d7d3..aca75edcc1 100644 --- a/hw/block/m25p80.c +++ b/hw/block/m25p80.c @@ -1040,8 +1040,11 @@ static void decode_new_cmd(Flash *s, uint32_t value) for (i = 0; i < s->pi->id_len; i++) { s->data[i] = s->pi->id[i]; } + for (; i < SPI_NOR_MAX_ID_LEN; i++) { + s->data[i] = 0; + } - s->len = s->pi->id_len; + s->len = SPI_NOR_MAX_ID_LEN; s->pos = 0; s->state = STATE_READING_DATA; break; @@ -1158,6 +1161,11 @@ static void decode_new_cmd(Flash *s, uint32_t value) s->quad_enable = false; break; default: + s->pos = 0; + s->len = 1; + s->state = STATE_READING_DATA; + s->data_read_loop = true; + s->data[0] = 0; qemu_log_mask(LOG_GUEST_ERROR, "M25P80: Unknown cmd %x\n", value); break; } -- 2.17.1