From nobody Fri May 3 08:48:35 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=1; a=rsa-sha256; t=1605523559; cv=none; d=zohomail.com; s=zohoarc; b=MhqD8lnWhsplp9SMQJOLN6IAkQwuCvL3HojwtfQ7rtup8mCk7NjYwHC/iiXWSgzRqIaOVeR85Q/K66GJ1hYJh5/uKIhEjIGza9434pSiKyUADpeG0DrRlWs46xj9qImmZtOhmhWweArEkhCa/top/y3sHA6VBLwpoQ6VuT+YkVw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1605523559; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Akn9LGrGk6tBq28UL+Pz3bJjrsPgeQbBktjNf7mK+B0=; b=INOo/gFZaf8ucZeCFXLDhY3u9BZjeGwd1zRXbH4iGdWMwGEJ+G2Fc8YaZko0ytADFlGPyPJfbluQe6+BEtw3He+dhPa58oo1WiuwZNPETkh85Ih+CUTQaTZoif0cpHO9FWT5gdH67+/4vGzb408VavMV4IpsmCsoaHJY7OYIOpY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1605523559413353.3472701054802; Mon, 16 Nov 2020 02:45:59 -0800 (PST) Received: from localhost ([::1]:50208 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kec1G-0003xZ-B4 for importer@patchew.org; Mon, 16 Nov 2020 05:45:58 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:34956) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kebxw-0007u4-6q; Mon, 16 Nov 2020 05:42:32 -0500 Received: from userp2120.oracle.com ([156.151.31.85]:54736) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kebxs-0000X6-V2; Mon, 16 Nov 2020 05:42:31 -0500 Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 0AGAdXE4021434; Mon, 16 Nov 2020 10:42:22 GMT Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by userp2120.oracle.com with ESMTP id 34t7vmvb29-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 16 Nov 2020 10:42:22 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 0AGAf9YT068418; Mon, 16 Nov 2020 10:42:21 GMT Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by aserp3020.oracle.com with ESMTP id 34umcwp45h-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Nov 2020 10:42:21 +0000 Received: from abhmp0019.oracle.com (abhmp0019.oracle.com [141.146.116.25]) by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id 0AGAgK1C004731; Mon, 16 Nov 2020 10:42:20 GMT Received: from disaster-area.hh.sledj.net (/81.187.26.238) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 16 Nov 2020 02:42:20 -0800 Received: from localhost (disaster-area.hh.sledj.net [local]) by disaster-area.hh.sledj.net (OpenSMTPD) with ESMTPA id 4b331949; Mon, 16 Nov 2020 10:42:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding; s=corp-2020-01-29; bh=Akn9LGrGk6tBq28UL+Pz3bJjrsPgeQbBktjNf7mK+B0=; b=CD/bSpUg/D3O7XRI2dUF9dv/nMUKJ4XjvqgC1zOvKthBToGrvTz9cMfVNsvpOmR3/ri1 f9SWH3CyakdEryexFcrQ7nEmT4Rm98Bi1ijQjoW5tkrtNeQWl+qti2rjgrkpbHG36FIc rROeUNL+i5Y4q1K28RLaKqpmFE6WdkIbf3b52Vopch3vSKBBa8CoYXXknF4zIk2H3WeJ ujyRzIa1Cfrhcha8yKo9PUXJs8/xUU+v26wfJb8QtcRnFCsrmVNxiYKmuwBxSdcFDN4/ Ou84woqdeRTT+uVAPqREOshXLOBT0U3Vax2+j5JdeIXINMaTZFVsRdW8fEiQQdqMr/xr sA== From: David Edmondson To: qemu-devel@nongnu.org Subject: [RFC PATCH 1/5] hw/block: blk_check_size_and_read_all should report backend name Date: Mon, 16 Nov 2020 10:42:12 +0000 Message-Id: <20201116104216.439650-2-david.edmondson@oracle.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201116104216.439650-1-david.edmondson@oracle.com> References: <20201116104216.439650-1-david.edmondson@oracle.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9806 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=1 mlxscore=0 phishscore=0 spamscore=0 bulkscore=0 mlxlogscore=999 malwarescore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2011160062 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9806 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=1 malwarescore=0 bulkscore=0 impostorscore=0 lowpriorityscore=0 spamscore=0 adultscore=0 mlxscore=0 priorityscore=1501 phishscore=0 clxscore=1011 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2011160062 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=156.151.31.85; envelope-from=david.edmondson@oracle.com; helo=userp2120.oracle.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/11/16 05:42:24 X-ACL-Warn: Detected OS = Linux 3.1-3.10 [fuzzy] X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Peter Maydell , qemu-block@nongnu.org, "Michael S. Tsirkin" , Max Reitz , David Edmondson , Shannon Zhao , qemu-arm@nongnu.org, Igor Mammedov , John Snow Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" If there are problems examining or reading data from the block backend, the error messages should include an appropriate identifier to assist in diagnoses. Signed-off-by: David Edmondson Reviewed-by: Alex Benn=C3=A9e --- hw/block/block.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/hw/block/block.c b/hw/block/block.c index 1e34573da7..8b284e1f14 100644 --- a/hw/block/block.c +++ b/hw/block/block.c @@ -20,9 +20,6 @@ * BDRV_REQUEST_MAX_BYTES. * On success, return true. * On failure, store an error through @errp and return false. - * Note that the error messages do not identify the block backend. - * TODO Since callers don't either, this can result in confusing - * errors. * This function not intended for actual block devices, which read on * demand. It's for things like memory devices that (ab)use a block * backend to provide persistence. @@ -32,17 +29,19 @@ bool blk_check_size_and_read_all(BlockBackend *blk, voi= d *buf, hwaddr size, { int64_t blk_len; int ret; + const char *name =3D blk_name(blk); =20 blk_len =3D blk_getlength(blk); if (blk_len < 0) { error_setg_errno(errp, -blk_len, - "can't get size of block backend"); + "can't get size of block backend %s", + name); return false; } if (blk_len !=3D size) { error_setg(errp, "device requires %" HWADDR_PRIu " bytes, " - "block backend provides %" PRIu64 " bytes", - size, blk_len); + "block backend %s provides %" PRIu64 " bytes", + size, name, blk_len); return false; } =20 @@ -55,7 +54,8 @@ bool blk_check_size_and_read_all(BlockBackend *blk, void = *buf, hwaddr size, assert(size <=3D BDRV_REQUEST_MAX_BYTES); ret =3D blk_pread(blk, 0, buf, size); if (ret < 0) { - error_setg_errno(errp, -ret, "can't read block backend"); + error_setg_errno(errp, -ret, "can't read block backend %s", + name); return false; } return true; --=20 2.28.0 From nobody Fri May 3 08:48:35 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=1; a=rsa-sha256; t=1605523564; cv=none; d=zohomail.com; s=zohoarc; b=ZgeZglj4Tq+0OQ5+/CuyIzrZvbmS1Opt+Wy2yfbguFApHFVzSgZobLZyB0f/4vZy0teOsb3vkUp5WxeVobKSp3PTF56QNuL9yfBFS7H9p6CiHBhPZnHLHwIcipu6XVnAYqgN6emposrut4LXWcZ4+HaUV0fnQAJg71q/YzZCITs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1605523564; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=eJwmRU5kFwrdMzXJxYRDPPGvwmbEIbAUidbEwMQXjsg=; b=V7yxnnDKyHtP30/ofvhCdHk7W95IOGFXQ9ysBg4mh8Dqc4VWj/8R9xtDnNGyUShXyg6XkhGB0lVy1VTgWgLXhmVNRy3iH3mGlhOjuUc0x14MWuGiLyP6CIWz1Q6/tULo0PW2eKs2PPAbEsYhzxD5nqDKOrBe5ZayicEgUVNxku0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1605523564764919.3519902470904; Mon, 16 Nov 2020 02:46:04 -0800 (PST) Received: from localhost ([::1]:50654 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kec1L-0004AX-Nz for importer@patchew.org; Mon, 16 Nov 2020 05:46:03 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:35278) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kebzs-0002Qc-MT; Mon, 16 Nov 2020 05:44:34 -0500 Received: from aserp2130.oracle.com ([141.146.126.79]:42704) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kebzp-0001F5-5a; Mon, 16 Nov 2020 05:44:32 -0500 Received: from pps.filterd (aserp2130.oracle.com [127.0.0.1]) by aserp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 0AGAeAwK126605; Mon, 16 Nov 2020 10:44:24 GMT Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by aserp2130.oracle.com with ESMTP id 34t4ramj7m-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 16 Nov 2020 10:44:24 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 0AGAeSgo129269; Mon, 16 Nov 2020 10:42:23 GMT Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by userp3030.oracle.com with ESMTP id 34ts5uhngj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Nov 2020 10:42:23 +0000 Received: from abhmp0019.oracle.com (abhmp0019.oracle.com [141.146.116.25]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id 0AGAgMwo025554; Mon, 16 Nov 2020 10:42:22 GMT Received: from disaster-area.hh.sledj.net (/81.187.26.238) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 16 Nov 2020 02:42:22 -0800 Received: from localhost (disaster-area.hh.sledj.net [local]) by disaster-area.hh.sledj.net (OpenSMTPD) with ESMTPA id 1d9dce61; Mon, 16 Nov 2020 10:42:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding; s=corp-2020-01-29; bh=eJwmRU5kFwrdMzXJxYRDPPGvwmbEIbAUidbEwMQXjsg=; b=g0GLCoHMUUT463eDlWNVnvN1H5m5WLBv3ASIpZ230XwhZohTrCYQnJ7ZPWaHTfaHb+b7 z8mLXxrabdb+sNaod0a91YJPTFhEso47MWooRGqcRyMd+MiamMxzNkhuTEpMDZOKFYac yQ8vVzn+9Q7ClDf7nFAYAJPiaRhGvZNw6HR+rKKiA+q/dP0mdAytSQnJmvHetSzvpnak k5P9ppbZZs1x7k/+y+TBHi5v03Le/TCPLeDUl+rG1LF49ItvsQBEcWf+GMFD7zx3UWoY XSiQ5twN4ZvPzJzh/iVCoKMoXC71+uWuW3i5lBH7w8mB4u1RsPDuHpGd01jbikYUCSRK /g== From: David Edmondson To: qemu-devel@nongnu.org Subject: [RFC PATCH 2/5] hw/block: Flash images can be smaller than the device Date: Mon, 16 Nov 2020 10:42:13 +0000 Message-Id: <20201116104216.439650-3-david.edmondson@oracle.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201116104216.439650-1-david.edmondson@oracle.com> References: <20201116104216.439650-1-david.edmondson@oracle.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9806 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 spamscore=0 phishscore=0 suspectscore=1 mlxscore=0 malwarescore=0 bulkscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2011160062 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9806 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 clxscore=1015 malwarescore=0 impostorscore=0 lowpriorityscore=0 priorityscore=1501 mlxlogscore=999 adultscore=0 phishscore=0 suspectscore=1 spamscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2011160062 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=141.146.126.79; envelope-from=david.edmondson@oracle.com; helo=aserp2130.oracle.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/11/16 05:42:28 X-ACL-Warn: Detected OS = Linux 3.1-3.10 [fuzzy] X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Peter Maydell , qemu-block@nongnu.org, "Michael S. Tsirkin" , Max Reitz , David Edmondson , Shannon Zhao , qemu-arm@nongnu.org, Igor Mammedov , John Snow Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" When loading a flash image into a device, allow the image to be smaller than the extent of the device. Signed-off-by: David Edmondson --- hw/block/block.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/hw/block/block.c b/hw/block/block.c index 8b284e1f14..40262546bd 100644 --- a/hw/block/block.c +++ b/hw/block/block.c @@ -16,8 +16,8 @@ =20 /* * Read the entire contents of @blk into @buf. - * @blk's contents must be @size bytes, and @size must be at most - * BDRV_REQUEST_MAX_BYTES. + * @blk's contents must not be more than @size bytes, and must be at + * most BDRV_REQUEST_MAX_BYTES in length. * On success, return true. * On failure, store an error through @errp and return false. * This function not intended for actual block devices, which read on @@ -38,10 +38,10 @@ bool blk_check_size_and_read_all(BlockBackend *blk, voi= d *buf, hwaddr size, name); return false; } - if (blk_len !=3D size) { - error_setg(errp, "device requires %" HWADDR_PRIu " bytes, " - "block backend %s provides %" PRIu64 " bytes", - size, name, blk_len); + if (blk_len > size) { + error_setg(errp, "block backend %s is too large for device " + "(%" PRIu64 " > %" HWADDR_PRIu ")", + name, blk_len, size); return false; } =20 @@ -51,8 +51,8 @@ bool blk_check_size_and_read_all(BlockBackend *blk, void = *buf, hwaddr size, * should probably rework the device to be more like an actual * block device and read only on demand. */ - assert(size <=3D BDRV_REQUEST_MAX_BYTES); - ret =3D blk_pread(blk, 0, buf, size); + assert(blk_len <=3D BDRV_REQUEST_MAX_BYTES); + ret =3D blk_pread(blk, 0, buf, blk_len); if (ret < 0) { error_setg_errno(errp, -ret, "can't read block backend %s", name); --=20 2.28.0 From nobody Fri May 3 08:48:35 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=1; a=rsa-sha256; t=1605523493; cv=none; d=zohomail.com; s=zohoarc; b=BndfQcwrQmBJ1lbswbtkGCOyakU0Lxqivi/XMvLvBhgSgyDTjcgto/Ymn3xnvEfQDDec6R7LMtWmGkqcA9aqHmTphC2eZjlpc7tzYPOwtr9IW0Z2Cdw4Fa3cwphcnlRePW4S2pTfur2CyYV1uisEKJki4l8d11okzKGChC77PLI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1605523493; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=1e4vV3wlhhx5BC8mV3U4uDQtSCmNzl4GULkfYr69znw=; b=KOEtDo+1+MKn3N7OdxInA+IdUhukaDjtA8D605lUWN7wJJL5q9mn1IpvF3fHK5FJTfmcb7sBtV+Ie+kV0hYy8LTnLL6rt+cP7jLeNf+t8Gn71YpXtE+9MqGOJYtpgwbTWMIRTKODO3+aq3Ey6YJ4N4ceZ55EijNoU55xtuaWuDU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 16055234932931018.9410526815989; Mon, 16 Nov 2020 02:44:53 -0800 (PST) Received: from localhost ([::1]:45852 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kec0B-000294-F6 for importer@patchew.org; Mon, 16 Nov 2020 05:44:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:34992) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1keby0-0007zd-1a; Mon, 16 Nov 2020 05:42:36 -0500 Received: from aserp2120.oracle.com ([141.146.126.78]:35562) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kebxu-0000Y4-Kn; Mon, 16 Nov 2020 05:42:35 -0500 Received: from pps.filterd (aserp2120.oracle.com [127.0.0.1]) by aserp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 0AGAe6h2177707; Mon, 16 Nov 2020 10:42:26 GMT Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by aserp2120.oracle.com with ESMTP id 34t76kmcw8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 16 Nov 2020 10:42:26 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 0AGAf9JE068409; Mon, 16 Nov 2020 10:42:25 GMT Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by aserp3020.oracle.com with ESMTP id 34umcwp46p-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Nov 2020 10:42:25 +0000 Received: from abhmp0012.oracle.com (abhmp0012.oracle.com [141.146.116.18]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id 0AGAgOH1016868; Mon, 16 Nov 2020 10:42:24 GMT Received: from disaster-area.hh.sledj.net (/81.187.26.238) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 16 Nov 2020 02:42:23 -0800 Received: from localhost (disaster-area.hh.sledj.net [local]) by disaster-area.hh.sledj.net (OpenSMTPD) with ESMTPA id 9e778f86; Mon, 16 Nov 2020 10:42:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding; s=corp-2020-01-29; bh=1e4vV3wlhhx5BC8mV3U4uDQtSCmNzl4GULkfYr69znw=; b=bD/pjXJdHuaLgjhhAGpBJQrortX2z0F5N+Q7R0/EZOyzskH5q63kLXv9zHKTJaqJQdWR QrVBxdBO+4AYMSxs74oNYYqJ0VWYkoHZqJ/x7ZH6g3oRPv27ftIpkjbU1Al+wVeaYYHj A1yMHxpuj2vRc+kBhSNBm1kb7/4EjEHAH47IZ/yzstKcPBTvhpM9sZeYxu9psUKy+ufu hheMOEFHtnPf6SAnM2DLbhXkmSMAJGAM7W5nYxNWvTw/ZKs4gWhBjUMGlaqan6v95e9Z W/kn42UiuxeNZqagJs9ozSe8B+lIZbBsSVohn88WtBSzQiuI0trUOS1ba1P9jivLM6r0 kw== From: David Edmondson To: qemu-devel@nongnu.org Subject: [RFC PATCH 3/5] hw/arm: Convert assertions about flash image size to error_report Date: Mon, 16 Nov 2020 10:42:14 +0000 Message-Id: <20201116104216.439650-4-david.edmondson@oracle.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201116104216.439650-1-david.edmondson@oracle.com> References: <20201116104216.439650-1-david.edmondson@oracle.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9806 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=1 mlxscore=0 phishscore=0 spamscore=0 bulkscore=0 mlxlogscore=999 malwarescore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2011160062 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9806 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=1 phishscore=0 adultscore=0 priorityscore=1501 bulkscore=0 clxscore=1015 mlxlogscore=999 malwarescore=0 mlxscore=0 spamscore=0 lowpriorityscore=0 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2011160062 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=141.146.126.78; envelope-from=david.edmondson@oracle.com; helo=aserp2120.oracle.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/11/16 05:42:28 X-ACL-Warn: Detected OS = Linux 3.1-3.10 [fuzzy] X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Peter Maydell , qemu-block@nongnu.org, "Michael S. Tsirkin" , Max Reitz , David Edmondson , Shannon Zhao , qemu-arm@nongnu.org, Igor Mammedov , John Snow Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Rather than throwing an assertion, provide a more detailed report if a flash image is inappropriately sized or aligned. Signed-off-by: David Edmondson Reviewed-by: Alex Benn=C3=A9e --- hw/arm/virt.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 27dbeb549e..f9f10987dc 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -967,9 +967,21 @@ static void virt_flash_map1(PFlashCFI01 *flash, MemoryRegion *sysmem) { DeviceState *dev =3D DEVICE(flash); + const char *name =3D blk_name(pflash_cfi01_get_blk(flash)); + + if (size =3D=3D 0 || !QEMU_IS_ALIGNED(size, VIRT_FLASH_SECTOR_SIZE)) { + error_report("system firmware block device %s has invalid size " + "%" PRId64, name, size); + info_report("its size must be a non-zero multiple of 0x%" PRIx64, + VIRT_FLASH_SECTOR_SIZE); + exit(1); + } + if (!(size / VIRT_FLASH_SECTOR_SIZE <=3D UINT32_MAX)) { + error_report("system firmware block device %s is too large " + "(%" PRId64 ")", name, size); + exit(1); + } =20 - assert(QEMU_IS_ALIGNED(size, VIRT_FLASH_SECTOR_SIZE)); - assert(size / VIRT_FLASH_SECTOR_SIZE <=3D UINT32_MAX); qdev_prop_set_uint32(dev, "num-blocks", size / VIRT_FLASH_SECTOR_SIZE); sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); =20 --=20 2.28.0 From nobody Fri May 3 08:48:35 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=1; a=rsa-sha256; t=1605523760; cv=none; d=zohomail.com; s=zohoarc; b=dWdzntE58r4AIPl3ehQl8b75rwA1bscLRePSZshAdwGZ/gkfvetelU7CjgURk7Q13Va7ZSruYpafcN7ZOJuWeJEFv0QuMW3pe7Vc61/0ALOWmxksLTENT9FgSFE7fLSUdNxUnyxPcoJC7aqXwST8ABHJIVS8n+FNHOPTA6wBgUw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1605523760; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Ig7ZX54D3gJ7u/x4bH9mITVitb1U3FNzzy73EbHWHoU=; b=Su0Cvbowvc67mIBmU8J59vVVMroDwq9tUp3rtppPvYU3k/23YKWDwfvEQ3/NHzlqoHjTYRKG44VQwvvMkYy6U4MuTU6n7sp793Gkphv1cvS13V9W/vYu/r+409ysvNtv5dfI6hyt5wpe9SptMqNacU3g69rI60llkMJ87fgKol0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1605523760957970.9940865206397; Mon, 16 Nov 2020 02:49:20 -0800 (PST) Received: from localhost ([::1]:54994 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kec4V-0006Bp-Qo for importer@patchew.org; Mon, 16 Nov 2020 05:49:19 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:34988) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kebxx-0007xF-Ei; Mon, 16 Nov 2020 05:42:35 -0500 Received: from aserp2130.oracle.com ([141.146.126.79]:41330) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kebxu-0000YD-LP; Mon, 16 Nov 2020 05:42:33 -0500 Received: from pps.filterd (aserp2130.oracle.com [127.0.0.1]) by aserp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 0AGAeAO7126607; Mon, 16 Nov 2020 10:42:26 GMT Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by aserp2130.oracle.com with ESMTP id 34t4ramj0c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 16 Nov 2020 10:42:26 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 0AGAfAqi068479; Mon, 16 Nov 2020 10:42:25 GMT Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by aserp3020.oracle.com with ESMTP id 34umcwp46s-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Nov 2020 10:42:25 +0000 Received: from abhmp0019.oracle.com (abhmp0019.oracle.com [141.146.116.25]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id 0AGAgOeP025557; Mon, 16 Nov 2020 10:42:24 GMT Received: from disaster-area.hh.sledj.net (/81.187.26.238) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 16 Nov 2020 02:42:23 -0800 Received: from localhost (disaster-area.hh.sledj.net [local]) by disaster-area.hh.sledj.net (OpenSMTPD) with ESMTPA id b3324a9f; Mon, 16 Nov 2020 10:42:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding; s=corp-2020-01-29; bh=Ig7ZX54D3gJ7u/x4bH9mITVitb1U3FNzzy73EbHWHoU=; b=NfnEDe58+ydU7TjAXAYgeCBV4B6Sc2L6sYtxv69ADqpkG/d+Tn6JJOrblYmz1jPiKcpb iFC60Uj5zoMtZJGOKoVAT+4RUD16SJRUAbwTYmJHDCQgeFn0hu4RgGBtIMNpBExeN6SU vwbBuydhJKohTmOrMXJK7XIfB2Ad6vn4amqjeabO3EQM0+apzxP7y26Lo2etlzr8CnRf lUwBQ+wiZlsXv4+BBaz0hn35sMrl7pVMeMfhVn6Q2G7wstQamLrRopjh9lccKbeDWqjo M1HMssBZCAnnnDmOBkEfd+QDdpA6fx6kLSKyvEvYv3tLpUQ2SGeALkgNOC12XZ0dHIS1 7A== From: David Edmondson To: qemu-devel@nongnu.org Subject: [RFC PATCH 4/5] hw/arm: Flash image mapping follows image size Date: Mon, 16 Nov 2020 10:42:15 +0000 Message-Id: <20201116104216.439650-5-david.edmondson@oracle.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201116104216.439650-1-david.edmondson@oracle.com> References: <20201116104216.439650-1-david.edmondson@oracle.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9806 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=3 mlxscore=0 phishscore=0 spamscore=0 bulkscore=0 mlxlogscore=999 malwarescore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2011160062 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9806 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 clxscore=1015 malwarescore=0 impostorscore=0 lowpriorityscore=0 priorityscore=1501 mlxlogscore=999 adultscore=0 phishscore=0 suspectscore=3 spamscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2011160062 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=141.146.126.79; envelope-from=david.edmondson@oracle.com; helo=aserp2130.oracle.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/11/16 05:42:28 X-ACL-Warn: Detected OS = Linux 3.1-3.10 [fuzzy] X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Peter Maydell , qemu-block@nongnu.org, "Michael S. Tsirkin" , Max Reitz , David Edmondson , Shannon Zhao , qemu-arm@nongnu.org, Igor Mammedov , John Snow Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" When mapping flash images into the bottom 128MB, create mappings that match the size of the underlying block device rather than 64MB. Signed-off-by: David Edmondson --- hw/arm/trace-events | 2 + hw/arm/virt-acpi-build.c | 29 ++++++++------- hw/arm/virt.c | 79 +++++++++++++++++++++------------------- include/hw/arm/virt.h | 1 + 4 files changed, 60 insertions(+), 51 deletions(-) diff --git a/hw/arm/trace-events b/hw/arm/trace-events index a335ee891d..a9174f8fba 100644 --- a/hw/arm/trace-events +++ b/hw/arm/trace-events @@ -53,3 +53,5 @@ smmuv3_notify_flag_add(const char *iommu) "ADD SMMUNotifi= er node for iommu mr=3D%s smmuv3_notify_flag_del(const char *iommu) "DEL SMMUNotifier node for iommu= mr=3D%s" smmuv3_inv_notifiers_iova(const char *name, uint16_t asid, uint64_t iova, = uint8_t tg, uint64_t num_pages) "iommu mr=3D%s asid=3D%d iova=3D0x%"PRIx64"= tg=3D%d num_pages=3D0x%"PRIx64 =20 +# virt.c +virt_flash_map1(const char *name, uint64_t base, uint64_t size) "map %s at= 0x%"PRIx64" + 0x%"PRIx64 diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c index 9747a6458f..2c08d36624 100644 --- a/hw/arm/virt-acpi-build.c +++ b/hw/arm/virt-acpi-build.c @@ -102,28 +102,31 @@ static void acpi_dsdt_add_fw_cfg(Aml *scope, const Me= mMapEntry *fw_cfg_memmap) aml_append(scope, dev); } =20 -static void acpi_dsdt_add_flash(Aml *scope, const MemMapEntry *flash_memma= p) +static void acpi_dsdt_add_flash1(Aml *scope, int index, + hwaddr base, hwaddr size) { Aml *dev, *crs; - hwaddr base =3D flash_memmap->base; - hwaddr size =3D flash_memmap->size / 2; =20 - dev =3D aml_device("FLS0"); + dev =3D aml_device("FLS%u", index); aml_append(dev, aml_name_decl("_HID", aml_string("LNRO0015"))); - aml_append(dev, aml_name_decl("_UID", aml_int(0))); + aml_append(dev, aml_name_decl("_UID", aml_int(index))); =20 crs =3D aml_resource_template(); aml_append(crs, aml_memory32_fixed(base, size, AML_READ_WRITE)); aml_append(dev, aml_name_decl("_CRS", crs)); aml_append(scope, dev); +} =20 - dev =3D aml_device("FLS1"); - aml_append(dev, aml_name_decl("_HID", aml_string("LNRO0015"))); - aml_append(dev, aml_name_decl("_UID", aml_int(1))); - crs =3D aml_resource_template(); - aml_append(crs, aml_memory32_fixed(base + size, size, AML_READ_WRITE)); - aml_append(dev, aml_name_decl("_CRS", crs)); - aml_append(scope, dev); +static void acpi_dsdt_add_flash(Aml *scope, const MemMapEntry *flash_memma= p, + PFlashCFI01 *flash[2]) +{ + acpi_dsdt_add_flash1(scope, 0, + flash_memmap->base, + virt_flash_size(flash[0])); + + acpi_dsdt_add_flash1(scope, 1, + flash_memmap->base + flash_memmap->size / 2, + virt_flash_size(flash[1])); } =20 static void acpi_dsdt_add_virtio(Aml *scope, @@ -603,7 +606,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker, Virt= MachineState *vms) acpi_dsdt_add_uart(scope, &memmap[VIRT_UART], (irqmap[VIRT_UART] + ARM_SPI_BASE)); if (vmc->acpi_expose_flash) { - acpi_dsdt_add_flash(scope, &memmap[VIRT_FLASH]); + acpi_dsdt_add_flash(scope, &memmap[VIRT_FLASH], vms->flash); } acpi_dsdt_add_fw_cfg(scope, &memmap[VIRT_FW_CFG]); acpi_dsdt_add_virtio(scope, &memmap[VIRT_MMIO], diff --git a/hw/arm/virt.c b/hw/arm/virt.c index f9f10987dc..03ec844bf3 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -50,6 +50,7 @@ #include "sysemu/sysemu.h" #include "sysemu/tpm.h" #include "sysemu/kvm.h" +#include "sysemu/block-backend.h" #include "hw/loader.h" #include "exec/address-spaces.h" #include "qemu/bitops.h" @@ -78,6 +79,7 @@ #include "hw/virtio/virtio-iommu.h" #include "hw/char/pl011.h" #include "qemu/guest-random.h" +#include "trace.h" =20 #define DEFINE_VIRT_MACHINE_LATEST(major, minor, latest) \ static void virt_##major##_##minor##_class_init(ObjectClass *oc, \ @@ -931,6 +933,11 @@ static void create_virtio_devices(const VirtMachineSta= te *vms) =20 #define VIRT_FLASH_SECTOR_SIZE (256 * KiB) =20 +int64_t virt_flash_size(PFlashCFI01 *flash) +{ + return blk_getlength(pflash_cfi01_get_blk(flash)); +} + static PFlashCFI01 *virt_flash_create1(VirtMachineState *vms, const char *name, const char *alias_prop_name) @@ -969,6 +976,8 @@ static void virt_flash_map1(PFlashCFI01 *flash, DeviceState *dev =3D DEVICE(flash); const char *name =3D blk_name(pflash_cfi01_get_blk(flash)); =20 + trace_virt_flash_map1(name, base, size); + if (size =3D=3D 0 || !QEMU_IS_ALIGNED(size, VIRT_FLASH_SECTOR_SIZE)) { error_report("system firmware block device %s has invalid size " "%" PRId64, name, size); @@ -995,63 +1004,57 @@ static void virt_flash_map(VirtMachineState *vms, MemoryRegion *secure_sysmem) { /* - * Map two flash devices to fill the VIRT_FLASH space in the memmap. + * Map two flash devices in the VIRT_FLASH space in the memmap. * sysmem is the system memory space. secure_sysmem is the secure view * of the system, and the first flash device should be made visible on= ly * there. The second flash device is visible to both secure and nonsec= ure. * If sysmem =3D=3D secure_sysmem this means there is no separate Secu= re * address space and both flash devices are generally visible. */ - hwaddr flashsize =3D vms->memmap[VIRT_FLASH].size / 2; - hwaddr flashbase =3D vms->memmap[VIRT_FLASH].base; + MemMapEntry *m =3D &vms->memmap[VIRT_FLASH]; =20 - virt_flash_map1(vms->flash[0], flashbase, flashsize, - secure_sysmem); - virt_flash_map1(vms->flash[1], flashbase + flashsize, flashsize, - sysmem); + virt_flash_map1(vms->flash[0], m->base, + virt_flash_size(vms->flash[0]), secure_sysmem); + + virt_flash_map1(vms->flash[1], m->base + m->size / 2, + virt_flash_size(vms->flash[1]), sysmem); } =20 static void virt_flash_fdt(VirtMachineState *vms, MemoryRegion *sysmem, MemoryRegion *secure_sysmem) { - hwaddr flashsize =3D vms->memmap[VIRT_FLASH].size / 2; - hwaddr flashbase =3D vms->memmap[VIRT_FLASH].base; + bool secure =3D sysmem !=3D secure_sysmem; + MemMapEntry *m =3D &vms->memmap[VIRT_FLASH]; + hwaddr flashbase0 =3D m->base; + hwaddr flashbase1 =3D m->base + m->size / 2; + hwaddr flashsize0 =3D virt_flash_size(vms->flash[0]); + hwaddr flashsize1 =3D virt_flash_size(vms->flash[1]); char *nodename; =20 - if (sysmem =3D=3D secure_sysmem) { - /* Report both flash devices as a single node in the DT */ - nodename =3D g_strdup_printf("/flash@%" PRIx64, flashbase); - qemu_fdt_add_subnode(vms->fdt, nodename); - qemu_fdt_setprop_string(vms->fdt, nodename, "compatible", "cfi-fla= sh"); - qemu_fdt_setprop_sized_cells(vms->fdt, nodename, "reg", - 2, flashbase, 2, flashsize, - 2, flashbase + flashsize, 2, flashsiz= e); - qemu_fdt_setprop_cell(vms->fdt, nodename, "bank-width", 4); - g_free(nodename); + if (secure) { + nodename =3D g_strdup_printf("/secflash@%" PRIx64, flashbase0); } else { - /* - * Report the devices as separate nodes so we can mark one as - * only visible to the secure world. - */ - nodename =3D g_strdup_printf("/secflash@%" PRIx64, flashbase); - qemu_fdt_add_subnode(vms->fdt, nodename); - qemu_fdt_setprop_string(vms->fdt, nodename, "compatible", "cfi-fla= sh"); - qemu_fdt_setprop_sized_cells(vms->fdt, nodename, "reg", - 2, flashbase, 2, flashsize); - qemu_fdt_setprop_cell(vms->fdt, nodename, "bank-width", 4); + nodename =3D g_strdup_printf("/flash@%" PRIx64, flashbase0); + } + qemu_fdt_add_subnode(vms->fdt, nodename); + qemu_fdt_setprop_string(vms->fdt, nodename, "compatible", "cfi-flash"); + qemu_fdt_setprop_sized_cells(vms->fdt, nodename, "reg", + 2, flashbase0, 2, flashsize0); + qemu_fdt_setprop_cell(vms->fdt, nodename, "bank-width", 4); + if (secure) { qemu_fdt_setprop_string(vms->fdt, nodename, "status", "disabled"); qemu_fdt_setprop_string(vms->fdt, nodename, "secure-status", "okay= "); - g_free(nodename); - - nodename =3D g_strdup_printf("/flash@%" PRIx64, flashbase); - qemu_fdt_add_subnode(vms->fdt, nodename); - qemu_fdt_setprop_string(vms->fdt, nodename, "compatible", "cfi-fla= sh"); - qemu_fdt_setprop_sized_cells(vms->fdt, nodename, "reg", - 2, flashbase + flashsize, 2, flashsiz= e); - qemu_fdt_setprop_cell(vms->fdt, nodename, "bank-width", 4); - g_free(nodename); } + g_free(nodename); + + nodename =3D g_strdup_printf("/flash@%" PRIx64, flashbase1); + qemu_fdt_add_subnode(vms->fdt, nodename); + qemu_fdt_setprop_string(vms->fdt, nodename, "compatible", "cfi-flash"); + qemu_fdt_setprop_sized_cells(vms->fdt, nodename, "reg", + 2, flashbase1, 2, flashsize1); + qemu_fdt_setprop_cell(vms->fdt, nodename, "bank-width", 4); + g_free(nodename); } =20 static bool virt_firmware_init(VirtMachineState *vms, diff --git a/include/hw/arm/virt.h b/include/hw/arm/virt.h index aad6d69841..ee21d691ea 100644 --- a/include/hw/arm/virt.h +++ b/include/hw/arm/virt.h @@ -172,6 +172,7 @@ OBJECT_DECLARE_TYPE(VirtMachineState, VirtMachineClass,= VIRT_MACHINE) =20 void virt_acpi_setup(VirtMachineState *vms); bool virt_is_acpi_enabled(VirtMachineState *vms); +int64_t virt_flash_size(PFlashCFI01 *flash); =20 /* Return the number of used redistributor regions */ static inline int virt_gicv3_redist_region_count(VirtMachineState *vms) --=20 2.28.0 From nobody Fri May 3 08:48:35 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=1; a=rsa-sha256; t=1605523865; cv=none; d=zohomail.com; s=zohoarc; b=HiTiBPD6hlF+E0NPkjJGfWbPCfc3njMMis96VK1WhQLyzssxpqSin/8RIC2g0SyjuhPQ5NXVHN7rFz7Z3AEYpAMpTguIkGlcz/nHFTfCjlPQmfgV5VJi2j/FxhniQnzFOvDOwzDOR1U6vVTLwJPOubCEgFKydmfNzkxshfn93nQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1605523865; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=94eggaWe2+5P63Kl81RNXNeaaY0v2+lbVxf9v4CAftc=; b=Tw5uh3OtVVelJqPjAD/Z8WbS5lc0+LTuu12IQUDxr1v9XpgNeRijEpSl9NGRSRee8oxu5nFE5P5ms9Cn4RyHs/btOT5W+BMYlBmHtnE2kUHyh/EJyvheXv62F4iUT4DwOHn1oeTEpyUnVv6R6LxXswM+69Cnd6WJo3TLaN8SiLs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1605523865581602.7247609468758; Mon, 16 Nov 2020 02:51:05 -0800 (PST) Received: from localhost ([::1]:60420 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kec6C-00005f-EL for importer@patchew.org; Mon, 16 Nov 2020 05:51:04 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:34990) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kebxy-0007xO-K2; Mon, 16 Nov 2020 05:42:35 -0500 Received: from aserp2130.oracle.com ([141.146.126.79]:41338) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kebxu-0000YJ-VF; Mon, 16 Nov 2020 05:42:34 -0500 Received: from pps.filterd (aserp2130.oracle.com [127.0.0.1]) by aserp2130.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 0AGAeAgW126741; Mon, 16 Nov 2020 10:42:26 GMT Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by aserp2130.oracle.com with ESMTP id 34t4ramj0d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 16 Nov 2020 10:42:26 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 0AGAf9Fh068371; Mon, 16 Nov 2020 10:42:26 GMT Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by aserp3020.oracle.com with ESMTP id 34umcwp474-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Nov 2020 10:42:26 +0000 Received: from abhmp0012.oracle.com (abhmp0012.oracle.com [141.146.116.18]) by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id 0AGAgP5j004850; Mon, 16 Nov 2020 10:42:25 GMT Received: from disaster-area.hh.sledj.net (/81.187.26.238) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 16 Nov 2020 02:42:25 -0800 Received: from localhost (disaster-area.hh.sledj.net [local]) by disaster-area.hh.sledj.net (OpenSMTPD) with ESMTPA id 761c95c1; Mon, 16 Nov 2020 10:42:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding; s=corp-2020-01-29; bh=94eggaWe2+5P63Kl81RNXNeaaY0v2+lbVxf9v4CAftc=; b=uAQqnBRVcOe4ltCRBA8KLOT1RuudLAzKjUxd60tBODeG746awoZB36q6ldkYcCJ8Xgjr RiMXVyDofOLO0pjc9wpdaOIGk5q6VLM+kobuJE+8RUqDUyEppWVzVAKAHAUCeckDSc4n uG7lHTakIByQ45GtcXSweJ4cl/u+ocZ9PfYtJBUZH0zyC2eRPYj5LFRhfHj9COXdMFZo OmSQRgTN8oyXIGzImcVagSnrsyIA/sTfRwCS4h5SwyHlOeSpR3+68k7nufT2f35Jm8di ETGZEe8xkiJx/zKQfETK5YIjJgPZ6/JJQpyM9hu/BihX02lxcWkWfjFNIw/1hrd4FXVK 8Q== From: David Edmondson To: qemu-devel@nongnu.org Subject: [RFC PATCH 5/5] hw/arm: Only minimise flash size on older machines Date: Mon, 16 Nov 2020 10:42:16 +0000 Message-Id: <20201116104216.439650-6-david.edmondson@oracle.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201116104216.439650-1-david.edmondson@oracle.com> References: <20201116104216.439650-1-david.edmondson@oracle.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9806 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=3 mlxscore=0 phishscore=0 spamscore=0 bulkscore=0 mlxlogscore=999 malwarescore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2011160062 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9806 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 clxscore=1015 malwarescore=0 impostorscore=0 lowpriorityscore=0 priorityscore=1501 mlxlogscore=999 adultscore=0 phishscore=0 suspectscore=3 spamscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2011160062 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=141.146.126.79; envelope-from=david.edmondson@oracle.com; helo=aserp2130.oracle.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/11/16 05:42:28 X-ACL-Warn: Detected OS = Linux 3.1-3.10 [fuzzy] X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Peter Maydell , qemu-block@nongnu.org, "Michael S. Tsirkin" , Max Reitz , David Edmondson , Shannon Zhao , qemu-arm@nongnu.org, Igor Mammedov , John Snow Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Prior to 5.2 the flash images loaded into the bottom 128MB always filled the region. Ensure that this continues to be the case. Signed-off-by: David Edmondson --- hw/arm/virt-acpi-build.c | 11 +++--- hw/arm/virt.c | 79 ++++++++++++++++++++++++++-------------- include/hw/arm/virt.h | 3 +- 3 files changed, 60 insertions(+), 33 deletions(-) diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c index 2c08d36624..6e3d72a9e9 100644 --- a/hw/arm/virt-acpi-build.c +++ b/hw/arm/virt-acpi-build.c @@ -117,16 +117,17 @@ static void acpi_dsdt_add_flash1(Aml *scope, int inde= x, aml_append(scope, dev); } =20 -static void acpi_dsdt_add_flash(Aml *scope, const MemMapEntry *flash_memma= p, - PFlashCFI01 *flash[2]) +static void acpi_dsdt_add_flash(Aml *scope, VirtMachineState *vms) { + MemMapEntry *flash_memmap =3D &vms->memmap[VIRT_FLASH]; + acpi_dsdt_add_flash1(scope, 0, flash_memmap->base, - virt_flash_size(flash[0])); + virt_flash_size(vms, vms->flash[0])); =20 acpi_dsdt_add_flash1(scope, 1, flash_memmap->base + flash_memmap->size / 2, - virt_flash_size(flash[1])); + virt_flash_size(vms, vms->flash[1])); } =20 static void acpi_dsdt_add_virtio(Aml *scope, @@ -606,7 +607,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker, Virt= MachineState *vms) acpi_dsdt_add_uart(scope, &memmap[VIRT_UART], (irqmap[VIRT_UART] + ARM_SPI_BASE)); if (vmc->acpi_expose_flash) { - acpi_dsdt_add_flash(scope, &memmap[VIRT_FLASH], vms->flash); + acpi_dsdt_add_flash(scope, vms); } acpi_dsdt_add_fw_cfg(scope, &memmap[VIRT_FW_CFG]); acpi_dsdt_add_virtio(scope, &memmap[VIRT_MMIO], diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 03ec844bf3..e851622cb5 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -933,9 +933,15 @@ static void create_virtio_devices(const VirtMachineSta= te *vms) =20 #define VIRT_FLASH_SECTOR_SIZE (256 * KiB) =20 -int64_t virt_flash_size(PFlashCFI01 *flash) +int64_t virt_flash_size(VirtMachineState *vms, PFlashCFI01 *flash) { - return blk_getlength(pflash_cfi01_get_blk(flash)); + VirtMachineClass *vmc =3D VIRT_MACHINE_GET_CLASS(vms); + + if (vmc->maximize_flash_size) { + return vms->memmap[VIRT_FLASH].size / 2; + } else { + return blk_getlength(pflash_cfi01_get_blk(flash)); + } } =20 static PFlashCFI01 *virt_flash_create1(VirtMachineState *vms, @@ -1014,47 +1020,65 @@ static void virt_flash_map(VirtMachineState *vms, MemMapEntry *m =3D &vms->memmap[VIRT_FLASH]; =20 virt_flash_map1(vms->flash[0], m->base, - virt_flash_size(vms->flash[0]), secure_sysmem); + virt_flash_size(vms, vms->flash[0]), secure_sysmem); =20 virt_flash_map1(vms->flash[1], m->base + m->size / 2, - virt_flash_size(vms->flash[1]), sysmem); + virt_flash_size(vms, vms->flash[1]), sysmem); } =20 static void virt_flash_fdt(VirtMachineState *vms, MemoryRegion *sysmem, MemoryRegion *secure_sysmem) { + VirtMachineClass *vmc =3D VIRT_MACHINE_GET_CLASS(vms); bool secure =3D sysmem !=3D secure_sysmem; MemMapEntry *m =3D &vms->memmap[VIRT_FLASH]; hwaddr flashbase0 =3D m->base; hwaddr flashbase1 =3D m->base + m->size / 2; - hwaddr flashsize0 =3D virt_flash_size(vms->flash[0]); - hwaddr flashsize1 =3D virt_flash_size(vms->flash[1]); + hwaddr flashsize0 =3D virt_flash_size(vms, vms->flash[0]); + hwaddr flashsize1 =3D virt_flash_size(vms, vms->flash[1]); char *nodename; =20 - if (secure) { - nodename =3D g_strdup_printf("/secflash@%" PRIx64, flashbase0); - } else { + if (vmc->maximize_flash_size && !secure) { + /* Report both flash devices as a single node in the DT */ nodename =3D g_strdup_printf("/flash@%" PRIx64, flashbase0); - } - qemu_fdt_add_subnode(vms->fdt, nodename); - qemu_fdt_setprop_string(vms->fdt, nodename, "compatible", "cfi-flash"); - qemu_fdt_setprop_sized_cells(vms->fdt, nodename, "reg", - 2, flashbase0, 2, flashsize0); - qemu_fdt_setprop_cell(vms->fdt, nodename, "bank-width", 4); - if (secure) { - qemu_fdt_setprop_string(vms->fdt, nodename, "status", "disabled"); - qemu_fdt_setprop_string(vms->fdt, nodename, "secure-status", "okay= "); - } - g_free(nodename); + qemu_fdt_add_subnode(vms->fdt, nodename); + qemu_fdt_setprop_string(vms->fdt, nodename, "compatible", "cfi-fla= sh"); + qemu_fdt_setprop_sized_cells(vms->fdt, nodename, "reg", + 2, flashbase0, 2, flashsize0, + 2, flashbase1, 2, flashsize1); + qemu_fdt_setprop_cell(vms->fdt, nodename, "bank-width", 4); + g_free(nodename); + } else { + /* + * If we are not intending to fill the flash region or one is + * device is secure, report two distinct nodes. + */ + if (secure) { + nodename =3D g_strdup_printf("/secflash@%" PRIx64, flashbase0); + } else { + nodename =3D g_strdup_printf("/flash@%" PRIx64, flashbase0); + } + qemu_fdt_add_subnode(vms->fdt, nodename); + qemu_fdt_setprop_string(vms->fdt, nodename, "compatible", "cfi-fla= sh"); + qemu_fdt_setprop_sized_cells(vms->fdt, nodename, "reg", + 2, flashbase0, 2, flashsize0); + qemu_fdt_setprop_cell(vms->fdt, nodename, "bank-width", 4); + if (secure) { + qemu_fdt_setprop_string(vms->fdt, nodename, "status", "disable= d"); + qemu_fdt_setprop_string(vms->fdt, nodename, + "secure-status", "okay"); + } + g_free(nodename); =20 - nodename =3D g_strdup_printf("/flash@%" PRIx64, flashbase1); - qemu_fdt_add_subnode(vms->fdt, nodename); - qemu_fdt_setprop_string(vms->fdt, nodename, "compatible", "cfi-flash"); - qemu_fdt_setprop_sized_cells(vms->fdt, nodename, "reg", - 2, flashbase1, 2, flashsize1); - qemu_fdt_setprop_cell(vms->fdt, nodename, "bank-width", 4); - g_free(nodename); + nodename =3D g_strdup_printf("/flash@%" PRIx64, flashbase1); + qemu_fdt_add_subnode(vms->fdt, nodename); + qemu_fdt_setprop_string(vms->fdt, nodename, "compatible", "cfi-fla= sh"); + qemu_fdt_setprop_sized_cells(vms->fdt, nodename, "reg", + 2, flashbase1, 2, flashsize1); + qemu_fdt_setprop_cell(vms->fdt, nodename, "bank-width", 4); + g_free(nodename); + } } =20 static bool virt_firmware_init(VirtMachineState *vms, @@ -2614,6 +2638,7 @@ static void virt_machine_5_1_options(MachineClass *mc) virt_machine_5_2_options(mc); compat_props_add(mc->compat_props, hw_compat_5_1, hw_compat_5_1_len); vmc->no_kvm_steal_time =3D true; + vmc->maximize_flash_size =3D true; } DEFINE_VIRT_MACHINE(5, 1) =20 diff --git a/include/hw/arm/virt.h b/include/hw/arm/virt.h index ee21d691ea..1135e7e165 100644 --- a/include/hw/arm/virt.h +++ b/include/hw/arm/virt.h @@ -127,6 +127,7 @@ struct VirtMachineClass { bool kvm_no_adjvtime; bool no_kvm_steal_time; bool acpi_expose_flash; + bool maximize_flash_size; }; =20 struct VirtMachineState { @@ -172,7 +173,7 @@ OBJECT_DECLARE_TYPE(VirtMachineState, VirtMachineClass,= VIRT_MACHINE) =20 void virt_acpi_setup(VirtMachineState *vms); bool virt_is_acpi_enabled(VirtMachineState *vms); -int64_t virt_flash_size(PFlashCFI01 *flash); +int64_t virt_flash_size(VirtMachineState *vms, PFlashCFI01 *flash); =20 /* Return the number of used redistributor regions */ static inline int virt_gicv3_redist_region_count(VirtMachineState *vms) --=20 2.28.0