From nobody Wed Apr 6 17:45:44 2022 X-Original-To: freebsd-virtualization@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id B8E501AA5FB2 for ; Wed, 6 Apr 2022 17:45:55 +0000 (UTC) (envelope-from rebecca@bsdio.com) Received: from wout4-smtp.messagingengine.com (wout4-smtp.messagingengine.com [64.147.123.20]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4KYX425TNvz3DR9; Wed, 6 Apr 2022 17:45:54 +0000 (UTC) (envelope-from 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 List-Id: Discussion List-Archive: https://lists.freebsd.org/archives/freebsd-virtualization List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-virtualization@freebsd.org X-BeenThere: freebsd-virtualization@freebsd.org 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 Content-Language: en-US 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-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 4KYX425TNvz3DR9 X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdio.com header.s=fm2 header.b=DM+UEG7F; dkim=pass header.d=messagingengine.com header.s=fm3 header.b=gRPKh3CK; dmarc=none; spf=pass (mx1.freebsd.org: domain of rebecca@bsdio.com designates 64.147.123.20 as permitted sender) smtp.mailfrom=rebecca@bsdio.com X-Spamd-Result: default: False [-3.10 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[bsdio.com:s=fm2,messagingengine.com:s=fm3]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:64.147.123.20]; NEURAL_HAM_LONG(-1.00)[-1.000]; TAGGED_RCPT(0.00)[tianocore]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[bsdio.com]; DWL_DNSWL_LOW(-1.00)[messagingengine.com:dkim]; RCVD_COUNT_THREE(0.00)[4]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[bsdio.com:+,messagingengine.com:+]; NEURAL_HAM_SHORT(-1.00)[-0.996]; RCPT_COUNT_SEVEN(0.00)[8]; MLMMJ_DEST(0.00)[freebsd-virtualization]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:29838, ipnet:64.147.123.0/24, country:US]; MID_RHS_MATCH_FROM(0.00)[]; SUSPICIOUS_RECIPS(1.50)[]; RCVD_IN_DNSWL_LOW(-0.10)[64.147.123.20:from] X-ThisMailContainsUnwantedMimeParts: N [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 > > > > > > -=-=-=-=-=-=-=-=-=-=-=- > Groups.io Links: You receive all messages sent to this group. > View/Reply Online (#88452): https://edk2.groups.io/g/devel/message/88452 > Mute This Topic: https://groups.io/mt/90105103/3953573 > Group Owner: devel+owner@edk2.groups.io > Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@bsdio.com] > -=-=-=-=-=-=-=-=-=-=-=- > >