From nobody Wed Nov 5 07:57:48 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1533468756092898.426242862492; Sun, 5 Aug 2018 04:32:36 -0700 (PDT) Received: from localhost ([::1]:58184 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fmHGu-0008Jq-RR for importer@patchew.org; Sun, 05 Aug 2018 07:32:28 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60924) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fmHDk-00067S-3y for qemu-devel@nongnu.org; Sun, 05 Aug 2018 07:29:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fmHDi-00057A-Et for qemu-devel@nongnu.org; Sun, 05 Aug 2018 07:29:12 -0400 Received: from chuckie.co.uk ([82.165.15.123]:60362 helo=s16892447.onlinehome-server.info) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fmHDi-0004rc-7x for qemu-devel@nongnu.org; Sun, 05 Aug 2018 07:29:10 -0400 Received: from host86-164-28-221.range86-164.btcentralplus.com ([86.164.28.221] helo=kentang.home) by s16892447.onlinehome-server.info with esmtpsa (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.76) (envelope-from ) id 1fmHDo-0007Z3-4k; Sun, 05 Aug 2018 12:29:17 +0100 From: Mark Cave-Ayland To: ehabkost@redhat.com, marcel.apfelbaum@gmail.com, lersek@redhat.com, qemu-devel@nongnu.org Date: Sun, 5 Aug 2018 12:28:50 +0100 Message-Id: <20180805112850.26063-3-mark.cave-ayland@ilande.co.uk> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180805112850.26063-1-mark.cave-ayland@ilande.co.uk> References: <20180805112850.26063-1-mark.cave-ayland@ilande.co.uk> X-SA-Exim-Connect-IP: 86.164.28.221 X-SA-Exim-Mail-From: mark.cave-ayland@ilande.co.uk X-SA-Exim-Version: 4.2.1 (built Sun, 08 Jan 2012 02:45:44 +0000) X-SA-Exim-Scanned: Yes (on s16892447.onlinehome-server.info) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 82.165.15.123 Subject: [Qemu-devel] [PATCH 2/2] fw_cfg: set the get_boot_devices_list() ignore_suffixes parameter from machine property X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" For the older machines (such as Mac and SPARC) the DT nodes representing bootdevices for disk nodes are irregular for mainly historical reasons, and should be handled on an individual basis via a custom FWPathProvider. Since the majority of bootdevice nodes for these machines either do not hav= e a separate disk node or require different (custom) names then it is much easi= er to allow the ignore_suffixes parameter to be set on a per-machine basis via a machine property. The default value for this new fwcfg_bootdevice_ignore_suffixes machine property is false to preserve compatibility for existing machines. Signed-off-by: Mark Cave-Ayland Reviewed-by: Thomas Huth --- hw/core/machine.c | 3 +++ hw/nvram/fw_cfg.c | 5 ++++- include/hw/boards.h | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/hw/core/machine.c b/hw/core/machine.c index a9aeb22f03..fbadb35865 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -525,6 +525,9 @@ static void machine_class_init(ObjectClass *oc, void *d= ata) mc->default_ram_size =3D 128 * MiB; mc->rom_file_has_mr =3D true; =20 + /* Default to using fwcfg bootdevice suffixes */ + mc->fwcfg_bootdevice_ignore_suffixes =3D false; + /* numa node memory size aligned on 8MB by default. * On Linux, each node's border has to be 8MB aligned */ diff --git a/hw/nvram/fw_cfg.c b/hw/nvram/fw_cfg.c index b23e7f64a8..ec6b8113ab 100644 --- a/hw/nvram/fw_cfg.c +++ b/hw/nvram/fw_cfg.c @@ -861,7 +861,10 @@ static void fw_cfg_machine_reset(void *opaque) void *ptr; size_t len; FWCfgState *s =3D opaque; - char *bootindex =3D get_boot_devices_list(&len, false); + MachineClass *mc =3D MACHINE_GET_CLASS(qdev_get_machine()); + + char *bootindex =3D get_boot_devices_list(&len, + mc->fwcfg_bootdevice_ignore_suffixes); =20 ptr =3D fw_cfg_modify_file(s, "bootorder", (uint8_t *)bootindex, len); g_free(ptr); diff --git a/include/hw/boards.h b/include/hw/boards.h index d139a431a6..2cf76d82a6 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -204,6 +204,7 @@ struct MachineClass { const char **valid_cpu_types; strList *allowed_dynamic_sysbus_devices; bool auto_enable_numa_with_memhp; + bool fwcfg_bootdevice_ignore_suffixes; void (*numa_auto_assign_ram)(MachineClass *mc, NodeInfo *nodes, int nb_nodes, ram_addr_t size); =20 --=20 2.11.0