public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH v5] OvmfPkg/Bhyve: add support for QemuFwCfg
@ 2022-04-26 13:08 Corvin Köhne
  2022-04-26 14:07 ` Yao, Jiewen
  0 siblings, 1 reply; 7+ messages in thread
From: Corvin Köhne @ 2022-04-26 13:08 UTC (permalink / raw)
  Cc: Corvin Köhne, Ard Biesheuvel, Jordan Justen, devel,
	FreeBSD Virtualization, Jiewen Yao, Gerd Hoffmann, Rebecca Cran,
	Peter Grehan

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: 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 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




^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v5] OvmfPkg/Bhyve: add support for QemuFwCfg
  2022-04-26 13:08 [PATCH v5] OvmfPkg/Bhyve: add support for QemuFwCfg Corvin Köhne
@ 2022-04-26 14:07 ` Yao, Jiewen
  2022-04-26 14:23   ` [edk2-devel] " Rebecca Cran
  0 siblings, 1 reply; 7+ messages in thread
From: Yao, Jiewen @ 2022-04-26 14:07 UTC (permalink / raw)
  To: Köhne, Corvin
  Cc: Köhne, Corvin, Ard Biesheuvel, Justen, Jordan L,
	devel@edk2.groups.io, FreeBSD Virtualization, Gerd Hoffmann,
	Rebecca Cran, Peter Grehan

Hi
CI failed - https://github.com/tianocore/edk2/pull/2829

Would you please try CI by yourself before you submit next patch?
It is mandatory process.

Thank you
Yao Jiewen

> -----Original Message-----
> From: Corvin Köhne <c.koehne@beckhoff.com>
> Sent: Tuesday, April 26, 2022 9:08 PM
> Cc: Köhne, Corvin <c.koehne@beckhoff.com>; Ard Biesheuvel
> <ardb+tianocore@kernel.org>; Justen, Jordan L <jordan.l.justen@intel.com>;
> devel@edk2.groups.io; FreeBSD Virtualization <freebsd-
> virtualization@freebsd.org>; Yao, Jiewen <jiewen.yao@intel.com>; Gerd
> Hoffmann <kraxel@redhat.com>; Rebecca Cran <rebecca@bsdio.com>; Peter
> Grehan <grehan@freebsd.org>
> Subject: [PATCH v5] OvmfPkg/Bhyve: add support for QemuFwCfg
> 
> 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: 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 5fa08bebd7..14070fd6dd 100644
> --- a/OvmfPkg/Bhyve/BhyveX64.dsc
> +++ b/OvmfPkg/Bhyve/BhyveX64.dsc
> @@ -163,8 +163,7 @@
> 
> SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/D
> xeSecurityManagementLib.inf
>    UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf
> 
> SerializeVariablesLib|OvmfPkg/Library/SerializeVariablesLib/SerializeVariablesLi
> b.inf
> -  QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLibNull.inf
> -
> QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/BaseQemuFwCfgS3LibNu
> ll.inf
> +  QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgDxeLib.inf
>    BhyveFwCtlLib|OvmfPkg/Library/BhyveFwCtlLib/BhyveFwCtlLib.inf
>    VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf
> 
> MemEncryptSevLib|OvmfPkg/Library/BaseMemEncryptSevLib/DxeMemEncryptS
> evLib.inf
> @@ -355,6 +354,7 @@
>  !endif
>    PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf
>    MpInitLib|UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.inf
> +
> QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/DxeQemuFwCfgS3LibFwC
> fg.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
> 
> 


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [edk2-devel] [PATCH v5] OvmfPkg/Bhyve: add support for QemuFwCfg
  2022-04-26 14:07 ` Yao, Jiewen
@ 2022-04-26 14:23   ` Rebecca Cran
  2022-04-27 10:06     ` Corvin Köhne
  0 siblings, 1 reply; 7+ messages in thread
From: Rebecca Cran @ 2022-04-26 14:23 UTC (permalink / raw)
  To: devel, jiewen.yao, Köhne, Corvin
  Cc: Ard Biesheuvel, Justen, Jordan L, FreeBSD Virtualization,
	Gerd Hoffmann, Rebecca Cran, Peter Grehan

