From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from wout4-smtp.messagingengine.com (wout4-smtp.messagingengine.com [64.147.123.20]) by mx.groups.io with SMTP id smtpd.web09.1085.1649267148347418778 for ; Wed, 06 Apr 2022 10:45:48 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@bsdio.com header.s=fm2 header.b=DM+UEG7F; spf=pass (domain: bsdio.com, ip: 64.147.123.20, mailfrom: rebecca@bsdio.com) Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.west.internal (Postfix) with ESMTP id 29C96320219B; Wed, 6 Apr 2022 13:45:47 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Wed, 06 Apr 2022 13:45:47 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdio.com; h=cc :cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm2; bh=GDNeaaJkGKiud6 JBhHC5ZVUvfPtjW1JsSRpgse0FmXE=; b=DM+UEG7FS6nrjsegrh0QUpqsuVZAuP P7SX3CD4hSIIHcpVyzLMXJuXU+iCmgzmAds1xuXlWWe07nY+QrreJEnLOSpEV+BF XxiVvzAhgQ0dwqNbdNB5PYyl+nlwRalO5r1Jd+kOv2hA4P8xVCYXxh3K6GKVbymk VfQbtUPXTCOKWVhMHMbRLDfBIaKVJZNSEiCYTnbj8ZPaBboYQQUvEIM8zvmdCR5q RCUd3uIT6+NtTti2Wlc+nJ+6WiYjpflrNx3Va8Vw7F+g8gI131DCsm2Eo55GdiUG D1olT6jy2Ht5oKJKlyPje5wO3wWoqfKp+u7oANJOU0j4nA1IXC8/sUpQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm3; bh=GDNeaaJkGKiud6JBhHC5ZVUvfPtjW1JsSRpgse0Fm XE=; b=gRPKh3CKDYuEq6eXE9yZEG/lDxCyIpRp5t0P5uVE0lOkJCvey2+LJXwEn MBIBArJ8iv2DrHN15bn/5lBnExHemWRzzAvft+7/Ogs7RDs49e5+ASD3zcNNASjX OjpPfm+rjr5BKD7RZDtEyS/phIcVQt9q1YqZqrx/GqA/NLa5Kd7HHfapGy7TZby4 BBl6an6K8NrSbz5d+a82Dh9feFfBmFCNiuK6Aa3B1Hmp2G2Vx3InBsFCDnM7TCTl mZHsJe304EzDnpi+aD3tCFhvbS3p7VNtZalxAjpu4Z/wBnHr29XX+9CK61h7xuZQ yaM9pIahNEhLnmGIxGAchHzRqJ3cA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvvddrudejiedguddujecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefkffggfgfuvfhfhfgjtgfgsehtkeertddtfeejnecuhfhrohhmpeftvggs vggttggrucevrhgrnhcuoehrvggsvggttggrsegsshguihhordgtohhmqeenucggtffrrg htthgvrhhnpeekieekieeufffhteehueeutedvgfeffefggfeiueejvdfhveefffdtiefh teetudenucffohhmrghinhepghhrohhuphhsrdhiohenucevlhhushhtvghrufhiiigvpe dtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehrvggsvggttggrsegsshguihhordgtohhm X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 6 Apr 2022 13:45:45 -0400 (EDT) Message-ID: Date: Wed, 6 Apr 2022 11:45:44 -0600 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Subject: Re: [edk2-devel] [PATCH v2] OvmfPkg/BhyveBhfPkg: add support for QemuFwCfg To: devel@edk2.groups.io, c.koehne@beckhoff.com Cc: Ard Biesheuvel , Jiewen Yao , Jordan Justen , Peter Grehan , FreeBSD Virtualization , Gerd Hoffmann References: <20220329101417.617-1-c.koehne@beckhoff.com> From: "Rebecca Cran" In-Reply-To: Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit [re-posting from my personal email account, since my mail to freebsd-virtualization got rejected] I seem to remember seeing previous feedback that Bhyve developers strongly preferred the BhyveFwCtl mechanism. I've been out of the loop though (busy with $dayjob) so I don't know if things have changed. Hopefully other people can provide feedback. -- Rebecca Cran On 4/6/22 01:00, Corvin Köhne wrote: > Any comments from bhyve folks on that? > > > Best regards > Corvin > > Beckhoff Automation GmbH & Co. KG | Managing Director: Dipl. Phys. Hans Beckhoff > Registered office: Verl, Germany | Register court: Guetersloh HRA 7075 > > > -----Original Message----- > From: Corvin Köhne > Sent: Tuesday, March 29, 2022 12:14 PM > Cc: Corvin Köhne ; Corvin Köhne ; Ard Biesheuvel ; Jiewen Yao ; Jordan Justen ; Rebecca Cran ; Peter Grehan ; devel@edk2.groups.io; FreeBSD Virtualization ; Gerd Hoffmann > Subject: [PATCH v2] OvmfPkg/BhyveBhfPkg: add support for QemuFwCfg > > From: Corvin Köhne > > QemuFwCfg is much more powerful than BhyveFwCtl. Sadly, BhyveFwCtl > decided to use the same IO ports as QemuFwCfg. It's not possible to use > both interfaces simultaneously. So, prefer QemuFwCfg over BhyveFwCtl. > > Signed-off-by: Corvin Köhne > Acked-by: Gerd Hoffmann > CC: Ard Biesheuvel > CC: Jiewen Yao > CC: Jordan Justen > CC: Rebecca Cran > CC: Peter Grehan > CC: devel@edk2.groups.io > CC: FreeBSD Virtualization > --- > OvmfPkg/Bhyve/AcpiPlatformDxe/AcpiPlatformDxe.inf | 1 + > OvmfPkg/Bhyve/AcpiPlatformDxe/Bhyve.c | 41 ++++++++++++++++++++--- > OvmfPkg/Bhyve/BhyveX64.dsc | 4 +-- > 3 files changed, 40 insertions(+), 6 deletions(-) > > diff --git a/OvmfPkg/Bhyve/AcpiPlatformDxe/AcpiPlatformDxe.inf b/OvmfPkg/Bhyve/AcpiPlatformDxe/AcpiPlatformDxe.inf > index 595fd055f9..94c65f32dc 100644 > --- a/OvmfPkg/Bhyve/AcpiPlatformDxe/AcpiPlatformDxe.inf > +++ b/OvmfPkg/Bhyve/AcpiPlatformDxe/AcpiPlatformDxe.inf > @@ -43,6 +43,7 @@ > MemoryAllocationLib > OrderedCollectionLib > PcdLib > + QemuFwCfgLib > UefiBootServicesTableLib > UefiDriverEntryPoint > UefiLib > diff --git a/OvmfPkg/Bhyve/AcpiPlatformDxe/Bhyve.c b/OvmfPkg/Bhyve/AcpiPlatformDxe/Bhyve.c > index 8e80aa33e1..e216a21bfa 100644 > --- a/OvmfPkg/Bhyve/AcpiPlatformDxe/Bhyve.c > +++ b/OvmfPkg/Bhyve/AcpiPlatformDxe/Bhyve.c > @@ -11,6 +11,41 @@ > #include > #include > #include > +#include // QemuFwCfgFindFile() > + > +STATIC > +EFI_STATUS > +EFIAPI > +BhyveGetCpuCount ( > + OUT UINT32 *CpuCount > + ) > +{ > + FIRMWARE_CONFIG_ITEM Item; > + UINTN Size; > + > + if (QemuFwCfgIsAvailable ()) { > + if (EFI_ERROR (QemuFwCfgFindFile ("opt/bhyve/hw.ncpu", &Item, &Size))) { > + return EFI_NOT_FOUND; > + } else if (Size != sizeof (*CpuCount)) { > + return EFI_BAD_BUFFER_SIZE; > + } > + > + QemuFwCfgSelectItem (Item); > + QemuFwCfgReadBytes (Size, CpuCount); > + > + return EFI_SUCCESS; > + } > + > + // > + // QemuFwCfg not available, try BhyveFwCtl. > + // > + Size = sizeof (*CpuCount); > + if (BhyveFwCtlGet ("hw.ncpu", CpuCount, &Size) == RETURN_SUCCESS) { > + return EFI_SUCCESS; > + } > + > + return EFI_UNSUPPORTED; > +} > > STATIC > EFI_STATUS > @@ -23,7 +58,6 @@ BhyveInstallAcpiMadtTable ( > ) > { > UINT32 CpuCount; > - UINTN cSize; > UINTN NewBufferSize; > EFI_ACPI_1_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER *Madt; > EFI_ACPI_1_0_PROCESSOR_LOCAL_APIC_STRUCTURE *LocalApic; > @@ -36,9 +70,8 @@ BhyveInstallAcpiMadtTable ( > ASSERT (AcpiTableBufferSize >= sizeof (EFI_ACPI_DESCRIPTION_HEADER)); > > // Query the host for the number of vCPUs > - CpuCount = 0; > - cSize = sizeof (CpuCount); > - if (BhyveFwCtlGet ("hw.ncpu", &CpuCount, &cSize) == RETURN_SUCCESS) { > + Status = BhyveGetCpuCount (&CpuCount); > + if (!EFI_ERROR (Status)) { > DEBUG ((DEBUG_INFO, "Retrieved CpuCount %d\n", CpuCount)); > ASSERT (CpuCount >= 1); > } else { > diff --git a/OvmfPkg/Bhyve/BhyveX64.dsc b/OvmfPkg/Bhyve/BhyveX64.dsc > index 5fa08bebd7..14070fd6dd 100644 > --- a/OvmfPkg/Bhyve/BhyveX64.dsc > +++ b/OvmfPkg/Bhyve/BhyveX64.dsc > @@ -163,8 +163,7 @@ > SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf > UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf > SerializeVariablesLib|OvmfPkg/Library/SerializeVariablesLib/SerializeVariablesLib.inf > - QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLibNull.inf > - QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/BaseQemuFwCfgS3LibNull.inf > + QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgDxeLib.inf > BhyveFwCtlLib|OvmfPkg/Library/BhyveFwCtlLib/BhyveFwCtlLib.inf > VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf > MemEncryptSevLib|OvmfPkg/Library/BaseMemEncryptSevLib/DxeMemEncryptSevLib.inf > @@ -355,6 +354,7 @@ > !endif > PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf > MpInitLib|UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.inf > + QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/DxeQemuFwCfgS3LibFwCfg.inf > > [LibraryClasses.common.UEFI_APPLICATION] > PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf > -- > 2.11.0 > > Beckhoff Automation GmbH & Co. KG | Managing Director: Dipl. Phys. Hans Beckhoff > Registered office: Verl, Germany | Register court: Guetersloh HRA 7075 > > > > > > > >