From nobody Sat May 4 17:29:23 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@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.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=quarantine dis=quarantine) header.from=suse.com ARC-Seal: i=1; a=rsa-sha256; t=1676324763; cv=none; d=zohomail.com; s=zohoarc; b=BPwicTZPGd0rEwbwsgxcE9MNI1r0o/yalVYqdqGW7/umZvAyGFWrPdsZaFDa2h6mRjiEB150WUdieEJuQFgiI+6Ln5xxKjypG68odRwj9oAdpo7D4t4EFfa4wwqErTuUHGPCrsLSJ/JJJFvcmiDqTqHOrQuWUP9vS+ZyTMsfecs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676324763; h=Content-Type:Content-Transfer-Encoding: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=4ZEb57jOc4Kb/jkEGfJ1dIQPhj/We96kahr1U/g8IBQ=; b=HhxH2Mviy7I8jCyuDRlEt0LRhrXuuTo57yXQd+5oFPQL0oFA0Eo1IQmpN7A+ST+9yHH5Ic5tJl40MoLs/sz0+2uZHNY1vmrgW3cGmVNlTaEZpnA2/d1NqxgnPB9J+d9P7m89ZS//PdVlVBD5BNiGQBMnyMdOLRgtTZsp5V6tfr4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail header.from= (p=quarantine dis=quarantine) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1676324763328826.9475650072736; Mon, 13 Feb 2023 13:46:03 -0800 (PST) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-421-PyNeODvYPZuZwj0bUQ8DgQ-1; Mon, 13 Feb 2023 16:45:59 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 00947894EFD; Mon, 13 Feb 2023 21:45:54 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 467A3C16022; Mon, 13 Feb 2023 21:45:53 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 28080194658C; Mon, 13 Feb 2023 21:45:53 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 3761E1946586 for ; Mon, 13 Feb 2023 21:45:52 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 28EEB40CF8ED; Mon, 13 Feb 2023 21:45:52 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast01.extmail.prod.ext.rdu2.redhat.com [10.11.55.17]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 20A11400D927 for ; Mon, 13 Feb 2023 21:45:52 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id F0DDB858F0E for ; Mon, 13 Feb 2023 21:45:51 +0000 (UTC) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on2045.outbound.protection.outlook.com [40.107.8.45]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-445-vrq89myQN_Cfx0Kgg6jAjA-1; Mon, 13 Feb 2023 16:45:50 -0500 Received: from AM0PR04MB4899.eurprd04.prod.outlook.com (2603:10a6:208:c5::16) by AM9PR04MB7633.eurprd04.prod.outlook.com (2603:10a6:20b:2d9::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.24; Mon, 13 Feb 2023 21:45:48 +0000 Received: from AM0PR04MB4899.eurprd04.prod.outlook.com ([fe80::32dd:b2a5:7522:c322]) by AM0PR04MB4899.eurprd04.prod.outlook.com ([fe80::32dd:b2a5:7522:c322%4]) with mapi id 15.20.6086.024; Mon, 13 Feb 2023 21:45:48 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676324762; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=4ZEb57jOc4Kb/jkEGfJ1dIQPhj/We96kahr1U/g8IBQ=; b=DvdLm9YuSVDuyh9QjR4eL7VnsCAHGonQzn3TfzsdmhZq8BjhwPBzETykzbtpJn+gfgG1et I3Ot4eP4tfkDn2wALFOinHi/ai7LOKeTO35KSZtOhiULVgQ/+eft+CXiqwMVYZyitwETBN HfSU+JtvQWEw2DfJR5QjLuW2hcL7kvg= X-MC-Unique: PyNeODvYPZuZwj0bUQ8DgQ-1 X-Original-To: libvir-list@listman.corp.redhat.com X-MC-Unique: vrq89myQN_Cfx0Kgg6jAjA-1 From: Jim Fehlig To: libvir-list@redhat.com Subject: [PATCH 1/2] libxl: Support specifying a custom firmware path Date: Mon, 13 Feb 2023 14:45:38 -0700 Message-ID: <20230213214539.10048-2-jfehlig@suse.com> In-Reply-To: <20230213214539.10048-1-jfehlig@suse.com> References: <20230213214539.10048-1-jfehlig@suse.com> X-ClientProxiedBy: FR3P281CA0169.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a0::8) To AM0PR04MB4899.eurprd04.prod.outlook.com (2603:10a6:208:c5::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM0PR04MB4899:EE_|AM9PR04MB7633:EE_ X-MS-Office365-Filtering-Correlation-Id: 454902eb-2e0f-479d-f2f7-08db0e0baae6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0 X-Microsoft-Antispam-Message-Info: YOhV+EcZvc/7jDbBCD4tmBeD/MW8S3NRa4Id35SgxAS6KodtApu8mdeqTFMxwVV6F3SpvTU5s4xdf/BmKLFwjwQNdOo9+Ad6o+yQhtWWve6d34DInEAoPMRlyZbJdPVFaQffHeQ2JbF++qBAN/VtRlb+MxEYA7Gp6uY7Fy7On+4sfdllAHDoqLZuyQBMu1TLW372NtsjJSEZrVsqKMrEnMlYBLykReTmJhR0oKtdvX7myZFqwa4xBNIxnBEt5D0amqalGNNzoG/A/E0ZyEVMkflYtM0J02bUZJIE343qPPZz5cOUb4TwzbTrcoPeFOWdWXtPHxNpH807CymHmkrR7Z4/48hd5xgnEWkdDIdKAal2PUTHfm9Y+fknF4XgR8lRgG+tWWbgb5uQ45tKF2kISc2O7H0fBe1P68HOJpMHjcZzVxJxb7eDviwscQbHjtCZPhYFunwcahMhVxS8Kg42c+SCvTsga6PTNp+QYFVc1ut/5H2pTFbaw/fPhyTb9rdaVrDsK0i8DWU33MqJefR7UXLgCDsmntR9cCSQNvdCYmtJ9g51d8RzD5Q+Qbe6r09YWUWxwwc4OHAoiG6C3pPtIf9Q1uCodpwJaaeBG8/mFdrKoJOJkAr5tQxTkKidolpVKVLNDDNdGs6o4F8H9eAatCrAXhM4kpa+uYpAQW0Msi48Jat19KbhC9AW1vvQi7l47sVp7v4st4wQ8pydyH8K3Q== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR04MB4899.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(396003)(346002)(136003)(376002)(366004)(39860400002)(451199018)(36756003)(2906002)(5660300002)(6512007)(83380400001)(26005)(186003)(2616005)(66946007)(38100700002)(8676002)(6916009)(316002)(66476007)(66556008)(8936002)(41300700001)(6666004)(478600001)(1076003)(86362001)(6506007)(6486002)(966005); DIR:OUT; SFP:1101 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ljvSPvv8+ORf2RktnleZ/kCEc+7DEWL00PBewLkenXItOkGBt/WAAsv5nVVB?= =?us-ascii?Q?9mzfjqlmHJKVFHu2FE7+vMAf3IYCjcpT0UHp7/oCEO7ExaxwLfO+RGZD/AgC?= =?us-ascii?Q?zZGxOjgKdzcGYMaLcQi0QSZzwF0JA44d3pY9UlTRk7z/b65QzYCEDAoREO0w?= =?us-ascii?Q?IcxwRuNRxvJor1toZzv+Cvr4PnRdaSCNZf/mqKsBaEnydSnOpJGKJG2XzmSt?= =?us-ascii?Q?BbG2xFWjsC0UP/pX0uuvdrB0BARPuRBuJjX8MdkNeeE7Y+DTLOmFdfZWtWXF?= =?us-ascii?Q?dg3oEf14/o5BdFg/FnwbkquW4g9wXMBVe2ZjhTFX0yXDaCXQGDdZ0o3oRlLA?= =?us-ascii?Q?UYQlNUpe9GJZfxjaQqW5IRRlYdpzbAtpGXQ7/3T20jhhRKm814sskwQT/Art?= =?us-ascii?Q?9q/zjnIJGmJG5W168sb0E/gxZt5j459yQp1MPb5QhLCT77uhMmBdgo33pGPC?= =?us-ascii?Q?GUYV6lMFXZX848q/GNNXq3hrcdOfrPmQWDGcRVSzriLder4fgYoFWEtjaLzp?= =?us-ascii?Q?DV4x4v9RVLy+/AdOzxkjc0VSOOe3QrjdmLp94NaKFb/pS3mVuaB2j75dfVBs?= =?us-ascii?Q?42m2t4JgJtV17XOuLltyNHEvULQLcO7OIVZCzDVPKAIBAWnWeXbqjtXIv+Ol?= =?us-ascii?Q?jwzrdB6LZaQcKnvk8AK5EmrOTsSztl6MeDKJL9sTVjlD2ikj/mutfjVmeIVI?= =?us-ascii?Q?nDLrHWdnjtqedx/0SDAY4OMcpTAqT6tRgIRi6Es9f5A1BRv9A0hE0fNTiJtE?= =?us-ascii?Q?/64bA88S/Di88OYNK38RsxtU92VGcwmTut2H1FH9OLcAKWakvKZ1OkmyjvLU?= =?us-ascii?Q?EAiCn8UEprmokHFL+ZyJ2goQRLYyiYm1OJYETo5XViXUHaaxEKCe4lr6cr+b?= =?us-ascii?Q?IfGJneTubg0xWpaDklblZAE7kM8DhcgdiwcuDkZ0yvfST1lMpnyO1Ge2iPfA?= =?us-ascii?Q?zihBD7yk7duQPxICnhN/acg39Zv6YHyg2xgipKHd97LT68QqkIr3Ts+Iry/m?= =?us-ascii?Q?Q9SBRfJbx+VFbwYve5onrVNsWGMVjzY6Y2HdOIVVadKewkzmcHH5oluuFNfh?= =?us-ascii?Q?2nOirtNtUIEapH49IEqsQWb56+w3B3+SZyNGJFexfZnZ7RtnNrEPNXBJ4yuk?= =?us-ascii?Q?CPgctdjN8uKEAqoA+n69JfW0nwFcn8Q7w0u2kz/W+06ovmcx/ozc/Zxmhie9?= =?us-ascii?Q?KEOp9j4zqUbY+1yQgMc+fHCymITBeAMGcWrvWr3GzTSv7Bbe3KS/XUyqVh31?= =?us-ascii?Q?EzSzlo0FMKxUz+o2XeOWwgtAkefTyy2RB/1P3BMsh1898nMiJgRbD3p0I8M7?= =?us-ascii?Q?J0Z6BiYxQ4V1G1/2rn1fZ5oS00vf87wBaYIhbhK6R0in6dMGA3nsirxTpuyG?= =?us-ascii?Q?pQEEXzmrstfgkn2s0WUAwqyWOidscfyD0MR5sjXTqSvjMUFg4O8nYJl7G+CR?= =?us-ascii?Q?JXKfuPzsvTZT3d066w4cRieEa0z0KLK4QrWR3/xJkkEKuLYOKJp1FGtJ1uRo?= =?us-ascii?Q?VX/c/HDIZcBUn136UpzTVoyR2pD2BgGQNLI93vTJZOzcF9DGrAx/Xi72p/HQ?= =?us-ascii?Q?DpgoIdehCLG719CA6QE9q0jMlepBthAaf0YF1OQv?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 454902eb-2e0f-479d-f2f7-08db0e0baae6 X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB4899.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2023 21:45:48.1185 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: GXtxMSHgl2LjXTlfLlgFzbbNcZtWqkKKV2cFuutKEwW2cLDfBEmJzuPN/bS1XhtpfjJerXMu2+pQCpN80LayCQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB7633 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 3.1 on 10.11.54.1 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 3.1 on 10.11.54.8 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1676324763737100001 Content-Type: text/plain; charset="utf-8" libxl added support for specifying custom firmware paths long ago. The functionality exists in all Xen version supported by libvirt. This patch adds support for user-specified efi firmware paths in the libxl driver. Signed-off-by: Jim Fehlig Reviewed-by: Michal Privoznik --- src/libxl/libxl_conf.c | 14 ++-- tests/libxlxml2domconfigdata/efi-hvm.json | 91 +++++++++++++++++++++++ tests/libxlxml2domconfigdata/efi-hvm.xml | 36 +++++++++ tests/libxlxml2domconfigtest.c | 1 + 4 files changed, 134 insertions(+), 8 deletions(-) diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index cee9f827f7..f856f12075 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -632,14 +632,10 @@ libxlMakeDomBuildInfo(virDomainDef *def, b_info->ramdisk =3D g_strdup(def->os.initrd); =20 /* - * Currently libxl only allows specifying the type of BIOS. - * If automatic firmware selection is enabled or the loader - * type is PFLASH, we assume OVMF and set libxl_bios_type - * to LIBXL_BIOS_TYPE_OVMF. The path to the OVMF firmware is - * configured when building Xen using '--with-system-ovmf=3D'. If - * not specified, LIBXL_FIRMWARE_DIR/ovmf.bin is used. In the - * future, Xen will support a user-specified firmware path. See - * https://lists.xenproject.org/archives/html/xen-devel/2016-03/ms= g01628.html + * libxl allows specifying the type of firmware and an optional pa= th. + * If the path is not explicitly specified, a default path for the= given + * firmware type is used. For EFI, it's LIBXL_FIRMWARE_DIR/ovmf.bi= n. + * Currently libxl does not support specifying nvram for EFI firmw= ares. */ if (def->os.firmware =3D=3D VIR_DOMAIN_OS_DEF_FIRMWARE_EFI) { if (def->os.loader =3D=3D NULL) @@ -651,9 +647,11 @@ libxlMakeDomBuildInfo(virDomainDef *def, if (def->os.loader->readonly =3D=3D VIR_TRISTATE_BOOL_ABSENT) def->os.loader->readonly =3D VIR_TRISTATE_BOOL_YES; b_info->u.hvm.bios =3D LIBXL_BIOS_TYPE_OVMF; + b_info->u.hvm.system_firmware =3D g_strdup(def->os.loader->pat= h); def->os.firmware =3D VIR_DOMAIN_OS_DEF_FIRMWARE_NONE; } else if (virDomainDefHasOldStyleUEFI(def)) { b_info->u.hvm.bios =3D LIBXL_BIOS_TYPE_OVMF; + b_info->u.hvm.system_firmware =3D g_strdup(def->os.loader->pat= h); } =20 if (def->emulator) { diff --git a/tests/libxlxml2domconfigdata/efi-hvm.json b/tests/libxlxml2dom= configdata/efi-hvm.json new file mode 100644 index 0000000000..32b5a49c3f --- /dev/null +++ b/tests/libxlxml2domconfigdata/efi-hvm.json @@ -0,0 +1,91 @@ +{ + "c_info": { + "type": "hvm", + "name": "test-hvm", + "uuid": "2147d599-9cc6-c0dc-92ab-4064b5446e9b" + }, + "b_info": { + "max_vcpus": 4, + "avail_vcpus": [ + 0, + 1, + 2, + 3 + ], + "max_memkb": 1048576, + "target_memkb": 1048576, + "video_memkb": 8192, + "shadow_memkb": 1234, + "device_model_version": "qemu_xen", + "device_model": "/bin/true", + "sched_params": { + + }, + "apic": "True", + "acpi": "True", + "type.hvm": { + "bios": "ovmf", + "pae": "True", + "system_firmware": "/usr/share/qemu/ovmf-x86_64-xen.bin", + "vga": { + "kind": "cirrus" + }, + "vnc": { + "enable": "True", + "listen": "0.0.0.0", + "findunused": "False" + }, + "sdl": { + "enable": "False" + }, + "spice": { + + }, + "boot": "c", + "rdm": { + + } + }, + "arch_arm": { + + } + }, + "disks": [ + { + "pdev_path": "/var/lib/xen/images/test-hvm.img", + "vdev": "hda", + "backend": "qdisk", + "format": "raw", + "removable": 1, + "readwrite": 1 + } + ], + "nics": [ + { + "devid": 0, + "mac": "00:16:3e:66:12:b4", + "bridge": "br0", + "script": "/etc/xen/scripts/vif-bridge", + "nictype": "vif_ioemu" + } + ], + "vfbs": [ + { + "devid": -1, + "vnc": { + "enable": "True", + "listen": "0.0.0.0", + "findunused": "False" + }, + "sdl": { + "enable": "False" + } + } + ], + "vkbs": [ + { + "devid": -1 + } + ], + "on_reboot": "restart" +} diff --git a/tests/libxlxml2domconfigdata/efi-hvm.xml b/tests/libxlxml2domc= onfigdata/efi-hvm.xml new file mode 100644 index 0000000000..4c94476b59 --- /dev/null +++ b/tests/libxlxml2domconfigdata/efi-hvm.xml @@ -0,0 +1,36 @@ + + test-hvm + None + 2147d599-9cc6-c0dc-92ab-4064b5446e9b + 1048576 + 1048576 + 4 + destroy + restart + destroy + + + hvm + /usr/share/qemu/ovmf-x86_64-x= en.bin + + + + + + + + + /bin/true + + + + + + + + +