From nobody Sat May 18 15:08:15 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.128.44 as permitted sender) client-ip=209.85.128.44; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-f44.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.44 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1637318881; cv=none; d=zohomail.com; s=zohoarc; b=P+Bj8ZbvfmDRDcYUDs4rZ95tAWcVKmpbtO7L69OvlRAkkXsgt9KvE4w41v5Ce6BvaILcFcbejO4n3df9vSOcRUq2vDe1w7THA8sKZRF72mUiKvO7y+gIdIk0VIfJlgNvL0Z4zVuB83nAdZmStByMI6UuadI8nrjTVhny7+I8+I8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1637318881; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:MIME-Version:Message-ID:Sender:Subject:To; bh=m/sEMkLXaHtdeyM5KKpAG59SYshobRaqf25V6rhhYxc=; b=WkfK27AkJmZzJtRVMPMQvbD5JDrdj9UMNZ+VkQOzyfVKXr7mdzZQWSxXk8N/T/m8Wnv4HKm8Y0i01x8JO+12FYIbxwNImNKE9RGmsF8T2zNpjmAk3IixNHxHw0MZ4ONcRhM+r/Z7+1DeEgR9YjF/M537W9a93/4Fze9nfEDpgso= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.44 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) by mx.zohomail.com with SMTPS id 1637318881441235.23315865999405; Fri, 19 Nov 2021 02:48:01 -0800 (PST) Received: by mail-wm1-f44.google.com with SMTP id r9-20020a7bc089000000b00332f4abf43fso7489656wmh.0 for ; Fri, 19 Nov 2021 02:48:00 -0800 (PST) Return-Path: Return-Path: Received: from x1w.. (62.red-83-57-168.dynamicip.rima-tde.net. [83.57.168.62]) by smtp.gmail.com with ESMTPSA id e8sm2481692wrr.26.2021.11.19.02.47.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Nov 2021 02:47:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=m/sEMkLXaHtdeyM5KKpAG59SYshobRaqf25V6rhhYxc=; b=WC7Z9ERmudsck6Y3YRfWMWFqGpYGpG4eX0mIE8EPni0WLrhZoktZM/jFA9rm53A+NJ vsYl8FeM2WUwIUYtC3LH0HG/TWxOzeua7EHiaR/I0oZld9EauzlPJoqHZGbcx4tCFqTd apBrVbpyP5osu1wYVrdn5QFLixLJJaOCIjgmIZxBWCW8kqdO0r/INj/AEa+rJ1TpG9EC Poi/s0VvQIH9w3kvzT54uvGnk+ni9dajcgLcCDHqYwuuBz1hIW5HRL6YruVJr1q67ccM 9QLorL52i9CG5zFwsnvYcSrIk42LL9Y0fzi50BrABE9Cko/g7dlrw1OIIwiLg3GLztTS XVVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :mime-version:content-transfer-encoding; bh=m/sEMkLXaHtdeyM5KKpAG59SYshobRaqf25V6rhhYxc=; b=HVdvyO08lwEJuS2ucwoEf6L8uRW7i6CnDUjegMn2uDMcZXvrrkLTzAaSMwAqC3ZGR/ nfa5NDV07qL2Dc8PuwsuHe3Smd4Von9SNH/X97odoYEubbez6gBoxVtktwEgV/2lz+P8 dUc2urO2DTHlzZ48KpK1vGlnt+5t73zueMEiCPI2KmeSgnKnHMJboIKQH5V09xdlQkgk BvGZnOrinteNV/DAdawzmOcf1damT/vq50aU+m/KoYygxMIcQpioVqLTJgRYxPu1ysNG aVLaPV3BvXfTXA3ipX8KWpV33dNMaD1+uID4j99IcXcD/yi+pe0CcJy1HNiLtMskyCKE l5RA== X-Gm-Message-State: AOAM5333HUQg4RKtwfy5mZLzlA+AzUMZxzSmKlAPI1DvW7qmKSYxDQIM /RYC22EJaupa1h9pb5gIJyI= X-Google-Smtp-Source: ABdhPJxtsRL3mNjwdvc2rx4KHoxUQg3TkjmOiLQkJNTEehNedUntZxFv/lSoEyyeZcQfAfGyGu0bCA== X-Received: by 2002:a7b:c4c4:: with SMTP id g4mr5365609wmk.93.1637318879700; Fri, 19 Nov 2021 02:47:59 -0800 (PST) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, Bin Meng , Alistair Francis , Palmer Dabbelt , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [RFC PATCH-for-6.2?] hw/misc/sifive_u_otp: Do not reset OTP content on hardware reset Date: Fri, 19 Nov 2021 11:47:57 +0100 Message-Id: <20211119104757.331579-1-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1637318882934100001 Once a "One Time Programmable" is programmed, it shouldn't be reset. Do not re-initialize the OTP content in the DeviceReset handler, initialize it once in the DeviceRealize one. Fixes: 9fb45c62ae8 ("riscv: sifive: Implement a model for SiFive FU540 OTP") Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/misc/sifive_u_otp.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/hw/misc/sifive_u_otp.c b/hw/misc/sifive_u_otp.c index 18aa0bd55d8..b5adcfa7cb4 100644 --- a/hw/misc/sifive_u_otp.c +++ b/hw/misc/sifive_u_otp.c @@ -235,14 +235,10 @@ static void sifive_u_otp_realize(DeviceState *dev, Er= ror **errp) =20 if (blk_pread(s->blk, 0, s->fuse, filesize) !=3D filesize) { error_setg(errp, "failed to read the initial flash content= "); + return; } } } -} - -static void sifive_u_otp_reset(DeviceState *dev) -{ - SiFiveUOTPState *s =3D SIFIVE_U_OTP(dev); =20 /* Initialize all fuses' initial value to 0xFFs */ memset(s->fuse, 0xff, sizeof(s->fuse)); @@ -259,13 +255,15 @@ static void sifive_u_otp_reset(DeviceState *dev) serial_data =3D s->serial; if (blk_pwrite(s->blk, index * SIFIVE_U_OTP_FUSE_WORD, &serial_data, SIFIVE_U_OTP_FUSE_WORD, 0) < 0) { - error_report("write error index<%d>", index); + error_setg(errp, "failed to write index<%d>", index); + return; } =20 serial_data =3D ~(s->serial); if (blk_pwrite(s->blk, (index + 1) * SIFIVE_U_OTP_FUSE_WORD, &serial_data, SIFIVE_U_OTP_FUSE_WORD, 0) < 0) { - error_report("write error index<%d>", index + 1); + error_setg(errp, "failed to write index<%d>", index + 1); + return; } } =20 @@ -279,7 +277,6 @@ static void sifive_u_otp_class_init(ObjectClass *klass,= void *data) =20 device_class_set_props(dc, sifive_u_otp_properties); dc->realize =3D sifive_u_otp_realize; - dc->reset =3D sifive_u_otp_reset; } =20 static const TypeInfo sifive_u_otp_info =3D { --=20 2.31.1