Specifically:

The commit message format is not valid:

* 'CC' should be 'Cc'
* 'CC' should be 'Cc'
* 'CC' should be 'Cc'





* 'CC' should be 'Cc'












The 'Cc' email address is not valid:
* Email format is invalid: devel@edk2.groups.io
https://github.com/tianocore/tianocore.github.io/wiki/Commit-Message-Format 
<https://github.com/tianocore/tianocore.github.io/wiki/Commit-Message-Format> 


-- 
Rebecca Cran

On 4/26/22 08:07, Yao, Jiewen wrote:
> Hi
> CI failed -https://github.com/tianocore/edk2/pull/2829
>
> Would you please try CI by yourself before you submit next patch?
> It is mandatory process.
>
> Thank you
> Yao Jiewen
>
>> -----Original Message-----
>> From: Corvin Köhne<c.koehne@beckhoff.com>
>> Sent: Tuesday, April 26, 2022 9:08 PM
>> Cc: Köhne, Corvin<c.koehne@beckhoff.com>; Ard Biesheuvel
>> <ardb+tianocore@kernel.org>; Justen, Jordan L<jordan.l.justen@intel.com>;
>> devel@edk2.groups.io; FreeBSD Virtualization <freebsd-
>> virtualization@freebsd.org>; Yao, Jiewen <jiewen.yao@intel.com>; Gerd
>> Hoffmann<kraxel@redhat.com>; Rebecca Cran<rebecca@bsdio.com>; Peter
>> Grehan<grehan@freebsd.org>
>> Subject: [PATCH v5] OvmfPkg/Bhyve: add support for QemuFwCfg
>>
>> 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: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 5fa08bebd7..14070fd6dd 100644
>> --- a/OvmfPkg/Bhyve/BhyveX64.dsc
>> +++ b/OvmfPkg/Bhyve/BhyveX64.dsc
>> @@ -163,8 +163,7 @@
>>
>> SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/D
>> xeSecurityManagementLib.inf
>>     UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf
>>
>> SerializeVariablesLib|OvmfPkg/Library/SerializeVariablesLib/SerializeVariablesLi
>> b.inf
>> -  QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLibNull.inf
>> -
>> QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/BaseQemuFwCfgS3LibNu
>> ll.inf
>> +  QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgDxeLib.inf
>>     BhyveFwCtlLib|OvmfPkg/Library/BhyveFwCtlLib/BhyveFwCtlLib.inf
>>     VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf
>>
>> MemEncryptSevLib|OvmfPkg/Library/BaseMemEncryptSevLib/DxeMemEncryptS
>> evLib.inf
>> @@ -355,6 +354,7 @@
>>   !endif
>>     PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf
>>     MpInitLib|UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.inf
>> +
>> QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/DxeQemuFwCfgS3LibFwC
>> fg.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
>>
>>
> 
>
>


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [edk2-devel] [PATCH v5] OvmfPkg/Bhyve: add support for QemuFwCfg
  2022-04-26 14:23   ` [edk2-devel] " Rebecca Cran
@ 2022-04-27 10:06     ` Corvin Köhne
  2022-05-02 12:40       ` Gerd Hoffmann
  0 siblings, 1 reply; 7+ messages in thread
From: Corvin Köhne @ 2022-04-27 10:06 UTC (permalink / raw)
  To: Rebecca Cran, devel@edk2.groups.io, jiewen.yao@intel.com
  Cc: Ard Biesheuvel, Justen, Jordan L, FreeBSD Virtualization,
	Gerd Hoffmann, Rebecca Cran, Peter Grehan

Hi,

sry, I'm unfamiliar with the merge process and how to try CI.
I've updated my patch. It should pass CI now.


Thanks
Corvin

Beckhoff Automation GmbH & Co. KG | Managing Director: Dipl. Phys. Hans Beckhoff
Registered office: Verl, Germany | Register court: Guetersloh HRA 7075


-----Original Message-----
From: Rebecca Cran <quic_rcran@quicinc.com>
Sent: Tuesday, April 26, 2022 4:23 PM
To: devel@edk2.groups.io; jiewen.yao@intel.com; Corvin Köhne <C.Koehne@beckhoff.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>; Justen, Jordan L <jordan.l.justen@intel.com>; FreeBSD Virtualization <freebsd-virtualization@freebsd.org>; Gerd Hoffmann <kraxel@redhat.com>; Rebecca Cran <rebecca@bsdio.com>; Peter Grehan <grehan@freebsd.org>
Subject: Re: [edk2-devel] [PATCH v5] OvmfPkg/Bhyve: add support for QemuFwCfg

CAUTION: External Email!!
Specifically:

The commit message format is not valid:

* 'CC' should be 'Cc'
* 'CC' should be 'Cc'
* 'CC' should be 'Cc'





* 'CC' should be 'Cc'












The 'Cc' email address is not valid:
* Email format is invalid: devel@edk2.groups.io
https://github.com/tianocore/tianocore.github.io/wiki/Commit-Message-Format
<https://github.com/tianocore/tianocore.github.io/wiki/Commit-Message-Format>


--
Rebecca Cran

On 4/26/22 08:07, Yao, Jiewen wrote:
> Hi
> CI failed -https://github.com/tianocore/edk2/pull/2829
>
> Would you please try CI by yourself before you submit next patch?
> It is mandatory process.
>
> Thank you
> Yao Jiewen
>
>> -----Original Message-----
>> From: Corvin Köhne<c.koehne@beckhoff.com>
>> Sent: Tuesday, April 26, 2022 9:08 PM
>> Cc: Köhne, Corvin<c.koehne@beckhoff.com>; Ard Biesheuvel
>> <ardb+tianocore@kernel.org>; Justen, Jordan L<jordan.l.justen@intel.com>;
>> devel@edk2.groups.io; FreeBSD Virtualization <freebsd-
>> virtualization@freebsd.org>; Yao, Jiewen <jiewen.yao@intel.com>; Gerd
>> Hoffmann<kraxel@redhat.com>; Rebecca Cran<rebecca@bsdio.com>; Peter
>> Grehan<grehan@freebsd.org>
>> Subject: [PATCH v5] OvmfPkg/Bhyve: add support for QemuFwCfg
>>
>> 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: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 5fa08bebd7..14070fd6dd 100644
>> --- a/OvmfPkg/Bhyve/BhyveX64.dsc
>> +++ b/OvmfPkg/Bhyve/BhyveX64.dsc
>> @@ -163,8 +163,7 @@
>>
>> SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/D
>> xeSecurityManagementLib.inf
>>     UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf
>>
>> SerializeVariablesLib|OvmfPkg/Library/SerializeVariablesLib/SerializeVariablesLi
>> b.inf
>> -  QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLibNull.inf
>> -
>> QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/BaseQemuFwCfgS3LibNu
>> ll.inf
>> +  QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgDxeLib.inf
>>     BhyveFwCtlLib|OvmfPkg/Library/BhyveFwCtlLib/BhyveFwCtlLib.inf
>>     VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf
>>
>> MemEncryptSevLib|OvmfPkg/Library/BaseMemEncryptSevLib/DxeMemEncryptS
>> evLib.inf
>> @@ -355,6 +354,7 @@
>>   !endif
>>     PciLib|OvmfPkg/Library/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf
>>     MpInitLib|UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.inf
>> +
>> QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/DxeQemuFwCfgS3LibFwC
>> fg.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
>>
>>
> 
>
>


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [edk2-devel] [PATCH v5] OvmfPkg/Bhyve: add support for QemuFwCfg
  2022-04-27 10:06     ` Corvin Köhne
