From patchwork Sat Oct 21 21:54:10 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Francisco Iglesias X-Patchwork-Id: 10021549 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 0DB4160381 for ; Sun, 22 Oct 2017 01:18:56 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 05A6A28737 for ; Sun, 22 Oct 2017 01:18:56 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id EDDB22899A; Sun, 22 Oct 2017 01:18:55 +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=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, 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 98A3728737 for ; Sun, 22 Oct 2017 01:18:55 +0000 (UTC) Received: from localhost ([::1]:59713 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e64uk-0006vB-O7 for patchwork-qemu-devel@patchwork.kernel.org; Sat, 21 Oct 2017 21:18:54 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47534) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e61ix-0000Ny-U4 for qemu-devel@nongnu.org; Sat, 21 Oct 2017 17:54:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e61it-000259-QN for qemu-devel@nongnu.org; Sat, 21 Oct 2017 17:54:31 -0400 Received: from mail-lf0-x241.google.com ([2a00:1450:4010:c07::241]:54759) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1e61it-00021E-Ja for qemu-devel@nongnu.org; Sat, 21 Oct 2017 17:54:27 -0400 Received: by mail-lf0-x241.google.com with SMTP id d10so16435437lfg.11 for ; Sat, 21 Oct 2017 14:54:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=9aSzQLHm5JK8PQyX1bBIhU+r7LHtN87YLNqY/RmOfII=; b=D89o8uIfMbQO/yB5IEESPNAIKPoLnPbFtf4DSww5uGg/7idNK/7F63w2r5Th7UsN6K mC0/EkYYGSoo3yeBE5WxVRKXFAyB6dE6WKEZgxJPpYuVxchZeoV3AwG6s8Vqg6ufZxi4 giWcJo2giN/p0qjBzc1x3aZeMryYtVeGDlaM1LIuG/IfIj5oCp7n8chykI+iC1qb28Hv UODI+/GStQxwiKf5+GnmfRFD6OBaJUIoE7oslI5g25xHy5mDzSYBxcK5ysIa5EbqIDHH 3Ih+6edaJMA+4o0wthMP5SLruHnO0228jljoOftrGIltAA4zsuF3ebLtXoweaurB8qsR eL3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=9aSzQLHm5JK8PQyX1bBIhU+r7LHtN87YLNqY/RmOfII=; b=dW4uOyZhxlnzG/ywtzz+qHS5UqtBlQklpifmIixO/e3g3CFCgd4PXzbA/SWng53FTe nKrs+mVW4c+z03AoF2kU6WDI2IA0rHztKdtnKqcutkZbnLBkU94ksfHJrsA5V5BuMp8o sKY5gLkiDZqOVjmbflRF29SI+fgqPebnpdEomBhFpxXBHSeG73NAz+tnE8Bq+RXTk8o/ IyV5IlDJ9Ki+saOxfjnlVRHARbKJ2hnI7lFmtJ+juS6MjV9caAUNgpSnPilOlqRC1pQi x0TQ5VGcgf9KBnNs2arEOILFqDVrLiGdzBZ6zEklojR1Z3YmbqnybeDjdE9QFZX1JVsR Lw3Q== X-Gm-Message-State: AMCzsaWKudW216LRRarZx0Td1ELAXBSfvQ2qvSSch89Szp7KS6++Vzi4 xyDrhG7vhwrWhx/0HzY4aaX9RSj7 X-Google-Smtp-Source: ABhQp+Sd2/qsED7zTAf3XX/m5N5FPfA0W2lpOa5P4BcCaWQk6tpoJfykiGwrPYqtKZOjrojRoZLc+Q== X-Received: by 10.46.65.216 with SMTP id d85mr3966123ljf.156.1508622865975; Sat, 21 Oct 2017 14:54:25 -0700 (PDT) Received: from localhost.localdomain (c83-254-152-225.bredband.comhem.se. [83.254.152.225]) by smtp.gmail.com with ESMTPSA id q87sm731173lfg.35.2017.10.21.14.54.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 21 Oct 2017 14:54:25 -0700 (PDT) From: Francisco Iglesias To: qemu-devel@nongnu.org Date: Sat, 21 Oct 2017 23:54:10 +0200 Message-Id: <20171021215420.19787-3-frasse.iglesias@gmail.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20171021215420.19787-1-frasse.iglesias@gmail.com> References: <20171021215420.19787-1-frasse.iglesias@gmail.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4010:c07::241 X-Mailman-Approved-At: Sat, 21 Oct 2017 21:15:24 -0400 Subject: [Qemu-devel] [PATCH v2 02/12] m25p80: Add support for SST READ ID 0x90/0xAB 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: edgari@xilinx.com, alistai@xilinx.com, francisco.iglesias@feimtech.se Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Add support for SST READ ID 0x90/0xAB commands for reading out the flash manufacuter ID and device ID. Signed-off-by: Francisco Iglesias --- hw/block/m25p80.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/hw/block/m25p80.c b/hw/block/m25p80.c index 2971519..c85e8fa 100644 --- a/hw/block/m25p80.c +++ b/hw/block/m25p80.c @@ -355,6 +355,8 @@ typedef enum { DPP = 0xa2, QPP = 0x32, QPP_4 = 0x34, + RDID_90 = 0x90, + RDID_AB = 0xab, ERASE_4K = 0x20, ERASE4_4K = 0x21, @@ -405,6 +407,7 @@ typedef enum { MAN_MACRONIX, MAN_NUMONYX, MAN_WINBOND, + MAN_SST, MAN_GENERIC, } Manufacturer; @@ -476,6 +479,8 @@ static inline Manufacturer get_man(Flash *s) return MAN_SPANSION; case 0xC2: return MAN_MACRONIX; + case 0xBF: + return MAN_SST; default: return MAN_GENERIC; } @@ -1018,6 +1023,21 @@ static void decode_new_cmd(Flash *s, uint32_t value) s->state = STATE_READING_DATA; break; + case RDID_90: + case RDID_AB: + DB_PRINT_L(0, "populated manf/dev ID\n"); + if (get_man(s) == MAN_SST) { + s->data[0] = s->pi->id[0]; + s->data[1] = s->pi->id[2]; + s->pos = 0; + s->len = 2; + s->data_read_loop = true; + s->state = STATE_READING_DATA; + } else { + qemu_log_mask(LOG_GUEST_ERROR, "M25P80: Unknown cmd %x\n", value); + } + break; + case BULK_ERASE: if (s->write_enable) { DB_PRINT_L(0, "chip erase\n");