From nobody Fri May 3 20:02:44 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1557086911; cv=none; d=zoho.com; s=zohoarc; b=SCfge5nA8Fn07TFejx/mOqQRbZQ7z/JU5nhQD5LKBoasOAehayKNs67DMw5F52SQDsKuFyE3yQqjPSrVgmd7Z/8wDdbFjCpLs0aOPb0BtlwyTXSdagxT5KrR1vI4Y5QpOQqYkJXg+vo82rigmuVGBysHWTIB6hoy0KkiIedaEeY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1557086911; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=pig587SqiPjBr/t7twW3gJwIE786GO56+BuFzNuY2Q8=; b=FCMN3K5zTAqFy0z+26lbDK1l4qX289nGbolNKNzE7DFOB8MtfqWEdZJ7IjR34ItIYTDCCXi4RStUDDjExrOcftKT43bVTLW6YAEWRJ4AHe+eewYmOKyIJKQcLqV4h6/v5EhAOVgEjzehMo7ts5UAk6OrqIwV/G0IEygHYW5qpss= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 155708691148051.557189588220126; Sun, 5 May 2019 13:08:31 -0700 (PDT) Received: from localhost ([127.0.0.1]:45314 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hNNQs-0003LH-Qy for importer@patchew.org; Sun, 05 May 2019 16:08:22 -0400 Received: from eggs.gnu.org ([209.51.188.92]:39096) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hNNP6-000281-EH for qemu-devel@nongnu.org; Sun, 05 May 2019 16:06:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hNNP5-0003Cb-Du for qemu-devel@nongnu.org; Sun, 05 May 2019 16:06:32 -0400 Received: from mx1.redhat.com ([209.132.183.28]:39498) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hNNP2-0002qE-0H; Sun, 05 May 2019 16:06:28 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 42DB43091786; Sun, 5 May 2019 20:06:26 +0000 (UTC) Received: from x1w.redhat.com (ovpn-204-58.brq.redhat.com [10.40.204.58]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 4BEF860851; Sun, 5 May 2019 20:06:19 +0000 (UTC) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org, qemu-stable@nongnu.org Date: Sun, 5 May 2019 22:05:58 +0200 Message-Id: <20190505200602.12412-2-philmd@redhat.com> In-Reply-To: <20190505200602.12412-1-philmd@redhat.com> References: <20190505200602.12412-1-philmd@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.41]); Sun, 05 May 2019 20:06:26 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 1/5] hw/block/pflash_cfi01: Removed an unused timer 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: Kevin Wolf , Peter Maydell , Stephen Checkoway , qemu-block@nongnu.org, "Michael S . Tsirkin" , Laszlo Ersek , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Markus Armbruster , Max Reitz , Wei Yang , Paolo Bonzini , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Gerd Hoffmann Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" The 'CFI01' NOR flash was introduced in commit 29133e9a0fff, with timing modelled. One year later, the CFI02 model was introduced (commit 05ee37ebf630) based on the CFI01 model. As noted in the header, "It does not support timings". 12 years later, we never had to model the device timings. Time to remove the unused timer, we can still add it back if required. Suggested-by: Laszlo Ersek Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Laszlo Ersek Reviewed-by: Wei Yang --- Yes, I plan to model those timings later. Actually I have a series working, but I'd rather first 1/ refactor common code between the both CFI implementations, 2/ discuss on list whether or not use timings for the Virt flash. --- hw/block/pflash_cfi01.c | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/hw/block/pflash_cfi01.c b/hw/block/pflash_cfi01.c index 16dfae14b80..6dc04f156a7 100644 --- a/hw/block/pflash_cfi01.c +++ b/hw/block/pflash_cfi01.c @@ -42,7 +42,6 @@ #include "hw/block/flash.h" #include "sysemu/block-backend.h" #include "qapi/error.h" -#include "qemu/timer.h" #include "qemu/bitops.h" #include "qemu/host-utils.h" #include "qemu/log.h" @@ -86,7 +85,6 @@ struct PFlashCFI01 { uint8_t cfi_table[0x52]; uint64_t counter; unsigned int writeblock_size; - QEMUTimer *timer; MemoryRegion mem; char *name; void *storage; @@ -110,18 +108,6 @@ static const VMStateDescription vmstate_pflash =3D { } }; =20 -static void pflash_timer (void *opaque) -{ - PFlashCFI01 *pfl =3D opaque; - - trace_pflash_timer_expired(pfl->cmd); - /* Reset flash */ - pfl->status ^=3D 0x80; - memory_region_rom_device_set_romd(&pfl->mem, true); - pfl->wcycle =3D 0; - pfl->cmd =3D 0; -} - /* Perform a CFI query based on the bank width of the flash. * If this code is called we know we have a device_width set for * this flash. @@ -771,7 +757,6 @@ static void pflash_cfi01_realize(DeviceState *dev, Erro= r **errp) pfl->max_device_width =3D pfl->device_width; } =20 - pfl->timer =3D timer_new_ns(QEMU_CLOCK_VIRTUAL, pflash_timer, pfl); pfl->wcycle =3D 0; pfl->cmd =3D 0; pfl->status =3D 0; --=20 2.20.1 From nobody Fri May 3 20:02:44 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1557087087; cv=none; d=zoho.com; s=zohoarc; b=YjQJUHTufzICkEwG5/R+TGC/QETU0asAx++klWm7hhnlvT2AoX48d+aRuER1XQ5negwqpOwsIi8zyIgFY/ehAto4ENTSeFajXIc03hxdYXAIQj5bNE6VPDGB9VrL4eC5tL8xRm7aZKyZhqjftaKgR1RP/rArcEXJu+hP1VfJWHc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1557087087; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=5CKD97ujCOvUavt5QF/8yV1ynv5T1UgLYf0CdeA46OY=; b=ddbubWKQ5CWAEc7h9X6XSH9Pj7cgZMF2zsQunijNsgZJVoU+kCcQpdVHj2OYgGbM+//FIWxTiqUkmZTykuHtpQ0ifaDN0G0ohXzv2yyuV1sc+wgKhpa4STo0txH4SW34zyyeqZxC2CdzehMAeXr3TPqdjNdJ4IrO/l77+tubXOA= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1557087087868618.0209219663118; Sun, 5 May 2019 13:11:27 -0700 (PDT) Received: from localhost ([127.0.0.1]:45378 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hNNTp-0005zi-ON for importer@patchew.org; Sun, 05 May 2019 16:11:25 -0400 Received: from eggs.gnu.org ([209.51.188.92]:39196) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hNNPK-0002F0-I7 for qemu-devel@nongnu.org; Sun, 05 May 2019 16:06:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hNNPJ-000497-Lh for qemu-devel@nongnu.org; Sun, 05 May 2019 16:06:46 -0400 Received: from mx1.redhat.com ([209.132.183.28]:56958) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hNNPD-0003j5-UT; Sun, 05 May 2019 16:06:40 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 2EA3436893; Sun, 5 May 2019 20:06:39 +0000 (UTC) Received: from x1w.redhat.com (ovpn-204-58.brq.redhat.com [10.40.204.58]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0E8CA60851; Sun, 5 May 2019 20:06:26 +0000 (UTC) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org, qemu-stable@nongnu.org Date: Sun, 5 May 2019 22:05:59 +0200 Message-Id: <20190505200602.12412-3-philmd@redhat.com> In-Reply-To: <20190505200602.12412-1-philmd@redhat.com> References: <20190505200602.12412-1-philmd@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Sun, 05 May 2019 20:06:39 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 2/5] hw/block/pflash_cfi01: Extract the pflash_reset() code 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: Kevin Wolf , Peter Maydell , Stephen Checkoway , qemu-block@nongnu.org, "Michael S . Tsirkin" , Laszlo Ersek , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Markus Armbruster , Max Reitz , Wei Yang , Paolo Bonzini , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Gerd Hoffmann Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" The reset() code is used in various places, refactor it. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Wei Yang --- hw/block/pflash_cfi01.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/hw/block/pflash_cfi01.c b/hw/block/pflash_cfi01.c index 6dc04f156a7..073cd14978f 100644 --- a/hw/block/pflash_cfi01.c +++ b/hw/block/pflash_cfi01.c @@ -108,6 +108,15 @@ static const VMStateDescription vmstate_pflash =3D { } }; =20 +static void pflash_reset(PFlashCFI01 *pfl) +{ + trace_pflash_reset(); + pfl->wcycle =3D 0; + pfl->cmd =3D 0; + pfl->status =3D 0; + memory_region_rom_device_set_romd(&pfl->mem, true); +} + /* Perform a CFI query based on the bank width of the flash. * If this code is called we know we have a device_width set for * this flash. @@ -275,8 +284,7 @@ static uint32_t pflash_read(PFlashCFI01 *pfl, hwaddr of= fset, default: /* This should never happen : reset state & treat it as a read */ DPRINTF("%s: unknown command state: %x\n", __func__, pfl->cmd); - pfl->wcycle =3D 0; - pfl->cmd =3D 0; + pflash_reset(pfl); /* fall through to read code */ case 0x00: /* Flash area read */ @@ -639,10 +647,7 @@ static void pflash_write(PFlashCFI01 *pfl, hwaddr offs= et, "\n", __func__, offset, pfl->wcycle, pfl->cmd, value); =20 reset_flash: - trace_pflash_reset(); - memory_region_rom_device_set_romd(&pfl->mem, true); - pfl->wcycle =3D 0; - pfl->cmd =3D 0; + pflash_reset(pfl); } =20 =20 @@ -757,9 +762,7 @@ static void pflash_cfi01_realize(DeviceState *dev, Erro= r **errp) pfl->max_device_width =3D pfl->device_width; } =20 - pfl->wcycle =3D 0; - pfl->cmd =3D 0; - pfl->status =3D 0; + pflash_reset(pfl); /* Hardcoded CFI table */ /* Standard "QRY" string */ pfl->cfi_table[0x10] =3D 'Q'; --=20 2.20.1 From nobody Fri May 3 20:02:44 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1557086995; cv=none; d=zoho.com; s=zohoarc; b=SW4xEFCXr2f93lzheVtNs9I9pO5yJrYqRim5SxyumdElVlLDHlh03mywqHDbJdk79svHMnaaiJbPDwL3c73eJBXZL1M4ORV+4btzBNNRY/eceivLT9BYkyRcXDP6HV+WmNBwxsqqXAIl4/yMQ9avpA67eM2M7Z65G0zZP91ikZE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1557086995; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=mRR+ZjpJpe/UxXqHv3XSGrJRaumb7w8pS7KztpAg1iI=; b=D+OWK6NT2l1lWP0zlDYLTvqGNm1iY8EeE+Lt1/zVU0e7olnozRNh8TPIilGs6H00bz7gcLs2PN1cQzcHyAPqoylgYoDMmX5/yYOUxZOzX7AvLgGA3gMeognKZHmRZWGaeTWPSP6Ded+Q/whH/Nwj9oXD32A7wrmoAbRZM8QuyIM= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1557086995837843.9107451084889; Sun, 5 May 2019 13:09:55 -0700 (PDT) Received: from localhost ([127.0.0.1]:45332 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hNNSL-0004h5-KP for importer@patchew.org; Sun, 05 May 2019 16:09:53 -0400 Received: from eggs.gnu.org ([209.51.188.92]:39259) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hNNPi-0002ff-Ao for qemu-devel@nongnu.org; Sun, 05 May 2019 16:07:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hNNPW-0004t8-L5 for qemu-devel@nongnu.org; Sun, 05 May 2019 16:07:04 -0400 Received: from mx1.redhat.com ([209.132.183.28]:51258) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hNNPO-0004AK-Hf; Sun, 05 May 2019 16:06:51 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id B61C9308213C; Sun, 5 May 2019 20:06:45 +0000 (UTC) Received: from x1w.redhat.com (ovpn-204-58.brq.redhat.com [10.40.204.58]) by smtp.corp.redhat.com (Postfix) with ESMTPS id EA48160851; Sun, 5 May 2019 20:06:39 +0000 (UTC) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org, qemu-stable@nongnu.org Date: Sun, 5 May 2019 22:06:00 +0200 Message-Id: <20190505200602.12412-4-philmd@redhat.com> In-Reply-To: <20190505200602.12412-1-philmd@redhat.com> References: <20190505200602.12412-1-philmd@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.42]); Sun, 05 May 2019 20:06:45 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 3/5] hw/block/pflash_cfi01: Add the DeviceReset() handler 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: Kevin Wolf , Peter Maydell , Stephen Checkoway , qemu-block@nongnu.org, "Michael S . Tsirkin" , Laszlo Ersek , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Markus Armbruster , Max Reitz , Wei Yang , Paolo Bonzini , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Gerd Hoffmann Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" The pflash device is a child of TYPE_DEVICE, so it can implement the DeviceReset handler. Actually it has to implement it, else on machine reset it might stay in an incoherent state, as it has been reported in the buglink listed below. Add the DeviceReset handler and remove its call from the realize() function. Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=3D1678713 Reported-by: Laszlo Ersek Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Laszlo Ersek Reviewed-by: Wei Yang --- hw/block/pflash_cfi01.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/hw/block/pflash_cfi01.c b/hw/block/pflash_cfi01.c index 073cd14978f..639b05bc4d5 100644 --- a/hw/block/pflash_cfi01.c +++ b/hw/block/pflash_cfi01.c @@ -762,7 +762,6 @@ static void pflash_cfi01_realize(DeviceState *dev, Erro= r **errp) pfl->max_device_width =3D pfl->device_width; } =20 - pflash_reset(pfl); /* Hardcoded CFI table */ /* Standard "QRY" string */ pfl->cfi_table[0x10] =3D 'Q'; @@ -850,6 +849,11 @@ static void pflash_cfi01_realize(DeviceState *dev, Err= or **errp) pfl->cfi_table[0x3f] =3D 0x01; /* Number of protection fields */ } =20 +static void pflash_cfi01_reset(DeviceState *dev) +{ + pflash_reset(PFLASH_CFI01(dev)); +} + static Property pflash_cfi01_properties[] =3D { DEFINE_PROP_DRIVE("drive", PFlashCFI01, blk), /* num-blocks is the number of blocks actually visible to the guest, @@ -894,6 +898,7 @@ static void pflash_cfi01_class_init(ObjectClass *klass,= void *data) { DeviceClass *dc =3D DEVICE_CLASS(klass); =20 + dc->reset =3D pflash_cfi01_reset; dc->realize =3D pflash_cfi01_realize; dc->props =3D pflash_cfi01_properties; dc->vmsd =3D &vmstate_pflash; --=20 2.20.1 From nobody Fri May 3 20:02:44 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1557087101; cv=none; d=zoho.com; s=zohoarc; b=gHZAvcy38Q4XxMSWfrbfWrlYLPbxMnHN//5CebijnqsqN/am1YNmgA9neIXT35iRmD1Lz2PDFLknZtBPo8q4/v/aVRVUOKN+dTui+ag3O2v8ALtUuofSNuO0YJZ6NCUlUz8oL9XtocI1I3HzdUpQkcD1BuDh/I7IU/z5PXoYf/0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1557087101; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=iyq2ZfelGAWZTon3AMksp/LSgDoT8smlMVHH+Rq2h2I=; b=G5tj7w233FkLQ3DCSeUJj7RaydAOWP0SOzv6+uruO0GuM0QVpN8zWu18fghaAfvu3jGFJ3rVEw7gSmP7rPqvCV8NS/LYG/TqMGS7g9PGZzYby9x5iHpowD1n6C88LsbH69riflMzKwY0qkfKXOHO9lR0afyabrJaqZf0g93gaeg= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1557087101040519.1995492012728; Sun, 5 May 2019 13:11:41 -0700 (PDT) Received: from localhost ([127.0.0.1]:45382 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hNNU2-0006AB-R9 for importer@patchew.org; Sun, 05 May 2019 16:11:38 -0400 Received: from eggs.gnu.org ([209.51.188.92]:39339) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hNNPt-0002n8-MI for qemu-devel@nongnu.org; Sun, 05 May 2019 16:07:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hNNPq-00066p-Dl for qemu-devel@nongnu.org; Sun, 05 May 2019 16:07:20 -0400 Received: from mx1.redhat.com ([209.132.183.28]:47042) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hNNPZ-0004rM-UP; Sun, 05 May 2019 16:07:04 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 055F881F0D; Sun, 5 May 2019 20:06:58 +0000 (UTC) Received: from x1w.redhat.com (ovpn-204-58.brq.redhat.com [10.40.204.58]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 3648960851; Sun, 5 May 2019 20:06:46 +0000 (UTC) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org, qemu-stable@nongnu.org Date: Sun, 5 May 2019 22:06:01 +0200 Message-Id: <20190505200602.12412-5-philmd@redhat.com> In-Reply-To: <20190505200602.12412-1-philmd@redhat.com> References: <20190505200602.12412-1-philmd@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Sun, 05 May 2019 20:06:58 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 4/5] hw/block/pflash_cfi02: Extract the pflash_reset() code 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: Kevin Wolf , Peter Maydell , Stephen Checkoway , qemu-block@nongnu.org, "Michael S . Tsirkin" , Laszlo Ersek , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Markus Armbruster , Max Reitz , Wei Yang , Paolo Bonzini , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Gerd Hoffmann Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" The reset() code is used in various places, refactor it. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Wei Yang --- hw/block/pflash_cfi02.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c index f2c6201f813..f321b74433c 100644 --- a/hw/block/pflash_cfi02.c +++ b/hw/block/pflash_cfi02.c @@ -120,6 +120,17 @@ static void pflash_register_memory(PFlashCFI02 *pfl, i= nt rom_mode) pfl->rom_mode =3D rom_mode; } =20 +static void pflash_reset(PFlashCFI02 *pfl) +{ + trace_pflash_reset(); + timer_del(&pfl->timer); + pfl->bypass =3D 0; + pfl->wcycle =3D 0; + pfl->cmd =3D 0; + pfl->status =3D 0; + pflash_register_memory(pfl, 1); +} + static void pflash_timer (void *opaque) { PFlashCFI02 *pfl =3D opaque; @@ -129,11 +140,10 @@ static void pflash_timer (void *opaque) pfl->status ^=3D 0x80; if (pfl->bypass) { pfl->wcycle =3D 2; + pfl->cmd =3D 0; } else { - pflash_register_memory(pfl, 1); - pfl->wcycle =3D 0; + pflash_reset(pfl); } - pfl->cmd =3D 0; } =20 static uint32_t pflash_read(PFlashCFI02 *pfl, hwaddr offset, @@ -481,10 +491,7 @@ static void pflash_write(PFlashCFI02 *pfl, hwaddr offs= et, =20 /* Reset flash */ reset_flash: - trace_pflash_reset(); - pfl->bypass =3D 0; - pfl->wcycle =3D 0; - pfl->cmd =3D 0; + pflash_reset(pfl); return; =20 do_bypass: @@ -588,9 +595,7 @@ static void pflash_cfi02_realize(DeviceState *dev, Erro= r **errp) sysbus_init_mmio(SYS_BUS_DEVICE(dev), &pfl->mem); =20 timer_init_ns(&pfl->timer, QEMU_CLOCK_VIRTUAL, pflash_timer, pfl); - pfl->wcycle =3D 0; - pfl->cmd =3D 0; - pfl->status =3D 0; + pflash_reset(pfl); /* Hardcoded CFI table (mostly from SG29 Spansion flash) */ /* Standard "QRY" string */ pfl->cfi_table[0x10] =3D 'Q'; --=20 2.20.1 From nobody Fri May 3 20:02:44 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1557087164; cv=none; d=zoho.com; s=zohoarc; b=M8wehCF+Y10OHMqPd39uR11jmcB5o+J/9hnI0AkP7k+YoJ/fy6S7Gy6V+4VVHGDSgvx+GRj91C8PAMF9mZnHgearUbg1fribDeECnriVcuDAv3BGYXLK8xcEeu6pDa1omKK7X4TJfTu/qELWM5mOuLp/oWlOEU3Samkz/XIwuf4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1557087164; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=Cb5fTBgbIlOPRrH/u2/CdhgMpM2meoJbk2ltduQU9Eg=; b=KA0U4UjtIvzETUw6kuPKApgqWYY0DS9mOH/winj5gZkH8XYJK9KtRU9oMA6HDindsfe9auAOsYhtRIWMQ1GeGqBmDvUYLOdvzyhlmHMcMo7itDDPd5KG8OQE4nDr/eDu1jd4MZf2KkHeRyzWLiI23xrh+rXhI9cGnpgQVpt1lgA= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1557087164469464.2938524501792; Sun, 5 May 2019 13:12:44 -0700 (PDT) Received: from localhost ([127.0.0.1]:45394 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hNNV4-00074q-2k for importer@patchew.org; Sun, 05 May 2019 16:12:42 -0400 Received: from eggs.gnu.org ([209.51.188.92]:39375) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hNNPx-0002sy-Mc for qemu-devel@nongnu.org; Sun, 05 May 2019 16:07:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hNNPu-0006Pa-L0 for qemu-devel@nongnu.org; Sun, 05 May 2019 16:07:24 -0400 Received: from mx1.redhat.com ([209.132.183.28]:60770) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hNNPm-0005M5-7l; Sun, 05 May 2019 16:07:15 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 67BD9C01EE87; Sun, 5 May 2019 20:07:06 +0000 (UTC) Received: from x1w.redhat.com (ovpn-204-58.brq.redhat.com [10.40.204.58]) by smtp.corp.redhat.com (Postfix) with ESMTPS id C5B3A60851; Sun, 5 May 2019 20:06:58 +0000 (UTC) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org, qemu-stable@nongnu.org Date: Sun, 5 May 2019 22:06:02 +0200 Message-Id: <20190505200602.12412-6-philmd@redhat.com> In-Reply-To: <20190505200602.12412-1-philmd@redhat.com> References: <20190505200602.12412-1-philmd@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Sun, 05 May 2019 20:07:06 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 5/5] hw/block/pflash_cfi02: Add the DeviceReset() handler 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: Kevin Wolf , Peter Maydell , Stephen Checkoway , qemu-block@nongnu.org, "Michael S . Tsirkin" , Laszlo Ersek , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Markus Armbruster , Max Reitz , Wei Yang , Paolo Bonzini , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Gerd Hoffmann Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" The pflash device is a child of TYPE_DEVICE, so it can implement the DeviceReset handler. Actually it has to implement it, else on machine reset it might stay in an incoherent state, as it has been reported in the buglink listed below. Add the DeviceReset handler and remove its call from the realize() function. Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=3D1678713 Reported-by: Laszlo Ersek Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Wei Yang --- hw/block/pflash_cfi02.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c index f321b74433c..5af367d1563 100644 --- a/hw/block/pflash_cfi02.c +++ b/hw/block/pflash_cfi02.c @@ -674,6 +674,11 @@ static void pflash_cfi02_realize(DeviceState *dev, Err= or **errp) pfl->cfi_table[0x3c] =3D 0x00; } =20 +static void pflash_cfi02_reset(DeviceState *dev) +{ + pflash_reset(PFLASH_CFI02(dev)); +} + static Property pflash_cfi02_properties[] =3D { DEFINE_PROP_DRIVE("drive", PFlashCFI02, blk), DEFINE_PROP_UINT32("num-blocks", PFlashCFI02, nb_blocs, 0), @@ -701,6 +706,7 @@ static void pflash_cfi02_class_init(ObjectClass *klass,= void *data) { DeviceClass *dc =3D DEVICE_CLASS(klass); =20 + dc->reset =3D pflash_cfi02_reset; dc->realize =3D pflash_cfi02_realize; dc->unrealize =3D pflash_cfi02_unrealize; dc->props =3D pflash_cfi02_properties; --=20 2.20.1