@ 2022-05-02 12:40       ` Gerd Hoffmann
  2022-05-02 14:47         ` Corvin Köhne
  0 siblings, 1 reply; 7+ messages in thread
From: Gerd Hoffmann @ 2022-05-02 12:40 UTC (permalink / raw)
  To: Corvin Köhne
  Cc: Rebecca Cran, devel@edk2.groups.io, jiewen.yao@intel.com,
	Ard Biesheuvel, Justen, Jordan L, FreeBSD Virtualization,
	Rebecca Cran, Peter Grehan

On Wed, Apr 27, 2022 at 10:06:26AM +0000, Corvin Köhne wrote:
> Hi,
> 
> sry, I'm unfamiliar with the merge process and how to try CI.
> I've updated my patch. It should pass CI now.

CI runs on all pull requests, so just open a draft pull request, then
check pull request status.

take care,
  Gerd


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [edk2-devel] [PATCH v5] OvmfPkg/Bhyve: add support for QemuFwCfg
  2022-05-02 12:40       ` Gerd Hoffmann
@ 2022-05-02 14:47         ` Corvin Köhne
  2022-05-02 16:51           ` Ard Biesheuvel
  0 siblings, 1 reply; 7+ messages in thread
From: Corvin Köhne @ 2022-05-02 14:47 UTC (permalink / raw)
  To: Gerd Hoffmann
  Cc: Rebecca Cran, devel@edk2.groups.io, jiewen.yao@intel.com,
	Ard Biesheuvel, Justen, Jordan L, FreeBSD Virtualization,
	Rebecca Cran, Peter Grehan

Hi

> CI runs on all pull requests, so just open a draft pull request, then
> check pull request status.

I know now. Thanks. I did so before sending v5 to the mailing list and
all checks have passed.
https://github.com/tianocore/edk2/pull/2830

Maybe something went wrong when sending the patch to the mailing
list. Wouldn't it be easier to cherry-pick the commit from my fork?
https://github.com/Beckhoff/edk2/commit/e3bc7e1ecca29e1efc39ce811ace9028642c3228
Or just merging my pull request?


Best regards
Corvin


Beckhoff Automation GmbH & Co. KG | Managing Director: Dipl. Phys. Hans Beckhoff
Registered office: Verl, Germany | Register court: Guetersloh HRA 7075




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [edk2-devel] [PATCH v5] OvmfPkg/Bhyve: add support for QemuFwCfg
  2022-05-02 14:47         ` Corvin Köhne
