From: "Rebecca Cran" <quic_rcran@quicinc.com>
To: devel@edk2.groups.io, ardb@kernel.org,
"Corvin Köhne" <c.koehne@beckhoff.com>,
"Sean Brogan" <sean.brogan@microsoft.com>,
"Michael Kinney" <michael.d.kinney@intel.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>,
Jordan Justen <jordan.l.justen@intel.com>,
FreeBSD Virtualization <freebsd-virtualization@freebsd.org>,
Jiewen Yao <jiewen.yao@intel.com>,
Gerd Hoffmann <kraxel@redhat.com>,
Rebecca Cran <rebecca@bsdio.com>,
Peter Grehan <grehan@freebsd.org>
Subject: Re: [edk2-devel] [PATCH v6] OvmfPkg/Bhyve: add support for QemuFwCfg
Date: Fri, 29 Apr 2022 08:06:12 -0600 [thread overview]
Message-ID: <62288162-149e-f281-943c-c59de75ddce8@quicinc.com> (raw)
In-Reply-To: <CAMj1kXErxySQUio82X4eBuRP5pCxdYqDgNg7Kr0hs_9ucjz44w@mail.gmail.com>
The Standard_Error_Output.log file isn't even really useful (it should
show a diff), but there's something wrong with the coding style in Bhyve.c:
Files with formatting errors:
Formatting errors in Bhyve/AcpiPlatformDxe/Bhyve.c
--
Rebecca Cran
On 4/29/22 07:55, Ard Biesheuvel wrote:
> (+ sean, mike)
>
> I tried to merge this but it is rejected by CI, and I got lost in the
> maze of CI status and report pages. Could someone please figure out
> what's wrong?
>
> https://github.com/tianocore/edk2/pull/2841
>
> On Wed, 27 Apr 2022 at 12:07, Corvin Köhne <c.koehne@beckhoff.com> wrote:
>> 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 <c.koehne@beckhoff.com>
>> Reviewed-by: Rebecca Cran <rebecca@bsdio.com>
>> Acked-by: Gerd Hoffmann <kraxel@redhat.com>
>> Acked-by: Peter Grehan <grehan@freebsd.org>
>> Acked-by: Jiewen Yao <jiewen.yao@intel.com>
>> Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
>> Cc: Jordan Justen <jordan.l.justen@intel.com>
>> Cc: EDKII devel group <devel@edk2.groups.io>
>> Cc: FreeBSD Virtualization <freebsd-virtualization@freebsd.org>
>> ---
>> 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 <Library/BaseMemoryLib.h>
>> #include <Library/BhyveFwCtlLib.h>
>> #include <Library/MemoryAllocationLib.h>
>> +#include <Library/QemuFwCfgLib.h> // 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 a8fa4d38ab..002cef32a3 100644
>> --- a/OvmfPkg/Bhyve/BhyveX64.dsc
>> +++ b/OvmfPkg/Bhyve/BhyveX64.dsc
>> @@ -164,8 +164,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
>> @@ -358,6 +357,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
>>
>>
>>
>
>
>
>
prev parent reply other threads:[~2022-04-29 14:06 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-27 10:07 [PATCH v6] OvmfPkg/Bhyve: add support for QemuFwCfg Corvin Köhne
2022-04-29 13:55 ` Ard Biesheuvel
2022-04-29 14:06 ` Rebecca Cran [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=62288162-149e-f281-943c-c59de75ddce8@quicinc.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox