From nobody Sun May 19 00:47:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) client-ip=216.205.24.124; envelope-from=philmd@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615851340; cv=none; d=zohomail.com; s=zohoarc; b=eK1MOZ//UfHIcewz5KIch4bUqyt4Yhdci0Hf14+c/fkslKf31/5nMUfEyvcLMQEqj0pD0BRixtNYIeDvoKzrl6/JnW0FUdlwIPlX8+fl0XDy2haS/vWfNw4O+Y91yKs+gLDHJ3pGV5cGg+TzyKLUPIVl7yidUXQEjSPCLCqbF6c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615851340; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=61MR0XWqyaDqUOghlQbgzXPLZ3MUcZpD5yT7NkV5FWI=; b=bNd9jrQyZe2Gg+X7SyyF6BHivikStzfukl9WZwmk3uEUuysCKuojxLCQmkD5mYL34mVGItzVcsnMyK+iMHeWhTqPa4aCy7SfyolUB2I5ke48FMqIEen+xoLiPxnZp1ZPGrA8EOty0UmF9uekodQtp8wRUdY5Yzckl3tdzH8ObBg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.zohomail.com with SMTPS id 1615851340156304.7667917799713; Mon, 15 Mar 2021 16:35:40 -0700 (PDT) Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-13-zST0RoTlO0aASmEyHCrqsg-1; Mon, 15 Mar 2021 19:35:35 -0400 Received: by mail-wm1-f70.google.com with SMTP id b20so3155021wmj.3 for ; Mon, 15 Mar 2021 16:35:35 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.redhat.com (17.red-88-21-201.staticip.rima-tde.net. [88.21.201.17]) by smtp.gmail.com with ESMTPSA id d16sm19839965wrx.79.2021.03.15.16.35.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Mar 2021 16:35:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1615851339; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=61MR0XWqyaDqUOghlQbgzXPLZ3MUcZpD5yT7NkV5FWI=; b=ZC219ud/YskGRniC+n8jCMY7TueWXEcBc3S2WzTdJJY8PSDOKnJSgAoVjM+BzXIgjcSccT HAbnhcspEgBIseneQS9CU9w23ax5zoljBX0Luj8jBYJzpcTPezKq/BBSMDKcxMrxUQBeSp hL8dMqMmycrl1c48jV2wh+XWjkLOBAo= X-MC-Unique: zST0RoTlO0aASmEyHCrqsg-1 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:mime-version:content-transfer-encoding; bh=61MR0XWqyaDqUOghlQbgzXPLZ3MUcZpD5yT7NkV5FWI=; b=R+2v1olWFW89GCzPYtAXnEBDOdCeDueXleVA+BRdBkVMxG8dB6wDK/yD4gBMZ6jo2H ou+x/R6XLvFJAjln3BmNvdergqxhMO8ksqjLQN3c0y57vV8KkplJTfhnVNsjaiBX50By 6qgLv6pWY0/PSCR/O+lCB1LFa7mVI36NcGaAxpNcwG7DpG4xBNA/5AGbWIEIXUro6IAZ 9nxVmlAvlOhM6e2mJkCMQ2GUMnmus1lMM0ee2cUv/cmtEnBkDJTV4NlE8GL6u6C6Flwb D3NiRmHC9OGkHNQ26ITf/B1Vv/XGi+vuNTD+x+gZNn2CCBIYyuDiGaOE1p5Ep+FBTNAJ YHAw== X-Gm-Message-State: AOAM53100zDDJacVNqENTrKMAavJMcGkw38bHaGuRnl8RyiPZComUB1I Xck3HiUHQCs/0IGFQ8YZc3Zb+YkFSyF5vsAQXvKpHsZbqgZMfyAC6VOdOVo30+U/RLdY+jQDfGi RESIn6IDNYalDsA== X-Received: by 2002:a5d:698d:: with SMTP id g13mr1963950wru.2.1615851334228; Mon, 15 Mar 2021 16:35:34 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw41BLkwpQXtSm1SApHYoevWNDykwAHZT/5sVnSAe9jRkUUMjKxezIXAo1IG/ko+C+/K4a5ZQ== X-Received: by 2002:a5d:698d:: with SMTP id g13mr1963931wru.2.1615851334013; Mon, 15 Mar 2021 16:35:34 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Kevin Wolf , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Max Reitz , Bin Meng , David Edmondson Subject: [PULL 01/11] hw/block/pflash_cfi: Fix code style for checkpatch.pl Date: Tue, 16 Mar 2021 00:35:17 +0100 Message-Id: <20210315233527.2988483-2-philmd@redhat.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210315233527.2988483-1-philmd@redhat.com> References: <20210315233527.2988483-1-philmd@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=philmd@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) We are going to move this code, fix its style first. Reviewed-by: Bin Meng Reviewed-by: David Edmondson Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20210310170528.1184868-2-philmd@redhat.com> --- hw/block/pflash_cfi01.c | 36 ++++++++++++++++++++++++------------ hw/block/pflash_cfi02.c | 9 ++++++--- 2 files changed, 30 insertions(+), 15 deletions(-) diff --git a/hw/block/pflash_cfi01.c b/hw/block/pflash_cfi01.c index 526b70417de..248889c3d02 100644 --- a/hw/block/pflash_cfi01.c +++ b/hw/block/pflash_cfi01.c @@ -115,7 +115,8 @@ static const VMStateDescription vmstate_pflash =3D { } }; =20 -/* Perform a CFI query based on the bank width of the flash. +/* + * 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. */ @@ -125,7 +126,8 @@ static uint32_t pflash_cfi_query(PFlashCFI01 *pfl, hwad= dr offset) uint32_t resp =3D 0; hwaddr boff; =20 - /* Adjust incoming offset to match expected device-width + /* + * Adjust incoming offset to match expected device-width * addressing. CFI query addresses are always specified in terms of * the maximum supported width of the device. This means that x8 * devices and x8/x16 devices in x8 mode behave differently. For @@ -141,7 +143,8 @@ static uint32_t pflash_cfi_query(PFlashCFI01 *pfl, hwad= dr offset) if (boff >=3D sizeof(pfl->cfi_table)) { return 0; } - /* Now we will construct the CFI response generated by a single + /* + * Now we will construct the CFI response generated by a single * device, then replicate that for all devices that make up the * bus. For wide parts used in x8 mode, CFI query responses * are different than native byte-wide parts. @@ -185,7 +188,8 @@ static uint32_t pflash_devid_query(PFlashCFI01 *pfl, hw= addr offset) uint32_t resp; hwaddr boff; =20 - /* Adjust incoming offset to match expected device-width + /* + * Adjust incoming offset to match expected device-width * addressing. Device ID read addresses are always specified in * terms of the maximum supported width of the device. This means * that x8 devices and x8/x16 devices in x8 mode behave @@ -198,7 +202,8 @@ static uint32_t pflash_devid_query(PFlashCFI01 *pfl, hw= addr offset) boff =3D offset >> (ctz32(pfl->bank_width) + ctz32(pfl->max_device_width) - ctz32(pfl->device_wid= th)); =20 - /* Mask off upper bits which may be used in to query block + /* + * Mask off upper bits which may be used in to query block * or sector lock status at other addresses. * Offsets 2/3 are block lock status, is not emulated. */ @@ -297,7 +302,8 @@ static uint32_t pflash_read(PFlashCFI01 *pfl, hwaddr of= fset, case 0x60: /* Block /un)lock */ case 0x70: /* Status Register */ case 0xe8: /* Write block */ - /* Status register read. Return status from each device in + /* + * Status register read. Return status from each device in * bank. */ ret =3D pfl->status; @@ -308,7 +314,8 @@ static uint32_t pflash_read(PFlashCFI01 *pfl, hwaddr of= fset, shift +=3D pfl->device_width * 8; } } else if (!pfl->device_width && width > 2) { - /* Handle 32 bit flash cases where device width is not + /* + * Handle 32 bit flash cases where device width is not * set. (Existing behavior before device width added.) */ ret |=3D pfl->status << 16; @@ -340,7 +347,8 @@ static uint32_t pflash_read(PFlashCFI01 *pfl, hwaddr of= fset, break; } } else { - /* If we have a read larger than the bank_width, combine multi= ple + /* + * If we have a read larger than the bank_width, combine multi= ple * manufacturer/device ID queries into a single response. */ int i; @@ -367,7 +375,8 @@ static uint32_t pflash_read(PFlashCFI01 *pfl, hwaddr of= fset, ret =3D 0; } } else { - /* If we have a read larger than the bank_width, combine multi= ple + /* + * If we have a read larger than the bank_width, combine multi= ple * CFI queries into a single response. */ int i; @@ -544,7 +553,8 @@ static void pflash_write(PFlashCFI01 *pfl, hwaddr offse= t, =20 break; case 0xe8: - /* Mask writeblock size based on device width, or bank width if + /* + * Mask writeblock size based on device width, or bank width if * device width not specified. */ /* FIXME check @offset, @width */ @@ -718,7 +728,8 @@ static void pflash_cfi01_realize(DeviceState *dev, Erro= r **errp) =20 total_len =3D pfl->sector_len * pfl->nb_blocs; =20 - /* These are only used to expose the parameters of each device + /* + * These are only used to expose the parameters of each device * in the cfi_table[]. */ num_devices =3D pfl->device_width ? (pfl->bank_width / pfl->device_wid= th) : 1; @@ -763,7 +774,8 @@ static void pflash_cfi01_realize(DeviceState *dev, Erro= r **errp) } } =20 - /* Default to devices being used at their maximum device width. This w= as + /* + * Default to devices being used at their maximum device width. This w= as * assumed before the device_width support was added. */ if (!pfl->max_device_width) { diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c index 7962cff7455..fa981465e12 100644 --- a/hw/block/pflash_cfi02.c +++ b/hw/block/pflash_cfi02.c @@ -100,7 +100,8 @@ struct PFlashCFI02 { uint16_t unlock_addr1; uint8_t cfi_table[0x4d]; QEMUTimer timer; - /* The device replicates the flash memory across its memory space. Em= ulate + /* + * The device replicates the flash memory across its memory space. Em= ulate * that by having a container (.mem) filled with an array of aliases * (.mem_mappings) pointing to the flash memory (.orig_mem). */ @@ -884,8 +885,10 @@ static void pflash_cfi02_realize(DeviceState *dev, Err= or **errp) pfl->cfi_table[0x28] =3D 0x02; pfl->cfi_table[0x29] =3D 0x00; /* Max number of bytes in multi-bytes write */ - /* XXX: disable buffered write as it's not supported */ - // pfl->cfi_table[0x2A] =3D 0x05; + /* + * XXX: disable buffered write as it's not supported + * pfl->cfi_table[0x2A] =3D 0x05; + */ pfl->cfi_table[0x2A] =3D 0x00; pfl->cfi_table[0x2B] =3D 0x00; /* Number of erase block regions */ --=20 2.26.2 From nobody Sun May 19 00:47:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) client-ip=63.128.21.124; envelope-from=philmd@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615851343; cv=none; d=zohomail.com; s=zohoarc; b=PU+EqfawIigy1zm7joQNK6b1M81V+F6eo1gE0s0WyyS7e6XU97EEJK1HvgLxuPj9zfHl1T2azSZRvj11DiRqGLjGNTvneovbDgRD79FfJ3KYq8j8N4y/aLmWHT8wI4qwOQsm6Kkz4GYZTqCmDpOwD01UCj0Skn+kkD49cbO3L2Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615851343; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=s0y0PuPcvgkCR9I/VXZHNwqPHl99TfzU9BvLX8r0uLQ=; b=bDDREGY9epgSZynes7z9245/MWeD+bVUnSRrOC2tvqsSxBALJXbrZqCXpR4jtMalneHrXEnC+dTxlF6rVK1dF1FiaW/QilyYqWovLmVmcjoCtlD+9+smCAfSuld1z9vWFjbLvIuyPpm3s9G6TZkYTNUDKz2/aHYWmh4tdAUd4iU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by mx.zohomail.com with SMTPS id 1615851343080196.81804883870836; Mon, 15 Mar 2021 16:35:43 -0700 (PDT) Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-576-2VogL-axO-mfY-Lhzsz2cw-1; Mon, 15 Mar 2021 19:35:40 -0400 Received: by mail-wr1-f71.google.com with SMTP id x9so15635428wro.9 for ; Mon, 15 Mar 2021 16:35:40 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.redhat.com (17.red-88-21-201.staticip.rima-tde.net. [88.21.201.17]) by smtp.gmail.com with ESMTPSA id w6sm21249903wrl.49.2021.03.15.16.35.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Mar 2021 16:35:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1615851342; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=s0y0PuPcvgkCR9I/VXZHNwqPHl99TfzU9BvLX8r0uLQ=; b=hxi+U+T96jBzsus7asxG7P+3JTDP9dUXa5ZeAhoUZcWz1Sgrh1MEaka0qRkw/JPfDBQtVq US0yxwuw4Zj2MeF1tS8LgRre5JIj7a+HNBUbYOCwM9W2h1ZTppJZnaoQWvhNKM1LobI5WM UWOLj2RQCax1R9/wRxX/91jN/iebVi8= X-MC-Unique: 2VogL-axO-mfY-Lhzsz2cw-1 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:mime-version:content-transfer-encoding; bh=s0y0PuPcvgkCR9I/VXZHNwqPHl99TfzU9BvLX8r0uLQ=; b=E9hy7hJ587J/7eRB//Q85dg4jv62WhlXuIOD2u8ABkmuVBr6KgApDE+arnk3/u+I9t nQtU6U3kg7tmP8rNw79ASvKYx+Mi1Chm9ikeM2IExlQtAGjclNBnr6+o/BGkmKMW1Gyn gyL0+ZpUYUV8j/EbNZcxqm87NcMEpWEAsZEwtd5Xymdvg3LNehXsh0DQZb7O8rXESSAW PLubflq5Nubvu2RsMx62OZ/2mLwQdZr5OaNckcKfVo2X9KcRpH2XyyP5bFxjaQaXXwhl W6veSSvb8maTYcQq04qv7Vcj9WHj+T2f+5xT8gjBitMkeunLy5lmR/8V1j++snkUA2Pb M/7w== X-Gm-Message-State: AOAM533yEnP71wRgH1qtvWwhphBtyyhEGGWnu5UWg9BrzlwbgQ1nTDFA pDweV5aHqAs9lQjE+nzO7XG8Ps7oWAOdrNLtrtbqzZOYLgy7dX2bVbb/n2HLgpc2Wc1Fk9TzSiS woXCVbG/exG9D/w== X-Received: by 2002:adf:b345:: with SMTP id k5mr1961875wrd.14.1615851339133; Mon, 15 Mar 2021 16:35:39 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyaT/Ly01nOi225Ge5wlgjRRxHvIoY1P9qh9fVjK+XflWDEg7LArHSiM3z/Qj9DDpgUiN0DIg== X-Received: by 2002:adf:b345:: with SMTP id k5mr1961863wrd.14.1615851338948; Mon, 15 Mar 2021 16:35:38 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Kevin Wolf , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Max Reitz , Bin Meng , David Edmondson Subject: [PULL 02/11] hw/block/pflash_cfi01: Extract pflash_cfi01_fill_cfi_table() Date: Tue, 16 Mar 2021 00:35:18 +0100 Message-Id: <20210315233527.2988483-3-philmd@redhat.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210315233527.2988483-1-philmd@redhat.com> References: <20210315233527.2988483-1-philmd@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=philmd@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Fill the CFI table in out of DeviceRealize() in a new function: pflash_cfi01_fill_cfi_table(). Reviewed-by: Bin Meng Reviewed-by: David Edmondson Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20210310170528.1184868-3-philmd@redhat.com> --- hw/block/pflash_cfi01.c | 140 +++++++++++++++++++++------------------- 1 file changed, 73 insertions(+), 67 deletions(-) diff --git a/hw/block/pflash_cfi01.c b/hw/block/pflash_cfi01.c index 248889c3d02..779a62f3b06 100644 --- a/hw/block/pflash_cfi01.c +++ b/hw/block/pflash_cfi01.c @@ -704,30 +704,11 @@ static const MemoryRegionOps pflash_cfi01_ops =3D { .endianness =3D DEVICE_NATIVE_ENDIAN, }; =20 -static void pflash_cfi01_realize(DeviceState *dev, Error **errp) +static void pflash_cfi01_fill_cfi_table(PFlashCFI01 *pfl) { - ERRP_GUARD(); - PFlashCFI01 *pfl =3D PFLASH_CFI01(dev); - uint64_t total_len; - int ret; uint64_t blocks_per_device, sector_len_per_device, device_len; int num_devices; =20 - if (pfl->sector_len =3D=3D 0) { - error_setg(errp, "attribute \"sector-length\" not specified or zer= o."); - return; - } - if (pfl->nb_blocs =3D=3D 0) { - error_setg(errp, "attribute \"num-blocks\" not specified or zero."= ); - return; - } - if (pfl->name =3D=3D NULL) { - error_setg(errp, "attribute \"name\" not specified."); - return; - } - - total_len =3D pfl->sector_len * pfl->nb_blocs; - /* * These are only used to expose the parameters of each device * in the cfi_table[]. @@ -742,53 +723,6 @@ static void pflash_cfi01_realize(DeviceState *dev, Err= or **errp) } device_len =3D sector_len_per_device * blocks_per_device; =20 - memory_region_init_rom_device( - &pfl->mem, OBJECT(dev), - &pflash_cfi01_ops, - pfl, - pfl->name, total_len, errp); - if (*errp) { - return; - } - - pfl->storage =3D memory_region_get_ram_ptr(&pfl->mem); - sysbus_init_mmio(SYS_BUS_DEVICE(dev), &pfl->mem); - - if (pfl->blk) { - uint64_t perm; - pfl->ro =3D !blk_supports_write_perm(pfl->blk); - perm =3D BLK_PERM_CONSISTENT_READ | (pfl->ro ? 0 : BLK_PERM_WRITE); - ret =3D blk_set_perm(pfl->blk, perm, BLK_PERM_ALL, errp); - if (ret < 0) { - return; - } - } else { - pfl->ro =3D 0; - } - - if (pfl->blk) { - if (!blk_check_size_and_read_all(pfl->blk, pfl->storage, total_len, - errp)) { - vmstate_unregister_ram(&pfl->mem, DEVICE(pfl)); - return; - } - } - - /* - * Default to devices being used at their maximum device width. This w= as - * assumed before the device_width support was added. - */ - if (!pfl->max_device_width) { - pfl->max_device_width =3D pfl->device_width; - } - - pfl->wcycle =3D 0; - /* - * The command 0x00 is not assigned by the CFI open standard, - * but QEMU historically uses it for the READ_ARRAY command (0xff). - */ - pfl->cmd =3D 0x00; - pfl->status =3D 0x80; /* WSM ready */ /* Hardcoded CFI table */ /* Standard "QRY" string */ pfl->cfi_table[0x10] =3D 'Q'; @@ -876,6 +810,78 @@ 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_realize(DeviceState *dev, Error **errp) +{ + ERRP_GUARD(); + PFlashCFI01 *pfl =3D PFLASH_CFI01(dev); + uint64_t total_len; + int ret; + + if (pfl->sector_len =3D=3D 0) { + error_setg(errp, "attribute \"sector-length\" not specified or zer= o."); + return; + } + if (pfl->nb_blocs =3D=3D 0) { + error_setg(errp, "attribute \"num-blocks\" not specified or zero."= ); + return; + } + if (pfl->name =3D=3D NULL) { + error_setg(errp, "attribute \"name\" not specified."); + return; + } + + total_len =3D pfl->sector_len * pfl->nb_blocs; + + memory_region_init_rom_device( + &pfl->mem, OBJECT(dev), + &pflash_cfi01_ops, + pfl, + pfl->name, total_len, errp); + if (*errp) { + return; + } + + pfl->storage =3D memory_region_get_ram_ptr(&pfl->mem); + sysbus_init_mmio(SYS_BUS_DEVICE(dev), &pfl->mem); + + if (pfl->blk) { + uint64_t perm; + pfl->ro =3D !blk_supports_write_perm(pfl->blk); + perm =3D BLK_PERM_CONSISTENT_READ | (pfl->ro ? 0 : BLK_PERM_WRITE); + ret =3D blk_set_perm(pfl->blk, perm, BLK_PERM_ALL, errp); + if (ret < 0) { + return; + } + } else { + pfl->ro =3D 0; + } + + if (pfl->blk) { + if (!blk_check_size_and_read_all(pfl->blk, pfl->storage, total_len, + errp)) { + vmstate_unregister_ram(&pfl->mem, DEVICE(pfl)); + return; + } + } + + /* + * Default to devices being used at their maximum device width. This w= as + * assumed before the device_width support was added. + */ + if (!pfl->max_device_width) { + pfl->max_device_width =3D pfl->device_width; + } + + pfl->wcycle =3D 0; + /* + * The command 0x00 is not assigned by the CFI open standard, + * but QEMU historically uses it for the READ_ARRAY command (0xff). + */ + pfl->cmd =3D 0x00; + pfl->status =3D 0x80; /* WSM ready */ + pflash_cfi01_fill_cfi_table(pfl); +} + static void pflash_cfi01_system_reset(DeviceState *dev) { PFlashCFI01 *pfl =3D PFLASH_CFI01(dev); --=20 2.26.2 From nobody Sun May 19 00:47:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) client-ip=216.205.24.124; envelope-from=philmd@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615851349; cv=none; d=zohomail.com; s=zohoarc; b=nQQaRbiHhS7rW7vMvff5ErkYkLLt0Y0lETPW0e5pogt/kBTW9DJryHTFMa6k3AoDGSg/FQT2W6TOk/M6fne6e0GB8vU80hA3V/qJNF4Z5kUqdVXIfZTysMd8W7w//jhpN8a6S3qCsQgjDP0kVsmoU2L44DMn8gQbyl03hHyO0os= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615851349; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=U9Ipj29ef/epUm7canVmOvW2sayP8EKcaMfLDp/k/Io=; b=dWCDCsag5QQy/gjnje80+26G83X19g1/VTBw8WrpdswidFaY0p2iLx8or15gOHMsMJPEeiBN3vvh+zTUD92Osf/qXDW7QyKp9SwyH19Wz51Zzv7jyWzkRZBOueRjtVnPIKesk8KbZ49sxNwRuGf3KycDs+xZGfUKT5dcLm40OVM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.zohomail.com with SMTPS id 1615851349928139.61933403080104; Mon, 15 Mar 2021 16:35:49 -0700 (PDT) Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-353-FPKIj1ocNNersLAxOW1vSw-1; Mon, 15 Mar 2021 19:35:45 -0400 Received: by mail-wm1-f71.google.com with SMTP id s192so8858272wme.6 for ; Mon, 15 Mar 2021 16:35:44 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.redhat.com (17.red-88-21-201.staticip.rima-tde.net. [88.21.201.17]) by smtp.gmail.com with ESMTPSA id k12sm20943756wrx.7.2021.03.15.16.35.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Mar 2021 16:35:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1615851348; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=U9Ipj29ef/epUm7canVmOvW2sayP8EKcaMfLDp/k/Io=; b=PAi2jV+0TGLmz2juLYKSph75nfnDCDRub4GNkShnwlO2nDC6ukgsHvgvoP6JCtzeGtwqU8 O8borUMGGbXWi/VJwQhs8rMh4e0pyHAyjHaSOmikBoLesbkuWfFBDPFTL9wV91aotrDpwh NXx/pg2+AnVlevrFpdb3Mfdwzdmxu2c= X-MC-Unique: FPKIj1ocNNersLAxOW1vSw-1 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:mime-version:content-transfer-encoding; bh=U9Ipj29ef/epUm7canVmOvW2sayP8EKcaMfLDp/k/Io=; b=JP8MS4/F3c89VcjQs0gho21DKFWatPIvKtbiQ39R8MDhcWPClr7RCnZrdbNF1nNhHe 1PGRl5KZ/rcqL6hIx7lLA0JRYmDE63XJR52ZnPmHwoA9GdyQtwwTqDIdfgMLVuwlzL4+ C3Io2SLJdn0tyBOX9ZIpKXvEW/SaEK04rGUZ3lQHe1uhgS6O9QdY2h+3UDyLkUhMy6dJ AAh3QLzFsZ9UvFSOTXhD0vGyFvpScTDVQzoPm8wEXcjVxTWPDojVXja7IygBJu7W+9Fw rqt8fmX6d9q3qbA99EJhKbrSwE45k8m3+2JNnBg7gxttZvL+EKsqkFTtPUSN6GfHilBB WGyQ== X-Gm-Message-State: AOAM532nwuR55LuaUDsWWG5SQVQjTtE9JP8FuZfop7yZ2SgYODbbbZKX 2ptTKSyG0+6I2GCGAvivaq07vbndM00TStTJckQnI07sVnsfqOLowknwzxgI+I43fzEh/GhK5Qi DLpk61xeL+zAQKQ== X-Received: by 2002:a7b:c0c4:: with SMTP id s4mr1919993wmh.9.1615851343962; Mon, 15 Mar 2021 16:35:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy0TkBHNcVV7M0BEl1fCvNbd9DowFAm6OjPtoZh6EMpE1K0TQUHGbW4DFXSBaukFvOiPTHtqw== X-Received: by 2002:a7b:c0c4:: with SMTP id s4mr1919986wmh.9.1615851343793; Mon, 15 Mar 2021 16:35:43 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Kevin Wolf , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Max Reitz , Bin Meng , David Edmondson Subject: [PULL 03/11] hw/block/pflash_cfi02: Extract pflash_cfi02_fill_cfi_table() Date: Tue, 16 Mar 2021 00:35:19 +0100 Message-Id: <20210315233527.2988483-4-philmd@redhat.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210315233527.2988483-1-philmd@redhat.com> References: <20210315233527.2988483-1-philmd@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=philmd@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Fill the CFI table in out of DeviceRealize() in a new function: pflash_cfi02_fill_cfi_table(). Reviewed-by: Bin Meng Reviewed-by: David Edmondson Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20210310170528.1184868-4-philmd@redhat.com> --- hw/block/pflash_cfi02.c | 193 +++++++++++++++++++++------------------- 1 file changed, 99 insertions(+), 94 deletions(-) diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c index fa981465e12..845f50ed99b 100644 --- a/hw/block/pflash_cfi02.c +++ b/hw/block/pflash_cfi02.c @@ -724,6 +724,104 @@ static const MemoryRegionOps pflash_cfi02_ops =3D { .endianness =3D DEVICE_NATIVE_ENDIAN, }; =20 +static void pflash_cfi02_fill_cfi_table(PFlashCFI02 *pfl, int nb_regions) +{ + /* Hardcoded CFI table (mostly from SG29 Spansion flash) */ + const uint16_t pri_ofs =3D 0x40; + /* Standard "QRY" string */ + pfl->cfi_table[0x10] =3D 'Q'; + pfl->cfi_table[0x11] =3D 'R'; + pfl->cfi_table[0x12] =3D 'Y'; + /* Command set (AMD/Fujitsu) */ + pfl->cfi_table[0x13] =3D 0x02; + pfl->cfi_table[0x14] =3D 0x00; + /* Primary extended table address */ + pfl->cfi_table[0x15] =3D pri_ofs; + pfl->cfi_table[0x16] =3D pri_ofs >> 8; + /* Alternate command set (none) */ + pfl->cfi_table[0x17] =3D 0x00; + pfl->cfi_table[0x18] =3D 0x00; + /* Alternate extended table (none) */ + pfl->cfi_table[0x19] =3D 0x00; + pfl->cfi_table[0x1A] =3D 0x00; + /* Vcc min */ + pfl->cfi_table[0x1B] =3D 0x27; + /* Vcc max */ + pfl->cfi_table[0x1C] =3D 0x36; + /* Vpp min (no Vpp pin) */ + pfl->cfi_table[0x1D] =3D 0x00; + /* Vpp max (no Vpp pin) */ + pfl->cfi_table[0x1E] =3D 0x00; + /* Timeout per single byte/word write (128 ms) */ + pfl->cfi_table[0x1F] =3D 0x07; + /* Timeout for min size buffer write (NA) */ + pfl->cfi_table[0x20] =3D 0x00; + /* Typical timeout for block erase (512 ms) */ + pfl->cfi_table[0x21] =3D 0x09; + /* Typical timeout for full chip erase (4096 ms) */ + pfl->cfi_table[0x22] =3D 0x0C; + /* Reserved */ + pfl->cfi_table[0x23] =3D 0x01; + /* Max timeout for buffer write (NA) */ + pfl->cfi_table[0x24] =3D 0x00; + /* Max timeout for block erase */ + pfl->cfi_table[0x25] =3D 0x0A; + /* Max timeout for chip erase */ + pfl->cfi_table[0x26] =3D 0x0D; + /* Device size */ + pfl->cfi_table[0x27] =3D ctz32(pfl->chip_len); + /* Flash device interface (8 & 16 bits) */ + pfl->cfi_table[0x28] =3D 0x02; + pfl->cfi_table[0x29] =3D 0x00; + /* Max number of bytes in multi-bytes write */ + /* + * XXX: disable buffered write as it's not supported + * pfl->cfi_table[0x2A] =3D 0x05; + */ + pfl->cfi_table[0x2A] =3D 0x00; + pfl->cfi_table[0x2B] =3D 0x00; + /* Number of erase block regions */ + pfl->cfi_table[0x2c] =3D nb_regions; + /* Erase block regions */ + for (int i =3D 0; i < nb_regions; ++i) { + uint32_t sector_len_per_device =3D pfl->sector_len[i]; + pfl->cfi_table[0x2d + 4 * i] =3D pfl->nb_blocs[i] - 1; + pfl->cfi_table[0x2e + 4 * i] =3D (pfl->nb_blocs[i] - 1) >> 8; + pfl->cfi_table[0x2f + 4 * i] =3D sector_len_per_device >> 8; + pfl->cfi_table[0x30 + 4 * i] =3D sector_len_per_device >> 16; + } + assert(0x2c + 4 * nb_regions < pri_ofs); + + /* Extended */ + pfl->cfi_table[0x00 + pri_ofs] =3D 'P'; + pfl->cfi_table[0x01 + pri_ofs] =3D 'R'; + pfl->cfi_table[0x02 + pri_ofs] =3D 'I'; + + /* Extended version 1.0 */ + pfl->cfi_table[0x03 + pri_ofs] =3D '1'; + pfl->cfi_table[0x04 + pri_ofs] =3D '0'; + + /* Address sensitive unlock required. */ + pfl->cfi_table[0x05 + pri_ofs] =3D 0x00; + /* Erase suspend to read/write. */ + pfl->cfi_table[0x06 + pri_ofs] =3D 0x02; + /* Sector protect not supported. */ + pfl->cfi_table[0x07 + pri_ofs] =3D 0x00; + /* Temporary sector unprotect not supported. */ + pfl->cfi_table[0x08 + pri_ofs] =3D 0x00; + + /* Sector protect/unprotect scheme. */ + pfl->cfi_table[0x09 + pri_ofs] =3D 0x00; + + /* Simultaneous operation not supported. */ + pfl->cfi_table[0x0a + pri_ofs] =3D 0x00; + /* Burst mode not supported. */ + pfl->cfi_table[0x0b + pri_ofs] =3D 0x00; + /* Page mode not supported. */ + pfl->cfi_table[0x0c + pri_ofs] =3D 0x00; + assert(0x0c + pri_ofs < ARRAY_SIZE(pfl->cfi_table)); +} + static void pflash_cfi02_realize(DeviceState *dev, Error **errp) { ERRP_GUARD(); @@ -837,100 +935,7 @@ static void pflash_cfi02_realize(DeviceState *dev, Er= ror **errp) pfl->cmd =3D 0; pfl->status =3D 0; =20 - /* Hardcoded CFI table (mostly from SG29 Spansion flash) */ - const uint16_t pri_ofs =3D 0x40; - /* Standard "QRY" string */ - pfl->cfi_table[0x10] =3D 'Q'; - pfl->cfi_table[0x11] =3D 'R'; - pfl->cfi_table[0x12] =3D 'Y'; - /* Command set (AMD/Fujitsu) */ - pfl->cfi_table[0x13] =3D 0x02; - pfl->cfi_table[0x14] =3D 0x00; - /* Primary extended table address */ - pfl->cfi_table[0x15] =3D pri_ofs; - pfl->cfi_table[0x16] =3D pri_ofs >> 8; - /* Alternate command set (none) */ - pfl->cfi_table[0x17] =3D 0x00; - pfl->cfi_table[0x18] =3D 0x00; - /* Alternate extended table (none) */ - pfl->cfi_table[0x19] =3D 0x00; - pfl->cfi_table[0x1A] =3D 0x00; - /* Vcc min */ - pfl->cfi_table[0x1B] =3D 0x27; - /* Vcc max */ - pfl->cfi_table[0x1C] =3D 0x36; - /* Vpp min (no Vpp pin) */ - pfl->cfi_table[0x1D] =3D 0x00; - /* Vpp max (no Vpp pin) */ - pfl->cfi_table[0x1E] =3D 0x00; - /* Timeout per single byte/word write (128 ms) */ - pfl->cfi_table[0x1F] =3D 0x07; - /* Timeout for min size buffer write (NA) */ - pfl->cfi_table[0x20] =3D 0x00; - /* Typical timeout for block erase (512 ms) */ - pfl->cfi_table[0x21] =3D 0x09; - /* Typical timeout for full chip erase (4096 ms) */ - pfl->cfi_table[0x22] =3D 0x0C; - /* Reserved */ - pfl->cfi_table[0x23] =3D 0x01; - /* Max timeout for buffer write (NA) */ - pfl->cfi_table[0x24] =3D 0x00; - /* Max timeout for block erase */ - pfl->cfi_table[0x25] =3D 0x0A; - /* Max timeout for chip erase */ - pfl->cfi_table[0x26] =3D 0x0D; - /* Device size */ - pfl->cfi_table[0x27] =3D ctz32(pfl->chip_len); - /* Flash device interface (8 & 16 bits) */ - pfl->cfi_table[0x28] =3D 0x02; - pfl->cfi_table[0x29] =3D 0x00; - /* Max number of bytes in multi-bytes write */ - /* - * XXX: disable buffered write as it's not supported - * pfl->cfi_table[0x2A] =3D 0x05; - */ - pfl->cfi_table[0x2A] =3D 0x00; - pfl->cfi_table[0x2B] =3D 0x00; - /* Number of erase block regions */ - pfl->cfi_table[0x2c] =3D nb_regions; - /* Erase block regions */ - for (int i =3D 0; i < nb_regions; ++i) { - uint32_t sector_len_per_device =3D pfl->sector_len[i]; - pfl->cfi_table[0x2d + 4 * i] =3D pfl->nb_blocs[i] - 1; - pfl->cfi_table[0x2e + 4 * i] =3D (pfl->nb_blocs[i] - 1) >> 8; - pfl->cfi_table[0x2f + 4 * i] =3D sector_len_per_device >> 8; - pfl->cfi_table[0x30 + 4 * i] =3D sector_len_per_device >> 16; - } - assert(0x2c + 4 * nb_regions < pri_ofs); - - /* Extended */ - pfl->cfi_table[0x00 + pri_ofs] =3D 'P'; - pfl->cfi_table[0x01 + pri_ofs] =3D 'R'; - pfl->cfi_table[0x02 + pri_ofs] =3D 'I'; - - /* Extended version 1.0 */ - pfl->cfi_table[0x03 + pri_ofs] =3D '1'; - pfl->cfi_table[0x04 + pri_ofs] =3D '0'; - - /* Address sensitive unlock required. */ - pfl->cfi_table[0x05 + pri_ofs] =3D 0x00; - /* Erase suspend to read/write. */ - pfl->cfi_table[0x06 + pri_ofs] =3D 0x02; - /* Sector protect not supported. */ - pfl->cfi_table[0x07 + pri_ofs] =3D 0x00; - /* Temporary sector unprotect not supported. */ - pfl->cfi_table[0x08 + pri_ofs] =3D 0x00; - - /* Sector protect/unprotect scheme. */ - pfl->cfi_table[0x09 + pri_ofs] =3D 0x00; - - /* Simultaneous operation not supported. */ - pfl->cfi_table[0x0a + pri_ofs] =3D 0x00; - /* Burst mode not supported. */ - pfl->cfi_table[0x0b + pri_ofs] =3D 0x00; - /* Page mode not supported. */ - pfl->cfi_table[0x0c + pri_ofs] =3D 0x00; - assert(0x0c + pri_ofs < ARRAY_SIZE(pfl->cfi_table)); + pflash_cfi02_fill_cfi_table(pfl, nb_regions); } =20 static Property pflash_cfi02_properties[] =3D { --=20 2.26.2 From nobody Sun May 19 00:47:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=philmd@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615851352; cv=none; d=zohomail.com; s=zohoarc; b=jQj58GSgBTgDG4he5BeaLKQuSyxZC/ZS33qBIk9vGdDFEQLrCVmMpMcIrX5UkUlONv9DtRXc3DDch2lhiJZ3LD9hRSEsI/ocjGSlft+ggGfG2MisPfKJbMw0Rup62WPheJ6AFmsbeOp4efOLn7U+m2/t98Pq/bc4gg35KNuLiQY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615851352; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=KigJthQczVlEvSbGoKPxU7lWca8CwaHC2NQv0DBkw8U=; b=ebx1Lc/nQVfRj54p2YQ+hPtWAqpYznkpUkqr0QhCZOReRHLTOVZxkxl+9fSvD7s6hqpqE4V+eJnCY8WXdBrO1dqRBFDoDtdmaXggpfcsPUhgcs9fMi1VU6nzps+evVoNioT26DEB96yBZVFt2S5LbOo0DHSX615yt4lMzLZQBRs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1615851352523799.2828164666336; Mon, 15 Mar 2021 16:35:52 -0700 (PDT) Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-222-HybEwPnvMq24T5r9ce6_xw-1; Mon, 15 Mar 2021 19:35:49 -0400 Received: by mail-wr1-f69.google.com with SMTP id h21so15628083wrc.19 for ; Mon, 15 Mar 2021 16:35:49 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.redhat.com (17.red-88-21-201.staticip.rima-tde.net. [88.21.201.17]) by smtp.gmail.com with ESMTPSA id 12sm1121191wmw.43.2021.03.15.16.35.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Mar 2021 16:35:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1615851351; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=KigJthQczVlEvSbGoKPxU7lWca8CwaHC2NQv0DBkw8U=; b=cmGc9CCcoTdZ4okYa4yc2c/SVVivTKEMqCwTpx08iE5opD0SlEcWjMri5YOKNJ1g3GexwQ PZsn4oqVLY40n7f+5E2bzmm6wDu9aRlbxos+fPGGFo1KgirRiiN+gV+RMykaLyr+EtJRkA K4dIyD3RXZ9RjcezAiPRbHna5+u0Tpo= X-MC-Unique: HybEwPnvMq24T5r9ce6_xw-1 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:mime-version:content-transfer-encoding; bh=KigJthQczVlEvSbGoKPxU7lWca8CwaHC2NQv0DBkw8U=; b=KQKIMajkIGrQL/oMOoNwDd/2rkNXOonybmmIFix/Blgpun2y1274rrkxcXUkaNFn5n Mdpa/YRlWXQU5NiWjVm6kE8lqbv2qDi5caxGn2cQXgpiIEf796NQN/mFPPKp+ZY19x4w DubfaZlgiQGcWXns7qbSST6xlWQlZw2zOX20X/Qorw/POiPr2Dnj16qmgPb+0YtCAMG9 iLa2NZJVZYFh/NVEggQWXyxjduNcrf0jwfe8Dtk675WdSVtDXdNgDWB9dkKYSCzm8rqE TFnisU/IY5CJdKR31by3JUwu8fJ1jdYii5u3+WOZ7WLXe14J56J4ErU09EFempEaa583 E5pQ== X-Gm-Message-State: AOAM532rAY+P8VXx14VKS3VrywOC9wTQomK+pS2OmveGlfv/camwE+Mu 4q+lnpI2DytKUz58CFcW46wpmGMpQQ3Yj26Bc3b53tjjIj5yC0bnHwNTAF5sV+52VfYLfWsrMLO rGouI8Gcnv/bjHQ== X-Received: by 2002:a5d:5047:: with SMTP id h7mr1932971wrt.111.1615851348688; Mon, 15 Mar 2021 16:35:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxjTV5u83mAwmKvn9BTH0bMKimCZJxJmPKAv8yET+g/t8klfgFKaJsPLVxs/n8DPMQlP40BGA== X-Received: by 2002:a5d:5047:: with SMTP id h7mr1932956wrt.111.1615851348578; Mon, 15 Mar 2021 16:35:48 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Kevin Wolf , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Max Reitz , Bin Meng , David Edmondson Subject: [PULL 04/11] hw/block/pflash_cfi02: Set rom_mode to true in pflash_setup_mappings() Date: Tue, 16 Mar 2021 00:35:20 +0100 Message-Id: <20210315233527.2988483-5-philmd@redhat.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210315233527.2988483-1-philmd@redhat.com> References: <20210315233527.2988483-1-philmd@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=philmd@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) There is only one call to pflash_setup_mappings(). Convert 'rom_mode' to boolean and set it to true directly within pflash_setup_mappings(). Reviewed-by: Bin Meng Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: David Edmondson Message-Id: <20210310170528.1184868-5-philmd@redhat.com> --- hw/block/pflash_cfi02.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c index 845f50ed99b..0eb868ecd3d 100644 --- a/hw/block/pflash_cfi02.c +++ b/hw/block/pflash_cfi02.c @@ -108,7 +108,7 @@ struct PFlashCFI02 { MemoryRegion mem; MemoryRegion *mem_mappings; /* array; one per mapping */ MemoryRegion orig_mem; - int rom_mode; + bool rom_mode; int read_counter; /* used for lazy switch-back to rom mode */ int sectors_to_erase; uint64_t erase_time_remaining; @@ -181,12 +181,13 @@ static void pflash_setup_mappings(PFlashCFI02 *pfl) "pflash-alias", &pfl->orig_mem, 0, size); memory_region_add_subregion(&pfl->mem, i * size, &pfl->mem_mapping= s[i]); } + pfl->rom_mode =3D true; } =20 static void pflash_register_memory(PFlashCFI02 *pfl, int rom_mode) { memory_region_rom_device_set_romd(&pfl->orig_mem, rom_mode); - pfl->rom_mode =3D rom_mode; + pfl->rom_mode =3D !!rom_mode; } =20 static size_t pflash_regions_count(PFlashCFI02 *pfl) @@ -927,7 +928,6 @@ static void pflash_cfi02_realize(DeviceState *dev, Erro= r **errp) pfl->sector_erase_map =3D bitmap_new(pfl->total_sectors); =20 pflash_setup_mappings(pfl); - pfl->rom_mode =3D 1; sysbus_init_mmio(SYS_BUS_DEVICE(dev), &pfl->mem); =20 timer_init_ns(&pfl->timer, QEMU_CLOCK_VIRTUAL, pflash_timer, pfl); --=20 2.26.2 From nobody Sun May 19 00:47:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) client-ip=63.128.21.124; envelope-from=philmd@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615851357; cv=none; d=zohomail.com; s=zohoarc; b=QBu9EWr3KTEhb5eXRFnH3xAk5L84pxLcVJoBqKZ1pkx/4qMi/KT+KoqoEhaW08jHrFsBbiuZN5fxX53lCkeh1jETVITG5X2R11wjdrWGIGg5j9/aTq255wziQw1KGvr9Gj/m9MUYx7XANeN3KWWBM68ap2HCxgECVLVjdt5/uOQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615851357; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=6BBn5vssgsAAS7Wq1Lwd9IGurGqJO6B2sJ19UJyeK0Y=; b=QVtlsn1fNZxx/FSYmRqAPEdE4HvDieKZao6kKGRAtCUsjKs80IizgEkmVdVmXuhr1u4YsOyv/YEl5tFsA/mG/rZjyY/cMFosR5lexx9SEIlXEEs49r6KwHUKAPSkyVdS9hhwBLTEt1SYoy9lG2bxu0el5CAGWGE8paO4/gdgSb0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by mx.zohomail.com with SMTPS id 1615851357348766.4052769373583; Mon, 15 Mar 2021 16:35:57 -0700 (PDT) Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-290-wCb9VG7iP3mfeKv2yEG-0g-1; Mon, 15 Mar 2021 19:35:54 -0400 Received: by mail-wr1-f69.google.com with SMTP id i5so15766626wrp.8 for ; Mon, 15 Mar 2021 16:35:54 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.redhat.com (17.red-88-21-201.staticip.rima-tde.net. [88.21.201.17]) by smtp.gmail.com with ESMTPSA id h62sm1255531wmf.37.2021.03.15.16.35.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Mar 2021 16:35:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1615851356; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=6BBn5vssgsAAS7Wq1Lwd9IGurGqJO6B2sJ19UJyeK0Y=; b=iru9SNSGlQ57HPtkHv887BbpFF3QPs1rmtm/mrqwJX5GGcNsi8ryFCVC4V0HfGt/4YEJDy uOIJPuPIx8IoS06CeW3YNFsWzIEJcaIGV4RQIROsQTGG+L4UVpGJ+g4zTZo+7FF25Y0M7c DbeoqRv+F7/Oke3tdkwksIlGomZBrPE= X-MC-Unique: wCb9VG7iP3mfeKv2yEG-0g-1 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:mime-version:content-transfer-encoding; bh=6BBn5vssgsAAS7Wq1Lwd9IGurGqJO6B2sJ19UJyeK0Y=; b=T82C4uF+szBuGBPL6jYL5XbUIlSlh4v7AO6SPTQKmPKVRwzOZBiWGzbHOT5VBUU49i ImUo+jUr4cCdahtq973t+kwda2h9xTuFS2kRt6LjaMG5hj0uiCx6hRyMNlwOy5OMAowz qjNXEYFc8DnHNW3UzZY83W16rp2tfqmqQhGuy59tBZO55mu4ucjJSb19I0MxwhXW9W5c 7DfxeaCeQxM9zjJNpAmaDkY2rm3Drp/5p0zCYqyR04rNw4panqlbYn2s/jvEyRZA1sIi XZzM4y0n4f1dCsVnWQmctb0cG3m6S+3WnItxOTIJB1yNdB1ekV9wZbXuecFVTVQlgi31 WLXw== X-Gm-Message-State: AOAM533gJjfxXfIhO2gnJmeez2gazPSPA7ViYTkpJwBzpD2xRFg9yeBH ROcOA2uuzb4niQ0hvOuHQKlxVQEM3d/iz6goNQNboJhBPa3USw71/uXF5wC7/6UctiFqg2iNaNG w0W4PsNhWERIsYw== X-Received: by 2002:adf:a406:: with SMTP id d6mr1871469wra.141.1615851353413; Mon, 15 Mar 2021 16:35:53 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxr6EvMnnpRd7ctI9ReQD5eZVXh0zu8D2Tp/c24fnu9aFlweSYhWUOAQepxxyE6Ow+nmnktlw== X-Received: by 2002:adf:a406:: with SMTP id d6mr1871453wra.141.1615851353257; Mon, 15 Mar 2021 16:35:53 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Kevin Wolf , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Max Reitz , Bin Meng , David Edmondson Subject: [PULL 05/11] hw/block/pflash_cfi02: Open-code pflash_register_memory(rom=false) Date: Tue, 16 Mar 2021 00:35:21 +0100 Message-Id: <20210315233527.2988483-6-philmd@redhat.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210315233527.2988483-1-philmd@redhat.com> References: <20210315233527.2988483-1-philmd@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=philmd@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) There is only one call to pflash_register_memory() with rom_mode =3D=3D false. As we want to modify pflash_register_memory() in the next patch, open-code this trivial function in place for the 'rom_mode =3D=3D false' case. Reviewed-by: Bin Meng Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: David Edmondson Message-Id: <20210310170528.1184868-6-philmd@redhat.com> --- hw/block/pflash_cfi02.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c index 0eb868ecd3d..897b7333222 100644 --- a/hw/block/pflash_cfi02.c +++ b/hw/block/pflash_cfi02.c @@ -467,8 +467,10 @@ static void pflash_write(void *opaque, hwaddr offset, = uint64_t value, switch (pfl->wcycle) { case 0: /* Set the device in I/O access mode if required */ - if (pfl->rom_mode) - pflash_register_memory(pfl, 0); + if (pfl->rom_mode) { + pfl->rom_mode =3D false; + memory_region_rom_device_set_romd(&pfl->orig_mem, false); + } pfl->read_counter =3D 0; /* We're in read mode */ check_unlock0: --=20 2.26.2 From nobody Sun May 19 00:47:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=philmd@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615851361; cv=none; d=zohomail.com; s=zohoarc; b=hNM1Ha7z/trg9gRpZw0Fa/2wFGu6NiNyRKD5XKVMROd6+33BBouOvu9S+O0iNYf+EnzCMcUCBnRomZZzIifZxWXkuEuKNWFAtLEyGjRGCVmuEFI32OrcsGq3xRGE1fYZ/Wxyvg9ONQSFSPUMDrSGtlmmeRqoQn/mt2D+XiYW6AQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615851361; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=uT6abm4H76jpqtqGLNR7vVs+MKSt/qeaUN0Pbivwtic=; b=PWQ/SBc6pr3tcPDu/6y+gQ3z+Or81OQLbLgy+CoQJiqMx7Y0OmNG/Efl5kMm/6KrAOIH1L+OSlpr3oIsko5j5B8FiX5DYU17WX+7c1B64W75t7jbNz9TgBgqphlVr8nr8aEuvmvtQUu+k926hvk24dk67BRycxsgfyvLl3NTngo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1615851361808509.288496544204; Mon, 15 Mar 2021 16:36:01 -0700 (PDT) Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-206-El2WAetSO661axqXXk66sw-1; Mon, 15 Mar 2021 19:35:59 -0400 Received: by mail-wr1-f72.google.com with SMTP id z17so15749542wrv.23 for ; Mon, 15 Mar 2021 16:35:59 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.redhat.com (17.red-88-21-201.staticip.rima-tde.net. [88.21.201.17]) by smtp.gmail.com with ESMTPSA id z1sm19820837wru.95.2021.03.15.16.35.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Mar 2021 16:35:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1615851360; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=uT6abm4H76jpqtqGLNR7vVs+MKSt/qeaUN0Pbivwtic=; b=Nna1cT0gd9dMqw3L4kqP65EUQ8WTXiDRW0DQUKLV2IcJETDnLYD9Si+TOQeq9dgD7rvav8 8FF+neRre6feSL/iKDiDucbmmD1e7BJ6MtVdt7bxi7ZhKx039/mCS07IXOMi5LjDMSdqxH 1kF9UWbLLCvqpwvY3KroKy/9VSnMA9Q= X-MC-Unique: El2WAetSO661axqXXk66sw-1 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:mime-version:content-transfer-encoding; bh=uT6abm4H76jpqtqGLNR7vVs+MKSt/qeaUN0Pbivwtic=; b=Jl9D4LFENA9sSSsr5OS0O0mFihU6ieN1I3Xx3NPtb32+zss7vdjIl2O2GqlgoKfnVm Dmt6XOh3BYp0QY+hTHvcXTu/NbGJ/o5RsHgluQ8xIFJsZ3KqszK9HGz+sy86emBlk4co Up7mYD24X1H7PatzdBDDmvQaTZkwBYJR0krqAp/W925YY7u6Q2p1ZzPFnHkyVwxJRPH6 hk4qBSRaV37421nnwrP5TtJ7mvDruaDrU6tE80nagnzW69ehto00rNrUUXTcVEESzbMX jbf775QIYEUTEa3KpCwsq84xBGot3DwijIH5zTO5/v36Xj8e2PChX159TPY3mx/PmdSw 8hrg== X-Gm-Message-State: AOAM5325nKo/ZrlTwqYR8hve47axzRxChATTeI4WnGG2+FYtHcgt5KPl YnbYLWmL+MomRXGbV77Uy/P/iXwkALB4ufJtzJELpbqIUG1F7M//wQdWVyyeLh1JsXwZhdNNAQX BS7W9UWndGiKYXw== X-Received: by 2002:a1c:6a12:: with SMTP id f18mr1878132wmc.31.1615851358142; Mon, 15 Mar 2021 16:35:58 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwslWSj8UyNxbmLb306d/jPx9ZfnQC0j8kHVZr0vPWUTGhSW3fiUXEZmfXNxNiAgkxLqn2KCg== X-Received: by 2002:a1c:6a12:: with SMTP id f18mr1878115wmc.31.1615851358019; Mon, 15 Mar 2021 16:35:58 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Kevin Wolf , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Max Reitz , Bin Meng , David Edmondson Subject: [PULL 06/11] hw/block/pflash_cfi02: Rename register_memory(true) as mode_read_array Date: Tue, 16 Mar 2021 00:35:22 +0100 Message-Id: <20210315233527.2988483-7-philmd@redhat.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210315233527.2988483-1-philmd@redhat.com> References: <20210315233527.2988483-1-philmd@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=philmd@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) The same pattern is used when setting the flash in READ_ARRAY mode: - Set the state machine command to READ_ARRAY - Reset the write_cycle counter - Reset the memory region in ROMD Refactor the current code by extracting this pattern. It is used three times: - When the timer expires and not in bypass mode - On a read access (on invalid command). - When the device is initialized. Here the ROMD mode is hidden by the memory_region_init_rom_device() call. pflash_register_memory(rom_mode=3Dtrue) already sets the ROM device in "read array" mode (from I/O device to ROM one). Explicit that by renaming the function as pflash_mode_read_array(), adding a trace event and resetting wcycle. Reviewed-by: Bin Meng Reviewed-by: David Edmondson Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20210310170528.1184868-7-philmd@redhat.com> --- hw/block/pflash_cfi02.c | 18 +++++++++--------- hw/block/trace-events | 1 + 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c index 897b7333222..2ba77a0171b 100644 --- a/hw/block/pflash_cfi02.c +++ b/hw/block/pflash_cfi02.c @@ -184,10 +184,13 @@ static void pflash_setup_mappings(PFlashCFI02 *pfl) pfl->rom_mode =3D true; } =20 -static void pflash_register_memory(PFlashCFI02 *pfl, int rom_mode) +static void pflash_mode_read_array(PFlashCFI02 *pfl) { - memory_region_rom_device_set_romd(&pfl->orig_mem, rom_mode); - pfl->rom_mode =3D !!rom_mode; + trace_pflash_mode_read_array(); + pfl->cmd =3D 0x00; + pfl->wcycle =3D 0; + pfl->rom_mode =3D true; + memory_region_rom_device_set_romd(&pfl->orig_mem, true); } =20 static size_t pflash_regions_count(PFlashCFI02 *pfl) @@ -249,11 +252,10 @@ static void pflash_timer(void *opaque) toggle_dq7(pfl); if (pfl->bypass) { pfl->wcycle =3D 2; + pfl->cmd =3D 0; } else { - pflash_register_memory(pfl, 1); - pfl->wcycle =3D 0; + pflash_mode_read_array(pfl); } - pfl->cmd =3D 0; } =20 /* @@ -315,7 +317,7 @@ static uint64_t pflash_read(void *opaque, hwaddr offset= , unsigned int width) /* Lazy reset to ROMD mode after a certain amount of read accesses */ if (!pfl->rom_mode && pfl->wcycle =3D=3D 0 && ++pfl->read_counter > PFLASH_LAZY_ROMD_THRESHOLD) { - pflash_register_memory(pfl, 1); + pflash_mode_read_array(pfl); } offset &=3D pfl->chip_len - 1; boff =3D offset & 0xFF; @@ -933,8 +935,6 @@ 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; =20 pflash_cfi02_fill_cfi_table(pfl, nb_regions); diff --git a/hw/block/trace-events b/hw/block/trace-events index ef06d2ea747..6d0c43f9977 100644 --- a/hw/block/trace-events +++ b/hw/block/trace-events @@ -7,6 +7,7 @@ fdc_ioport_write(uint8_t reg, uint8_t value) "write reg 0x%= 02x val 0x%02x" # pflash_cfi01.c # pflash_cfi02.c pflash_reset(void) "reset" +pflash_mode_read_array(void) "mode: read array" pflash_timer_expired(uint8_t cmd) "command 0x%02x done" pflash_io_read(uint64_t offset, unsigned size, uint32_t value, uint8_t cmd= , uint8_t wcycle) "offset:0x%04"PRIx64" size:%u value:0x%04x cmd:0x%02x wcy= cle:%u" pflash_io_write(uint64_t offset, unsigned size, uint32_t value, uint8_t wc= ycle) "offset:0x%04"PRIx64" size:%u value:0x%04x wcycle:%u" --=20 2.26.2 From nobody Sun May 19 00:47:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) client-ip=63.128.21.124; envelope-from=philmd@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615851371; cv=none; d=zohomail.com; s=zohoarc; b=jvHqDm1IBOVBdt5lIc+HB1ojmmn2g8AS+kvyBBh7tZ9uJUp6VKxy5XOM2q4TwBWpsGw0FFJojdUhSCWeL3/y6EZaBfKe0fAlWms4/3Zh2AQsoS/mhI1VvXBXWfIj0M8syl5lWif0h+KYEHA2ywVgqmcplaHl6/VNWfIJXjD+2Ok= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615851371; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=muZkQ0IKHf/R89qkeqrt0bz15rr1YQyObQ9tTMk2SlU=; b=Ar3Kn8gu2AaP/qB7gNRPRixPPXm+2bX7i5fZ+egHA8NG9Hm0GIqX7iWPUWjDzP1jDIIItu1M5j0xgJgsIcPlgVXUHfqU7ZdV8cOn0BfdDbwFI4NO9Rt+FsPISWTB5DkOXRjraqgJf6DnWTltWC1D46Tl10Dvb8ojtwMvmNZW73A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by mx.zohomail.com with SMTPS id 1615851371522275.8568511290006; Mon, 15 Mar 2021 16:36:11 -0700 (PDT) Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-340-5NeFopyrOjm8QV0jA5sTeQ-1; Mon, 15 Mar 2021 19:36:04 -0400 Received: by mail-wr1-f71.google.com with SMTP id y5so15766362wrp.2 for ; Mon, 15 Mar 2021 16:36:04 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.redhat.com (17.red-88-21-201.staticip.rima-tde.net. [88.21.201.17]) by smtp.gmail.com with ESMTPSA id j203sm1241688wmj.40.2021.03.15.16.36.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Mar 2021 16:36:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1615851365; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=muZkQ0IKHf/R89qkeqrt0bz15rr1YQyObQ9tTMk2SlU=; b=eH7CN7HqUX5guH1C8rUDW2bsUrnv6o2hqr8h9IPHw6sP+fKv7KPq4KJv8FgCFaZWFwydAG vDG1lXMgMvnBwyy4dlak8O8I2LZzzkNpSqvDaKSfHdVYBFuqG13Y3ST4/F4LAFEehL/6bq Gqeev+9U++YujIwCWFucNEZQ+hO2swc= X-MC-Unique: 5NeFopyrOjm8QV0jA5sTeQ-1 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:mime-version:content-transfer-encoding; bh=muZkQ0IKHf/R89qkeqrt0bz15rr1YQyObQ9tTMk2SlU=; b=ZLUGGhdO1c67tEKYaoNtMsMQ4cKhJN6BpXp+4g5jGw753inmqmhjU3a8QMTOyny5fk ISM3raip35LouwjxDCMn6FDLzQvi2HmUBzUvWo+GdgQDmLe4qLyIXgEJG9yapGsf4aUV vGOhtWsGOn+2h4IGFdbxdikFWaN7ibhGdCiqcLWysRDuRILnqK5Vh/A4RoBi8J0rEvgF zG8e3IA99kfaAVRki6zzIiEPjjKuEy85njYYw3VrgwhbuwWxi+0UuaLYKsXI4R3EA06p 4BLnlXajnjQXPR29FP+DWnFRQ1GQ0FIvZua+UXXHvSIcUzD79vSIyzg5bPxVrQ03qTzf F/9g== X-Gm-Message-State: AOAM5309AKPBR2av+/1YfOjQ04xijRDex/1TR83Sur1FsRiF3qmyHqbU bCzLcPULrWhrtQK9hJ3v3JG3dqfzluJecwsLjESW1p6cf63XXzTxNTmB/8z5J0nH0XhYcykAgdM dTpnXt56S5fLZVA== X-Received: by 2002:adf:fe8d:: with SMTP id l13mr1800319wrr.81.1615851363080; Mon, 15 Mar 2021 16:36:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz31UX5rvsdVFYBr8xk+97EMblstySQgjomcDqO/tQighWgaajZKE3kDgvu5KRqH4ffT+GH4w== X-Received: by 2002:adf:fe8d:: with SMTP id l13mr1800311wrr.81.1615851362923; Mon, 15 Mar 2021 16:36:02 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Kevin Wolf , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Max Reitz , David Edmondson , Bin Meng Subject: [PULL 07/11] hw/block/pflash_cfi02: Factor out pflash_reset_state_machine() Date: Tue, 16 Mar 2021 00:35:23 +0100 Message-Id: <20210315233527.2988483-8-philmd@redhat.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210315233527.2988483-1-philmd@redhat.com> References: <20210315233527.2988483-1-philmd@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=philmd@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) There is multiple places resetting the internal state machine. Factor the code out in a new pflash_reset_state_machine() method. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: David Edmondson Reviewed-by: Bin Meng Message-Id: <20210310170528.1184868-8-philmd@redhat.com> --- hw/block/pflash_cfi02.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c index 2ba77a0171b..aea47a99c61 100644 --- a/hw/block/pflash_cfi02.c +++ b/hw/block/pflash_cfi02.c @@ -184,11 +184,17 @@ static void pflash_setup_mappings(PFlashCFI02 *pfl) pfl->rom_mode =3D true; } =20 +static void pflash_reset_state_machine(PFlashCFI02 *pfl) +{ + trace_pflash_reset(); + pfl->cmd =3D 0x00; + pfl->wcycle =3D 0; +} + static void pflash_mode_read_array(PFlashCFI02 *pfl) { trace_pflash_mode_read_array(); - pfl->cmd =3D 0x00; - pfl->wcycle =3D 0; + pflash_reset_state_machine(pfl); pfl->rom_mode =3D true; memory_region_rom_device_set_romd(&pfl->orig_mem, true); } @@ -330,8 +336,7 @@ static uint64_t pflash_read(void *opaque, hwaddr offset= , unsigned int width) 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_state_machine(pfl); /* fall through to the read code */ case 0x80: /* Erase (unlock) */ /* We accept reads during second unlock sequence... */ @@ -669,8 +674,7 @@ static void pflash_write(void *opaque, hwaddr offset, u= int64_t value, } reset_dq3(pfl); timer_del(&pfl->timer); - pfl->wcycle =3D 0; - pfl->cmd =3D 0; + pflash_reset_state_machine(pfl); return; } /* @@ -710,10 +714,8 @@ static void pflash_write(void *opaque, hwaddr offset, = uint64_t value, =20 /* Reset flash */ reset_flash: - trace_pflash_reset(); pfl->bypass =3D 0; - pfl->wcycle =3D 0; - pfl->cmd =3D 0; + pflash_reset_state_machine(pfl); return; =20 do_bypass: --=20 2.26.2 From nobody Sun May 19 00:47:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) client-ip=63.128.21.124; envelope-from=philmd@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615851379; cv=none; d=zohomail.com; s=zohoarc; b=dD0xDl1SU96TuM8DGs08pEquKPDtUgt5ACMafKtpKyIUthontG4eCyNoDvdmmNrNhOyz+KXHhZuEUTVHaAOkG/827xBqL191gw6F2VFiNtpsOvkouhhub8jExJKeSb1XSMSjwYTVyP7ElWep0mlmn9Q8DxMv6xtYi2S0mkcgaDI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615851379; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=lnrQakNgz3xw6kKukyoUyuKmgE+PSAVl9WkOaDLjwTQ=; b=GhA8ELUrQURvJkUw9i19y+L59Aq0WEuvCycCXtrILNEKxRhBn8XlVWKXMALrDP0h/5+PXDd9jmPQCcclvynetXTT745jrmqcmO98FKShc2ELlc63AnLW2elWGAHg8j1FFzymZOg0TRF4UXxFFYayJdBV3TvczRkMClmZnxrt2Kk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by mx.zohomail.com with SMTPS id 16158513796401017.9280420669394; Mon, 15 Mar 2021 16:36:19 -0700 (PDT) Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-548-F8A0uHFHMS2TJEp88MhNCQ-1; Mon, 15 Mar 2021 19:36:09 -0400 Received: by mail-wm1-f71.google.com with SMTP id n2so8868627wmi.2 for ; Mon, 15 Mar 2021 16:36:08 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.redhat.com (17.red-88-21-201.staticip.rima-tde.net. [88.21.201.17]) by smtp.gmail.com with ESMTPSA id e1sm21165694wrd.44.2021.03.15.16.36.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Mar 2021 16:36:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1615851370; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=lnrQakNgz3xw6kKukyoUyuKmgE+PSAVl9WkOaDLjwTQ=; b=LnDH67eIkPhoqiE1nw3yfTZeb7upbvi2374Gr8u+QGJYYWjhZzdRe983TrHorI7tZQDxVX nvkFIfIjkc0hAmwe8U86wh+XXpbFKS2vrSPRfusRNT8KwWIKV5bkggtXFquiDgIzTqRr/l Wb+iH9Qk7lrXecnl3pUs294FbEeA8c4= X-MC-Unique: F8A0uHFHMS2TJEp88MhNCQ-1 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:mime-version:content-transfer-encoding; bh=lnrQakNgz3xw6kKukyoUyuKmgE+PSAVl9WkOaDLjwTQ=; b=iukfFO/ajcpcvXFED6dR72OswzgX1GDyvlCVZIfwCfFsGJni6gcVob8K/11/nidUXt Rc1zEZq0gux1OtuhHMRd+SCFQ9eXm9xwE44hlTxfg4NF6SqgOwYgRtvaNkennPUdPSBJ x9VF3cE2DaZjzi2i2JShlRYMc/SkfCtFSSga20sDLNB+9C8NVjy81aUcGQiBwuK0rL+p Bo+xuehOWMoqkvbIJHC5o9yErB4yisU1tjp5Y/Fmx2AVxLWfguBL9+Co7EuP92vNBR52 AkesgUIIyQQgYaNogV1vXQ4cmH4ebUWPxMhryCyhzBcNt7qYeMuKefs4OrjXQSULMlX+ QupQ== X-Gm-Message-State: AOAM532NMKkwM0Co8QI4/0B3OAgHG/V0Ra7vco/7XR+D9zYRWPJRaV9O mFPcY4uVacjRw0fIESkI/b+E5XRnhbamJkDsJ70PH/DO/C3rMn8+dTFKasYs3RT5Eh9QYxTWBzp 5SjqSsRYCuUsLwg== X-Received: by 2002:adf:a2cf:: with SMTP id t15mr1978981wra.250.1615851367995; Mon, 15 Mar 2021 16:36:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzaOR9VDQ+9EVZEUXkA9MsnENZyiW5ktCn09EC0QJOCI0lRAcDGA5LfuAsa7qubCHk1oEYx5g== X-Received: by 2002:adf:a2cf:: with SMTP id t15mr1978971wra.250.1615851367840; Mon, 15 Mar 2021 16:36:07 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Kevin Wolf , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Max Reitz , David Edmondson , Bin Meng Subject: [PULL 08/11] hw/block/pflash_cfi02: Add DeviceReset method Date: Tue, 16 Mar 2021 00:35:24 +0100 Message-Id: <20210315233527.2988483-9-philmd@redhat.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210315233527.2988483-1-philmd@redhat.com> References: <20210315233527.2988483-1-philmd@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=philmd@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: David Edmondson Reviewed-by: Bin Meng Message-Id: <20210310170528.1184868-9-philmd@redhat.com> --- hw/block/pflash_cfi02.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c index aea47a99c61..c40febd2a41 100644 --- a/hw/block/pflash_cfi02.c +++ b/hw/block/pflash_cfi02.c @@ -942,6 +942,13 @@ static void pflash_cfi02_realize(DeviceState *dev, Err= or **errp) pflash_cfi02_fill_cfi_table(pfl, nb_regions); } =20 +static void pflash_cfi02_reset(DeviceState *dev) +{ + PFlashCFI02 *pfl =3D PFLASH_CFI02(dev); + + pflash_reset_state_machine(pfl); +} + static Property pflash_cfi02_properties[] =3D { DEFINE_PROP_DRIVE("drive", PFlashCFI02, blk), DEFINE_PROP_UINT32("num-blocks", PFlashCFI02, uniform_nb_blocs, 0), @@ -979,6 +986,7 @@ static void pflash_cfi02_class_init(ObjectClass *klass,= void *data) DeviceClass *dc =3D DEVICE_CLASS(klass); =20 dc->realize =3D pflash_cfi02_realize; + dc->reset =3D pflash_cfi02_reset; dc->unrealize =3D pflash_cfi02_unrealize; device_class_set_props(dc, pflash_cfi02_properties); set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); --=20 2.26.2 From nobody Sun May 19 00:47:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) client-ip=216.205.24.124; envelope-from=philmd@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615851376; cv=none; d=zohomail.com; s=zohoarc; b=hNpdEKPw8jwRh6uPrN0fXgUL2T2yyh6Rfdegsc/VIjRFBTnKnRAgSjW726i9H9Ico1rURXwbZUVPEzKwe/Fuvyt+HyAjzYuvW+uFbCvaWdtGUJtPqQohJX97e75B4HhfemCKF0EfIurJ2lmwKIDJFwAgQUZ57R2eo3t+2y+23mM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615851376; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=x+IDLwTWOrFHz8fuSTd2bsf4O8rILYVfhYt77um4UJ4=; b=NjBRnQ8p1ebNVjNBo1eCZSGXSmwAqKo+ThwN18bFBlF2YlH6aOcvSgLrytXg5E0TZ8cwumDyfNOJUxgUkAocCQvZZCyTCmfTyvFKQ5srS0GKduvl906zl3vhm4mFjfRyWqANxS9sPAEKgw4Ril/B/Wg8UDKrG/PcKctLffI+9pA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.zohomail.com with SMTPS id 161585137669744.04361009218894; Mon, 15 Mar 2021 16:36:16 -0700 (PDT) Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-567-r8eYad3dOzKMBhAq_jGacQ-1; Mon, 15 Mar 2021 19:36:14 -0400 Received: by mail-wr1-f71.google.com with SMTP id i5so15766942wrp.8 for ; Mon, 15 Mar 2021 16:36:14 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.redhat.com (17.red-88-21-201.staticip.rima-tde.net. [88.21.201.17]) by smtp.gmail.com with ESMTPSA id y18sm19949823wrq.61.2021.03.15.16.36.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Mar 2021 16:36:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1615851375; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=x+IDLwTWOrFHz8fuSTd2bsf4O8rILYVfhYt77um4UJ4=; b=B/R4owOC/DCuLtdH0rADVBaCKC63+YN3nuz2GUhOUG26MXW05OiPpXn7ffXj93tlTY8RrM kVO8y+hvfB0EXiYTSwa/28of6wa4A3up55XbXTrFbnDPLJB8lDkkrHG73B+/HOcrCmajTP hF6St2dqM2efcPyy0gZ9ug+Jh0de/oA= X-MC-Unique: r8eYad3dOzKMBhAq_jGacQ-1 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:mime-version:content-transfer-encoding; bh=x+IDLwTWOrFHz8fuSTd2bsf4O8rILYVfhYt77um4UJ4=; b=Rabq9EkRmmN7fqDVueXnKPPPJVRuyOc3sUKvXrNEpb1OSykPkO1RYHlNrBqalyEq7S dKwdKw28nD6V0jtYVJDBZQn3OmJm0UVSXOz8oj5MTEh/Ko45QmGzksHsk3UoHKPHAMsJ gYvAhtR3Fe8UGnMIXywJIYKYmzu1vpri6aA+zvE09BH04qv+DmulA0KMgbGjRdJlWDph lLLGJmKt4ANsPF+RVgm3eP5+Aouwzqo8726gXGGSdPwKi3xj+2UTr1wgB3NTid+HYtjR W31j03v+X8M8fg248QsDboRbpz3r5P/JpwcOcxqhKI8rKGpIn/g+VBDHtMEuHcyFKFmr ssSg== X-Gm-Message-State: AOAM533P6BG4CIJY0ZdBJzeZW4MDlFS2rTV1Ahj0EexHXKWiDXmsefKe jKZEiiyAgp/ZxfklJFnD2Flugie/N/N0T8kzjeQNR5/wl7vx5R98Nw8xdluyAkp3L2yJqjYEA/m pg4i+XspLgcx6qg== X-Received: by 2002:adf:ee8f:: with SMTP id b15mr1838978wro.314.1615851372808; Mon, 15 Mar 2021 16:36:12 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzdsqJkBc2sxoI8zyAR+y0KLKr+nMCjhEnfrrYgZkqhSPgmL5nJ1o5acctA5DilsoUjWbSF1w== X-Received: by 2002:adf:ee8f:: with SMTP id b15mr1838968wro.314.1615851372711; Mon, 15 Mar 2021 16:36:12 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Kevin Wolf , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Max Reitz , Bin Meng , David Edmondson Subject: [PULL 09/11] hw/block/pflash_cfi01: Clarify trace events Date: Tue, 16 Mar 2021 00:35:25 +0100 Message-Id: <20210315233527.2988483-10-philmd@redhat.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210315233527.2988483-1-philmd@redhat.com> References: <20210315233527.2988483-1-philmd@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=philmd@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Use the 'mode_read_array' event when we set the device in such mode, and use the 'reset' event in DeviceReset handler. Reviewed-by: Bin Meng Reviewed-by: David Edmondson Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20210310170528.1184868-10-philmd@redhat.com> --- hw/block/pflash_cfi01.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/block/pflash_cfi01.c b/hw/block/pflash_cfi01.c index 779a62f3b06..c8cecb3ac8b 100644 --- a/hw/block/pflash_cfi01.c +++ b/hw/block/pflash_cfi01.c @@ -663,7 +663,7 @@ static void pflash_write(PFlashCFI01 *pfl, hwaddr offse= t, "\n", __func__, offset, pfl->wcycle, pfl->cmd, value); =20 mode_read_array: - trace_pflash_reset(); + trace_pflash_mode_read_array(); memory_region_rom_device_set_romd(&pfl->mem, true); pfl->wcycle =3D 0; pfl->cmd =3D 0x00; /* This model reset value for READ_ARRAY (not CFI) = */ @@ -886,6 +886,7 @@ static void pflash_cfi01_system_reset(DeviceState *dev) { PFlashCFI01 *pfl =3D PFLASH_CFI01(dev); =20 + trace_pflash_reset(); /* * The command 0x00 is not assigned by the CFI open standard, * but QEMU historically uses it for the READ_ARRAY command (0xff). --=20 2.26.2 From nobody Sun May 19 00:47:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) client-ip=63.128.21.124; envelope-from=philmd@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615851382; cv=none; d=zohomail.com; s=zohoarc; b=VnmDsySY8KthqlCrDhxFtJdDooKucU3Frjbx1e8/VEv54TGo9NOuPfjSpxOFS220Dxvf37DIroGLcbN8KLZp1QP5h03thmWfodEw3VAWJjSyz8qp+IR0CEtRvP6MMLG/DSepmyGuANDJVv/ICDCoAlXCLJUe/EZ2dQb7RZsSTsQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615851382; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=kFOukHrsKh3tFqHSLJgmCEHyeHEq+25TAfb5+Ihzfn0=; b=SufRwrTWzHOnqBZgh+hWJGk35NPqBbuLFghXGXZ5jhbg3QLLaGiADXuY7UH2vWGxqwc0DjyQYCZdI71j9hiAyu+11T2e6ML3Q32R2Q1J0JR0ffuuLEVeSEgUBkJnjli3o0W98Lz3PxC2nZU3ZE6c/zng494A+q2QRjYTm12iGPY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by mx.zohomail.com with SMTPS id 1615851382631941.7847682610388; Mon, 15 Mar 2021 16:36:22 -0700 (PDT) Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-600-cLoPhwKVOO-Thc50gBYoiQ-1; Mon, 15 Mar 2021 19:36:18 -0400 Received: by mail-wr1-f72.google.com with SMTP id p15so15620105wre.13 for ; Mon, 15 Mar 2021 16:36:18 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.redhat.com (17.red-88-21-201.staticip.rima-tde.net. [88.21.201.17]) by smtp.gmail.com with ESMTPSA id v18sm21556747wrf.41.2021.03.15.16.36.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Mar 2021 16:36:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1615851380; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=kFOukHrsKh3tFqHSLJgmCEHyeHEq+25TAfb5+Ihzfn0=; b=YBiFicE5hm+luGiGsQd6gs2vD7/MHgvhWnNXpdAqU2crSPaVIMb4nqZQ8YKJP4858NyAn3 6JVo1Pn5OZduSDTTt1aq3yqYPCJ3C6YBKP6jPXIfe4bBxvuhxwXd0xWv7SPIC5F0cFulMK XVIwHnQqXAAGJ9Xt+X4TqVfDkvMox8w= X-MC-Unique: cLoPhwKVOO-Thc50gBYoiQ-1 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:mime-version:content-transfer-encoding; bh=kFOukHrsKh3tFqHSLJgmCEHyeHEq+25TAfb5+Ihzfn0=; b=LD6J2Oqvg/uUYqHbGof+R59TlN0nWNpcsqCCumb7k+fyMqBCXFooDyblZxUJsIiT2r xp0Lt2x/jkUMQJfmxc9OEJerxr3FpvK/AbJVgJY/OtPTaGU260LW2JEh+Wd7EuqK8AYS ioqWpWxQRl8zXTyYUvxAS1ezirUH23lOCL1KuE6XrOYcGNSLvHtYB5GoAFg5nCMTnV45 XaQMnYPOMtZ7OTT6Y/ah9MgFRf5HDZALvqVbcWQKUivTJ4b0t3T2fV2xiVPP1gtxiKG8 Jw6UT8i+RO9XjhE6XVop5WrQ6YAZLwepoS5VNMafeWmRkxINOVfNjuYVz9QfbO9q7xNX lS0A== X-Gm-Message-State: AOAM5332ZyDyuMhBDY0SZ2H+UA0y+jMSzeFiYvsczXgRYS3sArIQhIFv 0rfCVgeY07l12prL80DTAMT0bpxIXdrfMmg2+8MeLMCASD2kg0WMsPHy6WvGHOrDGrCE8Q8vU02 CTFXHe6WOX5YPRQ== X-Received: by 2002:a5d:6a86:: with SMTP id s6mr1929623wru.307.1615851377606; Mon, 15 Mar 2021 16:36:17 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyIXUG5F9v5pjox9o2ka8Bb2lfXtYcwQ4PPnPmrkxZAWGhCLV7SOw0yFyhGv0Ex1femia1vfQ== X-Received: by 2002:a5d:6a86:: with SMTP id s6mr1929616wru.307.1615851377516; Mon, 15 Mar 2021 16:36:17 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Kevin Wolf , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Max Reitz , David Edmondson , Bin Meng Subject: [PULL 10/11] hw/block/pflash_cfi01: Correct the type of PFlashCFI01.ro Date: Tue, 16 Mar 2021 00:35:26 +0100 Message-Id: <20210315233527.2988483-11-philmd@redhat.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210315233527.2988483-1-philmd@redhat.com> References: <20210315233527.2988483-1-philmd@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=philmd@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) From: David Edmondson PFlashCFI01.ro is a bool, declare it as such. Signed-off-by: David Edmondson Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20210216142721.1985543-3-david.edmondson@oracle.com> Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Bin Meng --- hw/block/pflash_cfi01.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/block/pflash_cfi01.c b/hw/block/pflash_cfi01.c index c8cecb3ac8b..07910356756 100644 --- a/hw/block/pflash_cfi01.c +++ b/hw/block/pflash_cfi01.c @@ -82,7 +82,7 @@ struct PFlashCFI01 { uint8_t max_device_width; /* max device width in bytes */ uint32_t features; uint8_t wcycle; /* if 0, the flash is read normally */ - int ro; + bool ro; uint8_t cmd; uint8_t status; uint16_t ident0; @@ -853,7 +853,7 @@ static void pflash_cfi01_realize(DeviceState *dev, Erro= r **errp) return; } } else { - pfl->ro =3D 0; + pfl->ro =3D false; } =20 if (pfl->blk) { --=20 2.26.2 From nobody Sun May 19 00:47:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) client-ip=216.205.24.124; envelope-from=philmd@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615851388; cv=none; d=zohomail.com; s=zohoarc; b=IoNmLawTFWGI+hDHN0VXu52F9BBJg8s1Re4cJoYD3RXTu4Cudn3pEEeOmLgTuPPtRu8BrO4wA3nC/l64ttnrw+2eEsZonbGH2LvRH09b2XegSamF6lrzvS5RNb6EqgcuHp79m6954lwczzwUnuPvQrKuJMCNTSPQS0hvnjFqs1s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615851388; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=V4adTVt/U7+50m7qPIpMik9xXEs+ifXzSHnNjjwA8HI=; b=KrOL7XBq2AVNYZSC5ZUGJg4ndKFXDXlB986j2qOZ7G2huntNLQ8lobibJLRBEe1oyQzXoVT0HOeFSfMQg0RmeyQKqgZGRKkTp4NG1uEsCFOPrc7jiZW9krAVghsB261EaHEFGENpyueVNvib1n/Jm2GA4A6Q/r6wetPxG7UCe4M= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.zohomail.com with SMTPS id 161585138856127.89307254910375; Mon, 15 Mar 2021 16:36:28 -0700 (PDT) Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-59-00cbuWZCPZeBGyc-WcF3lA-1; Mon, 15 Mar 2021 19:36:24 -0400 Received: by mail-wr1-f72.google.com with SMTP id h21so15628571wrc.19 for ; Mon, 15 Mar 2021 16:36:24 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.redhat.com (17.red-88-21-201.staticip.rima-tde.net. [88.21.201.17]) by smtp.gmail.com with ESMTPSA id j4sm1112720wmo.10.2021.03.15.16.36.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Mar 2021 16:36:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1615851386; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=V4adTVt/U7+50m7qPIpMik9xXEs+ifXzSHnNjjwA8HI=; b=CgmSdI6l1GhO+ipJcEXM+0yAL9/MTlcSo8WN8l9jzV4JsGbv3TwETk2Pn7sp3jwRCmXKgS ZXi44mNvHH78RGiPkggCT/c8nQZ0d0lOpBr1cIXLzUbBfHzULbHDgnTO1FQMYLHH11doPR Qxy+Pn732K78RtYMmzDLqL8tTFK3as0= X-MC-Unique: 00cbuWZCPZeBGyc-WcF3lA-1 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:mime-version:content-transfer-encoding; bh=V4adTVt/U7+50m7qPIpMik9xXEs+ifXzSHnNjjwA8HI=; b=hCM64paEuL0VE3+LM1vBT3e8F4Fc0jiZHQz2g3reBs/BUZP/9VQRWwTW7JXjJYd+wZ qDNN4t6kEXJ5n84yWO4kxUMuNz9kTYewHXG6Pc0XF1TRG8kaQQUvUDuMw8aGwz8wuaTE TgL4fa0GMLS5Y/oIrz7WgJ6tJsvC65LKodVKrDjCo1IKrX/ZZU/8j4HWw25a3R4ZewHY JFBxmREC7NUu09FSSddgBL3pZf/y9gAJ6+EhMJwegPQi5sfeMcM5YCyQyVqb0ycxUUcL Brmxvxl49LYYGv+e0uukoqIK18WrP/5OuSt/IaHhbpozzu0O4NE5IPEvJmW2iR1Yxj+7 3gEg== X-Gm-Message-State: AOAM533rjKRL7kykhuSDrfQ7M9+w9Kn2aQKvxbsH5JP5LqMtoHuGyu0Z m3hNuPVVnjriCr//ExCmmhKleeoofJDlL+wbg8ggb9CAJO+8Ih7A+SeBA+70viMkMOtYFa01rrP uYKsp6SGVpspP9g== X-Received: by 2002:a5d:4dd2:: with SMTP id f18mr1862996wru.366.1615851382649; Mon, 15 Mar 2021 16:36:22 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwUZ+fOwZ0waaUXNSSR4zpV4vJve3NGG1kJXMIZ1xsjC7byJ4Doa1E2I02ULbA3qekMmbxMug== X-Received: by 2002:a5d:4dd2:: with SMTP id f18mr1862982wru.366.1615851382412; Mon, 15 Mar 2021 16:36:22 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Kevin Wolf , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Max Reitz , David Edmondson , Bin Meng Subject: [PULL 11/11] hw/block/pflash_cfi: Replace DPRINTF with trace events Date: Tue, 16 Mar 2021 00:35:27 +0100 Message-Id: <20210315233527.2988483-12-philmd@redhat.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210315233527.2988483-1-philmd@redhat.com> References: <20210315233527.2988483-1-philmd@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=philmd@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) From: David Edmondson Rather than having a device specific debug implementation in pflash_cfi01.c and pflash_cfi02.c, use the standard tracing facility. Signed-off-by: David Edmondson Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20210216142721.1985543-2-david.edmondson@oracle.com> [PMD: Rebased] Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Bin Meng --- hw/block/pflash_cfi01.c | 80 +++++++++++++++++------------------------ hw/block/pflash_cfi02.c | 78 ++++++++++++++++------------------------ hw/block/trace-events | 41 +++++++++++++++------ 3 files changed, 95 insertions(+), 104 deletions(-) diff --git a/hw/block/pflash_cfi01.c b/hw/block/pflash_cfi01.c index 07910356756..81f9f971d88 100644 --- a/hw/block/pflash_cfi01.c +++ b/hw/block/pflash_cfi01.c @@ -56,16 +56,6 @@ #include "sysemu/runstate.h" #include "trace.h" =20 -/* #define PFLASH_DEBUG */ -#ifdef PFLASH_DEBUG -#define DPRINTF(fmt, ...) \ -do { \ - fprintf(stderr, "PFLASH: " fmt , ## __VA_ARGS__); \ -} while (0) -#else -#define DPRINTF(fmt, ...) do { } while (0) -#endif - #define PFLASH_BE 0 #define PFLASH_SECURE 1 =20 @@ -155,10 +145,8 @@ static uint32_t pflash_cfi_query(PFlashCFI01 *pfl, hwa= ddr offset) * wider part. */ if (pfl->device_width !=3D 1 || pfl->bank_width > 4) { - DPRINTF("%s: Unsupported device configuration: " - "device_width=3D%d, max_device_width=3D%d\n", - __func__, pfl->device_width, - pfl->max_device_width); + trace_pflash_unsupported_device_configuration(pfl->name, + pfl->device_width, pfl->max_device_wid= th); return 0; } /* CFI query data is repeated, rather than zero padded for @@ -210,14 +198,14 @@ static uint32_t pflash_devid_query(PFlashCFI01 *pfl, = hwaddr offset) switch (boff & 0xFF) { case 0: resp =3D pfl->ident0; - trace_pflash_manufacturer_id(resp); + trace_pflash_manufacturer_id(pfl->name, resp); break; case 1: resp =3D pfl->ident1; - trace_pflash_device_id(resp); + trace_pflash_device_id(pfl->name, resp); break; default: - trace_pflash_device_info(offset); + trace_pflash_device_info(pfl->name, offset); return 0; } /* Replicate responses for each device in bank. */ @@ -265,10 +253,9 @@ static uint32_t pflash_data_read(PFlashCFI01 *pfl, hwa= ddr offset, } break; default: - DPRINTF("BUG in %s\n", __func__); abort(); } - trace_pflash_data_read(offset, width, ret); + trace_pflash_data_read(pfl->name, offset, width, ret); return ret; } =20 @@ -282,7 +269,7 @@ static uint32_t pflash_read(PFlashCFI01 *pfl, hwaddr of= fset, switch (pfl->cmd) { default: /* This should never happen : reset state & treat it as a read */ - DPRINTF("%s: unknown command state: %x\n", __func__, pfl->cmd); + trace_pflash_read_unknown_state(pfl->name, pfl->cmd); pfl->wcycle =3D 0; /* * The command 0x00 is not assigned by the CFI open standard, @@ -320,7 +307,7 @@ static uint32_t pflash_read(PFlashCFI01 *pfl, hwaddr of= fset, */ ret |=3D pfl->status << 16; } - DPRINTF("%s: status %x\n", __func__, ret); + trace_pflash_read_status(pfl->name, ret); break; case 0x90: if (!pfl->device_width) { @@ -335,14 +322,14 @@ static uint32_t pflash_read(PFlashCFI01 *pfl, hwaddr = offset, switch (boff) { case 0: ret =3D pfl->ident0 << 8 | pfl->ident1; - trace_pflash_manufacturer_id(ret); + trace_pflash_manufacturer_id(pfl->name, ret); break; case 1: ret =3D pfl->ident2 << 8 | pfl->ident3; - trace_pflash_device_id(ret); + trace_pflash_device_id(pfl->name, ret); break; default: - trace_pflash_device_info(boff); + trace_pflash_device_info(pfl->name, boff); ret =3D 0; break; } @@ -389,7 +376,7 @@ static uint32_t pflash_read(PFlashCFI01 *pfl, hwaddr of= fset, =20 break; } - trace_pflash_io_read(offset, width, ret, pfl->cmd, pfl->wcycle); + trace_pflash_io_read(pfl->name, offset, width, ret, pfl->cmd, pfl->wcy= cle); =20 return ret; } @@ -419,7 +406,7 @@ static inline void pflash_data_write(PFlashCFI01 *pfl, = hwaddr offset, { uint8_t *p =3D pfl->storage; =20 - trace_pflash_data_write(offset, width, value, pfl->counter); + trace_pflash_data_write(pfl->name, offset, width, value, pfl->counter); switch (width) { case 1: p[offset] =3D value; @@ -458,7 +445,7 @@ static void pflash_write(PFlashCFI01 *pfl, hwaddr offse= t, =20 cmd =3D value; =20 - trace_pflash_io_write(offset, width, value, pfl->wcycle); + trace_pflash_io_write(pfl->name, offset, width, value, pfl->wcycle); if (!pfl->wcycle) { /* Set the device in I/O access mode */ memory_region_rom_device_set_romd(&pfl->mem, false); @@ -472,14 +459,13 @@ static void pflash_write(PFlashCFI01 *pfl, hwaddr off= set, goto mode_read_array; case 0x10: /* Single Byte Program */ case 0x40: /* Single Byte Program */ - DPRINTF("%s: Single Byte Program\n", __func__); + trace_pflash_write(pfl->name, "single byte program (0)"); break; case 0x20: /* Block erase */ p =3D pfl->storage; offset &=3D ~(pfl->sector_len - 1); =20 - DPRINTF("%s: block erase at " TARGET_FMT_plx " bytes %x\n", - __func__, offset, (unsigned)pfl->sector_len); + trace_pflash_write_block_erase(pfl->name, offset, pfl->sector_= len); =20 if (!pfl->ro) { memset(p + offset, 0xff, pfl->sector_len); @@ -490,25 +476,25 @@ static void pflash_write(PFlashCFI01 *pfl, hwaddr off= set, pfl->status |=3D 0x80; /* Ready! */ break; case 0x50: /* Clear status bits */ - DPRINTF("%s: Clear status bits\n", __func__); + trace_pflash_write(pfl->name, "clear status bits"); pfl->status =3D 0x0; goto mode_read_array; case 0x60: /* Block (un)lock */ - DPRINTF("%s: Block unlock\n", __func__); + trace_pflash_write(pfl->name, "block unlock"); break; case 0x70: /* Status Register */ - DPRINTF("%s: Read status register\n", __func__); + trace_pflash_write(pfl->name, "read status register"); pfl->cmd =3D cmd; return; case 0x90: /* Read Device ID */ - DPRINTF("%s: Read Device information\n", __func__); + trace_pflash_write(pfl->name, "read device information"); pfl->cmd =3D cmd; return; case 0x98: /* CFI query */ - DPRINTF("%s: CFI query\n", __func__); + trace_pflash_write(pfl->name, "CFI query"); break; case 0xe8: /* Write to buffer */ - DPRINTF("%s: Write to buffer\n", __func__); + trace_pflash_write(pfl->name, "write to buffer"); /* FIXME should save @offset, @width for case 1+ */ qemu_log_mask(LOG_UNIMP, "%s: Write to buffer emulation is flawed\n", @@ -516,10 +502,10 @@ static void pflash_write(PFlashCFI01 *pfl, hwaddr off= set, pfl->status |=3D 0x80; /* Ready! */ break; case 0xf0: /* Probe for AMD flash */ - DPRINTF("%s: Probe for AMD flash\n", __func__); + trace_pflash_write(pfl->name, "probe for AMD flash"); goto mode_read_array; case 0xff: /* Read Array */ - DPRINTF("%s: Read array mode\n", __func__); + trace_pflash_write(pfl->name, "read array mode"); goto mode_read_array; default: goto error_flash; @@ -531,7 +517,7 @@ static void pflash_write(PFlashCFI01 *pfl, hwaddr offse= t, switch (pfl->cmd) { case 0x10: /* Single Byte Program */ case 0x40: /* Single Byte Program */ - DPRINTF("%s: Single Byte Program\n", __func__); + trace_pflash_write(pfl->name, "single byte program (1)"); if (!pfl->ro) { pflash_data_write(pfl, offset, value, width, be); pflash_update(pfl, offset, width); @@ -563,7 +549,7 @@ static void pflash_write(PFlashCFI01 *pfl, hwaddr offse= t, } else { value =3D extract32(value, 0, pfl->bank_width * 8); } - DPRINTF("%s: block write of %x bytes\n", __func__, value); + trace_pflash_write_block(pfl->name, value); pfl->counter =3D value; pfl->wcycle++; break; @@ -577,7 +563,7 @@ static void pflash_write(PFlashCFI01 *pfl, hwaddr offse= t, } else if (cmd =3D=3D 0xff) { /* Read Array */ goto mode_read_array; } else { - DPRINTF("%s: Unknown (un)locking command\n", __func__); + trace_pflash_write(pfl->name, "unknown (un)locking command= "); goto mode_read_array; } break; @@ -585,7 +571,7 @@ static void pflash_write(PFlashCFI01 *pfl, hwaddr offse= t, if (cmd =3D=3D 0xff) { /* Read Array */ goto mode_read_array; } else { - DPRINTF("%s: leaving query mode\n", __func__); + trace_pflash_write(pfl->name, "leaving query mode"); } break; default: @@ -613,7 +599,7 @@ static void pflash_write(PFlashCFI01 *pfl, hwaddr offse= t, hwaddr mask =3D pfl->writeblock_size - 1; mask =3D ~mask; =20 - DPRINTF("%s: block write finished\n", __func__); + trace_pflash_write(pfl->name, "block write finished"); pfl->wcycle++; if (!pfl->ro) { /* Flush the entire write buffer onto backing storage.= */ @@ -652,7 +638,7 @@ static void pflash_write(PFlashCFI01 *pfl, hwaddr offse= t, break; default: /* Should never happen */ - DPRINTF("%s: invalid write state\n", __func__); + trace_pflash_write(pfl->name, "invalid write state"); goto mode_read_array; } return; @@ -663,7 +649,7 @@ static void pflash_write(PFlashCFI01 *pfl, hwaddr offse= t, "\n", __func__, offset, pfl->wcycle, pfl->cmd, value); =20 mode_read_array: - trace_pflash_mode_read_array(); + trace_pflash_mode_read_array(pfl->name); memory_region_rom_device_set_romd(&pfl->mem, true); pfl->wcycle =3D 0; pfl->cmd =3D 0x00; /* This model reset value for READ_ARRAY (not CFI) = */ @@ -886,7 +872,7 @@ static void pflash_cfi01_system_reset(DeviceState *dev) { PFlashCFI01 *pfl =3D PFLASH_CFI01(dev); =20 - trace_pflash_reset(); + trace_pflash_reset(pfl->name); /* * The command 0x00 is not assigned by the CFI open standard, * but QEMU historically uses it for the READ_ARRAY command (0xff). @@ -1041,7 +1027,7 @@ static void postload_update_cb(void *opaque, bool run= ning, RunState state) qemu_del_vm_change_state_handler(pfl->vmstate); pfl->vmstate =3D NULL; =20 - DPRINTF("%s: updating bdrv for %s\n", __func__, pfl->name); + trace_pflash_postload_cb(pfl->name); pflash_update(pfl, 0, pfl->sector_len * pfl->nb_blocs); } =20 diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c index c40febd2a41..25c053693ce 100644 --- a/hw/block/pflash_cfi02.c +++ b/hw/block/pflash_cfi02.c @@ -48,14 +48,6 @@ #include "migration/vmstate.h" #include "trace.h" =20 -#define PFLASH_DEBUG false -#define DPRINTF(fmt, ...) \ -do { \ - if (PFLASH_DEBUG) { \ - fprintf(stderr, "PFLASH: " fmt, ## __VA_ARGS__); \ - } \ -} while (0) - #define PFLASH_LAZY_ROMD_THRESHOLD 42 =20 /* @@ -186,14 +178,14 @@ static void pflash_setup_mappings(PFlashCFI02 *pfl) =20 static void pflash_reset_state_machine(PFlashCFI02 *pfl) { - trace_pflash_reset(); + trace_pflash_reset(pfl->name); pfl->cmd =3D 0x00; pfl->wcycle =3D 0; } =20 static void pflash_mode_read_array(PFlashCFI02 *pfl) { - trace_pflash_mode_read_array(); + trace_pflash_mode_read_array(pfl->name); pflash_reset_state_machine(pfl); pfl->rom_mode =3D true; memory_region_rom_device_set_romd(&pfl->orig_mem, true); @@ -231,7 +223,7 @@ static void pflash_timer(void *opaque) { PFlashCFI02 *pfl =3D opaque; =20 - trace_pflash_timer_expired(pfl->cmd); + trace_pflash_timer_expired(pfl->name, pfl->cmd); if (pfl->cmd =3D=3D 0x30) { /* * Sector erase. If DQ3 is 0 when the timer expires, then the 50 @@ -244,11 +236,10 @@ static void pflash_timer(void *opaque) uint64_t timeout =3D pflash_erase_time(pfl); timer_mod(&pfl->timer, qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + timeout); - DPRINTF("%s: erase timeout fired; erasing %d sectors\n", - __func__, pfl->sectors_to_erase); + trace_pflash_erase_timeout(pfl->name, pfl->sectors_to_erase); return; } - DPRINTF("%s: sector erase complete\n", __func__); + trace_pflash_erase_complete(pfl->name); bitmap_zero(pfl->sector_erase_map, pfl->total_sectors); pfl->sectors_to_erase =3D 0; reset_dq3(pfl); @@ -272,7 +263,7 @@ static uint64_t pflash_data_read(PFlashCFI02 *pfl, hwad= dr offset, { uint8_t *p =3D (uint8_t *)pfl->storage + offset; uint64_t ret =3D pfl->be ? ldn_be_p(p, width) : ldn_le_p(p, width); - trace_pflash_data_read(offset, width, ret); + trace_pflash_data_read(pfl->name, offset, width, ret); return ret; } =20 @@ -335,7 +326,7 @@ static uint64_t pflash_read(void *opaque, hwaddr offset= , unsigned int width) switch (pfl->cmd) { default: /* This should never happen : reset state & treat it as a read*/ - DPRINTF("%s: unknown command state: %x\n", __func__, pfl->cmd); + trace_pflash_read_unknown_state(pfl->name, pfl->cmd); pflash_reset_state_machine(pfl); /* fall through to the read code */ case 0x80: /* Erase (unlock) */ @@ -347,7 +338,7 @@ static uint64_t pflash_read(void *opaque, hwaddr offset= , unsigned int width) toggle_dq2(pfl); /* Status register read */ ret =3D pfl->status; - DPRINTF("%s: status %" PRIx64 "\n", __func__, ret); + trace_pflash_read_status(pfl->name, ret); break; } /* Flash area read */ @@ -372,7 +363,7 @@ static uint64_t pflash_read(void *opaque, hwaddr offset= , unsigned int width) default: ret =3D pflash_data_read(pfl, offset, width); } - DPRINTF("%s: ID " TARGET_FMT_plx " %" PRIx64 "\n", __func__, boff,= ret); + trace_pflash_read_done(pfl->name, boff, ret); break; case 0x10: /* Chip Erase */ case 0x30: /* Sector Erase */ @@ -384,7 +375,7 @@ static uint64_t pflash_read(void *opaque, hwaddr offset= , unsigned int width) toggle_dq6(pfl); /* Status register read */ ret =3D pfl->status; - DPRINTF("%s: status %" PRIx64 "\n", __func__, ret); + trace_pflash_read_status(pfl->name, ret); break; case 0x98: /* CFI query mode */ @@ -395,7 +386,7 @@ static uint64_t pflash_read(void *opaque, hwaddr offset= , unsigned int width) } break; } - trace_pflash_io_read(offset, width, ret, pfl->cmd, pfl->wcycle); + trace_pflash_io_read(pfl->name, offset, width, ret, pfl->cmd, pfl->wcy= cle); =20 return ret; } @@ -424,9 +415,8 @@ static void pflash_sector_erase(PFlashCFI02 *pfl, hwadd= r offset) SectorInfo sector_info =3D pflash_sector_info(pfl, offset); uint64_t sector_len =3D sector_info.len; offset &=3D ~(sector_len - 1); - DPRINTF("%s: start sector erase at %0*" PRIx64 "-%0*" PRIx64 "\n", - __func__, pfl->width * 2, offset, - pfl->width * 2, offset + sector_len - 1); + trace_pflash_sector_erase_start(pfl->name, pfl->width * 2, offset, + pfl->width * 2, offset + sector_len - = 1); if (!pfl->ro) { uint8_t *p =3D pfl->storage; memset(p + offset, 0xff, sector_len); @@ -447,7 +437,7 @@ static void pflash_write(void *opaque, hwaddr offset, u= int64_t value, uint8_t *p; uint8_t cmd; =20 - trace_pflash_io_write(offset, width, value, pfl->wcycle); + trace_pflash_io_write(pfl->name, offset, width, value, pfl->wcycle); cmd =3D value; if (pfl->cmd !=3D 0xA0) { /* Reset does nothing during chip erase and sector erase. */ @@ -507,27 +497,25 @@ static void pflash_write(void *opaque, hwaddr offset,= uint64_t value, return; } if (boff !=3D pfl->unlock_addr0 || cmd !=3D 0xAA) { - DPRINTF("%s: unlock0 failed " TARGET_FMT_plx " %02x %04x\n", - __func__, boff, cmd, pfl->unlock_addr0); + trace_pflash_unlock0_failed(pfl->name, boff, + cmd, pfl->unlock_addr0); goto reset_flash; } - DPRINTF("%s: unlock sequence started\n", __func__); + trace_pflash_write(pfl->name, "unlock sequence started"); break; case 1: /* We started an unlock sequence */ check_unlock1: if (boff !=3D pfl->unlock_addr1 || cmd !=3D 0x55) { - DPRINTF("%s: unlock1 failed " TARGET_FMT_plx " %02x\n", __func= __, - boff, cmd); + trace_pflash_unlock1_failed(pfl->name, boff, cmd); goto reset_flash; } - DPRINTF("%s: unlock sequence done\n", __func__); + trace_pflash_write(pfl->name, "unlock sequence done"); break; case 2: /* We finished an unlock sequence */ if (!pfl->bypass && boff !=3D pfl->unlock_addr0) { - DPRINTF("%s: command failed " TARGET_FMT_plx " %02x\n", __func= __, - boff, cmd); + trace_pflash_write_failed(pfl->name, boff, cmd); goto reset_flash; } switch (cmd) { @@ -538,10 +526,10 @@ static void pflash_write(void *opaque, hwaddr offset,= uint64_t value, case 0x90: /* Autoselect */ case 0xA0: /* Program */ pfl->cmd =3D cmd; - DPRINTF("%s: starting command %02x\n", __func__, cmd); + trace_pflash_write_start(pfl->name, cmd); break; default: - DPRINTF("%s: unknown command %02x\n", __func__, cmd); + trace_pflash_write_unknown(pfl->name, cmd); goto reset_flash; } break; @@ -559,7 +547,7 @@ static void pflash_write(void *opaque, hwaddr offset, u= int64_t value, } goto reset_flash; } - trace_pflash_data_write(offset, width, value, 0); + trace_pflash_data_write(pfl->name, offset, width, value, 0); if (!pfl->ro) { p =3D (uint8_t *)pfl->storage + offset; if (pfl->be) { @@ -597,8 +585,7 @@ static void pflash_write(void *opaque, hwaddr offset, u= int64_t value, } /* fall through */ default: - DPRINTF("%s: invalid write for command %02x\n", - __func__, pfl->cmd); + trace_pflash_write_invalid(pfl->name, pfl->cmd); goto reset_flash; } case 4: @@ -611,8 +598,7 @@ static void pflash_write(void *opaque, hwaddr offset, u= int64_t value, goto check_unlock1; default: /* Should never happen */ - DPRINTF("%s: invalid command state %02x (wc 4)\n", - __func__, pfl->cmd); + trace_pflash_write_invalid_state(pfl->name, pfl->cmd, 5); goto reset_flash; } break; @@ -624,12 +610,11 @@ static void pflash_write(void *opaque, hwaddr offset,= uint64_t value, switch (cmd) { case 0x10: /* Chip Erase */ if (boff !=3D pfl->unlock_addr0) { - DPRINTF("%s: chip erase: invalid address " TARGET_FMT_plx = "\n", - __func__, offset); + trace_pflash_chip_erase_invalid(pfl->name, offset); goto reset_flash; } /* Chip erase */ - DPRINTF("%s: start chip erase\n", __func__); + trace_pflash_chip_erase_start(pfl->name); if (!pfl->ro) { memset(pfl->storage, 0xff, pfl->chip_len); pflash_update(pfl, 0, pfl->chip_len); @@ -643,7 +628,7 @@ static void pflash_write(void *opaque, hwaddr offset, u= int64_t value, pflash_sector_erase(pfl, offset); break; default: - DPRINTF("%s: invalid command %02x (wc 5)\n", __func__, cmd); + trace_pflash_write_invalid_command(pfl->name, cmd); goto reset_flash; } pfl->cmd =3D cmd; @@ -693,19 +678,18 @@ static void pflash_write(void *opaque, hwaddr offset,= uint64_t value, return; default: /* Should never happen */ - DPRINTF("%s: invalid command state %02x (wc 6)\n", - __func__, pfl->cmd); + trace_pflash_write_invalid_state(pfl->name, pfl->cmd, 6); goto reset_flash; } break; /* Special values for CFI queries */ case WCYCLE_CFI: case WCYCLE_AUTOSELECT_CFI: - DPRINTF("%s: invalid write in CFI query mode\n", __func__); + trace_pflash_write(pfl->name, "invalid write in CFI query mode"); goto reset_flash; default: /* Should never happen */ - DPRINTF("%s: invalid write state (wc 7)\n", __func__); + trace_pflash_write(pfl->name, "invalid write state (wc 7)"); goto reset_flash; } pfl->wcycle++; diff --git a/hw/block/trace-events b/hw/block/trace-events index 6d0c43f9977..1e0d6108b9d 100644 --- a/hw/block/trace-events +++ b/hw/block/trace-events @@ -6,16 +6,37 @@ fdc_ioport_write(uint8_t reg, uint8_t value) "write reg 0= x%02x val 0x%02x" =20 # pflash_cfi01.c # pflash_cfi02.c -pflash_reset(void) "reset" -pflash_mode_read_array(void) "mode: read array" -pflash_timer_expired(uint8_t cmd) "command 0x%02x done" -pflash_io_read(uint64_t offset, unsigned size, uint32_t value, uint8_t cmd= , uint8_t wcycle) "offset:0x%04"PRIx64" size:%u value:0x%04x cmd:0x%02x wcy= cle:%u" -pflash_io_write(uint64_t offset, unsigned size, uint32_t value, uint8_t wc= ycle) "offset:0x%04"PRIx64" size:%u value:0x%04x wcycle:%u" -pflash_data_read(uint64_t offset, unsigned size, uint32_t value) "data off= set:0x%04"PRIx64" size:%u value:0x%04x" -pflash_data_write(uint64_t offset, unsigned size, uint32_t value, uint64_t= counter) "data offset:0x%04"PRIx64" size:%u value:0x%04x counter:0x%016"PR= Ix64 -pflash_manufacturer_id(uint16_t id) "Read Manufacturer ID: 0x%04x" -pflash_device_id(uint16_t id) "Read Device ID: 0x%04x" -pflash_device_info(uint64_t offset) "Read Device Information offset:0x%04"= PRIx64 +pflash_chip_erase_invalid(const char *name, uint64_t offset) "%s: chip era= se: invalid address 0x%" PRIx64 +pflash_chip_erase_start(const char *name) "%s: start chip erase" +pflash_data_read(const char *name, uint64_t offset, unsigned size, uint32_= t value) "%s: data offset:0x%04"PRIx64" size:%u value:0x%04x" +pflash_data_write(const char *name, uint64_t offset, unsigned size, uint32= _t value, uint64_t counter) "%s: data offset:0x%04"PRIx64" size:%u value:0x= %04x counter:0x%016"PRIx64 +pflash_device_id(const char *name, uint16_t id) "%s: read device ID: 0x%04= x" +pflash_device_info(const char *name, uint64_t offset) "%s: read device inf= ormation offset:0x%04" PRIx64 +pflash_erase_complete(const char *name) "%s: sector erase complete" +pflash_erase_timeout(const char *name, int count) "%s: erase timeout fired= ; erasing %d sectors" +pflash_io_read(const char *name, uint64_t offset, unsigned int size, uint3= 2_t value, uint8_t cmd, uint8_t wcycle) "%s: offset:0x%04" PRIx64 " size:%u= value:0x%04x cmd:0x%02x wcycle:%u" +pflash_io_write(const char *name, uint64_t offset, unsigned int size, uint= 32_t value, uint8_t wcycle) "%s: offset:0x%04"PRIx64" size:%u value:0x%04x = wcycle:%u" +pflash_manufacturer_id(const char *name, uint16_t id) "%s: read manufactur= er ID: 0x%04x" +pflash_mode_read_array(const char *name) "%s: read array mode" +pflash_postload_cb(const char *name) "%s: updating bdrv" +pflash_read_done(const char *name, uint64_t offset, uint64_t ret) "%s: ID:= 0x%" PRIx64 " ret:0x%" PRIx64 +pflash_read_status(const char *name, uint32_t ret) "%s: status:0x%x" +pflash_read_unknown_state(const char *name, uint8_t cmd) "%s: unknown comm= and state:0x%x" +pflash_reset(const char *name) "%s: reset" +pflash_sector_erase_start(const char *name, int width1, uint64_t start, in= t width2, uint64_t end) "%s: start sector erase at: 0x%0*" PRIx64 "-0x%0*" = PRIx64 +pflash_timer_expired(const char *name, uint8_t cmd) "%s: command 0x%02x do= ne" +pflash_unlock0_failed(const char *name, uint64_t offset, uint8_t cmd, uint= 16_t addr0) "%s: unlock0 failed 0x%" PRIx64 " 0x%02x 0x%04x" +pflash_unlock1_failed(const char *name, uint64_t offset, uint8_t cmd) "%s:= unlock0 failed 0x%" PRIx64 " 0x%02x" +pflash_unsupported_device_configuration(const char *name, uint8_t width, u= int8_t max) "%s: unsupported device configuration: device_width:%d max_devi= ce_width:%d" +pflash_write(const char *name, const char *str) "%s: %s" +pflash_write_block(const char *name, uint32_t value) "%s: block write: byt= es:0x%x" +pflash_write_block_erase(const char *name, uint64_t offset, uint64_t len) = "%s: block erase offset:0x%" PRIx64 " bytes:0x%lx" +pflash_write_failed(const char *name, uint64_t offset, uint8_t cmd) "%s: c= ommand failed 0x%" PRIx64 " 0x%02x" +pflash_write_invalid(const char *name, uint8_t cmd) "%s: invalid write for= command 0x%02x" +pflash_write_invalid_command(const char *name, uint8_t cmd) "%s: invalid c= ommand 0x%02x (wc 5)" +pflash_write_invalid_state(const char *name, uint8_t cmd, int wc) "%s: inv= alid command state 0x%02x (wc %d)" +pflash_write_start(const char *name, uint8_t cmd) "%s: starting command 0x= %02x" +pflash_write_unknown(const char *name, uint8_t cmd) "%s: unknown command 0= x%02x" =20 # virtio-blk.c virtio_blk_req_complete(void *vdev, void *req, int status) "vdev %p req %p= status %d" --=20 2.26.2