@ 2022-05-02 16:51           ` Ard Biesheuvel
  0 siblings, 0 replies; 7+ messages in thread
From: Ard Biesheuvel @ 2022-05-02 16:51 UTC (permalink / raw)
  To: edk2-devel-groups-io, Corvin Köhne
  Cc: Gerd Hoffmann, Rebecca Cran, jiewen.yao@intel.com, Ard Biesheuvel,
	Justen, Jordan L, FreeBSD Virtualization, Rebecca Cran,
	Peter Grehan

On Mon, 2 May 2022 at 16:47, Corvin Köhne <c.koehne@beckhoff.com> wrote:
>
> Hi
>
> > CI runs on all pull requests, so just open a draft pull request, then
> > check pull request status.
>
> I know now. Thanks. I did so before sending v5 to the mailing list and
> all checks have passed.
> https://github.com/tianocore/edk2/pull/2830
>
> Maybe something went wrong when sending the patch to the mailing
> list. Wouldn't it be easier to cherry-pick the commit from my fork?
> https://github.com/Beckhoff/edk2/commit/e3bc7e1ecca29e1efc39ce811ace9028642c3228
> Or just merging my pull request?
>

Merged as #2841

Thanks all,

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-05-02 16:51 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-04-26 13:08 [PATCH v5] OvmfPkg/Bhyve: add support for QemuFwCfg Corvin Köhne
2022-04-26 14:07 ` Yao, Jiewen
2022-04-26 14:23   ` [edk2-devel] " Rebecca Cran
2022-04-27 10:06     ` Corvin Köhne
2022-05-02 12:40       ` Gerd Hoffmann
2022-05-02 14:47         ` Corvin Köhne
2022-05-02 16:51           ` Ard Biesheuvel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox