[edk2-devel] [PATCH v2] OvmfPkg: Update I/O port related to ACPI devices for CloudHv

Boeuf, Sebastien sebastien.boeuf at intel.com
Wed Sep 7 14:23:38 UTC 2022


Hi Jiewen,

After I looked into the UefiPayload example, I have a few questions on
how to implement things in OvmfPkg:

- Do you expect EFI_HOB_PLATFORM_INFO to be extended with two
additional fields AcpiTimerAddress and AcpiShutdownAddress? Or do you
think the ACPI_BOARD_INFO should be copied over from the the
UefiPayload package?

- Is InitializePlatform() from OvmfPkg/PlatformPei/Platform.c the
correct place where the FADT parsing should happen? I would need the
platform info HOB to be accessible from
OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.c,
OvmfPkg/Library/AcpiTimerLib/BaseRomAcpiTimerLib.c,
OvmfPkg/Library/AcpiTimerLib/BaseAcpiTimerLib.c,
OvmfPkg/Library/ResetSystemLib/DxeResetShutdown.c, and
OvmfPkg/Library/ResetSystemLib/BaseResetShutdown.c. 

Thanks,
Sebastien

On Tue, 2022-09-06 at 15:57 +0000, Yao, Jiewen wrote:
> One good example is in UefiPayloadPkg.
>  
> 1. At entrypoint, the UefiPayload parses the ACPI table and build
> gUefiAcpiBoardInfoGuid.https://github.com/tianocore/edk2/blob/mas
> ter/UefiPayloadPkg/UefiPayloadEntry/AcpiTable.c#L23
>  
> 1. Later, AcpiTimer driver uses the ACPI data in
> gUefiAcpiBoardInfoGuid.https://github.com/tianocore/edk2/blob/mas
> ter/UefiPayloadPkg/Library/AcpiTimerLib/AcpiTimerLib.c#L49
>  
> 1. Other driver may also use the ACPI data, such as
> PciExpressAddress. (from
> MCFG).https://github.com/tianocore/edk2/blob/master/UefiPayloadPk
> g/Library/PciSegmentInfoLibAcpiBoardInfo/PciSegmentInfoLibAcpiBoa
> rdInfo.c#L55
>  
>  
> Thank you
> Yao Jiewen
>  
>  
> From: Boeuf, Sebastien <sebastien.boeuf at intel.com> 
> Sent: Tuesday, September 6, 2022 11:41 PM
> To: Yao, Jiewen <jiewen.yao at intel.com>
> Cc: Justen, Jordan L <jordan.l.justen at intel.com>; kraxel at redhat.com;
> devel at edk2.groups.io
> Subject: Re: [PATCH v2] OvmfPkg: Update I/O port related to ACPI
> devices for CloudHv
>  
> Hi Jiewen,
>  
> We patched Cloud Hypervisor to support both I/O ports for at least
> two versions. And of course at some point users will have to rely on
> latest CloudHv binary (which we always build).
>  
> One improvement could be to retrieve the I/O ports addresses from the
> FADT table. Do you know if there's some code already doing that in
> OVMF?
>  
> Thanks,
> Sebastien
> From: Yao, Jiewen <jiewen.yao at intel.com>
> Sent: Tuesday, September 6, 2022 4:27 PM
> To: Boeuf, Sebastien <sebastien.boeuf at intel.com>
> Cc: Justen, Jordan L <jordan.l.justen at intel.com>;kraxel at redhat.com
> <kraxel at redhat.com>;devel at edk2.groups.io <devel at edk2.groups.io>
> Subject: RE: [PATCH v2] OvmfPkg: Update I/O port related to ACPI
> devices for CloudHv
>  
> This seems a big incompatible change.
>  
> I feel this is weird to hardcode the configuration here.
>  
> How the OVMF binary knows it runs on a new CloudHv or old CloudHv?
>  
> Can we have a mechanism to detect the data at runtime? E.g. read some
> PCI register ?
>  
>  
>  
>  
> From: Boeuf, Sebastien <sebastien.boeuf at intel.com>
> Sent: Tuesday, September 6, 2022 10:08 PM
> To: Yao, Jiewen <jiewen.yao at intel.com>
> Cc: Justen, Jordan L <jordan.l.justen at intel.com>;kraxel at redhat.com;
> devel at edk2.groups.io
> Subject: Re: [PATCH v2] OvmfPkg: Update I/O port related to ACPI
> devices for CloudHv
>  
> Hi Jiewen,
>  
> Do you think this could be merged?
>  
> Thanks,
> Sebastien
> From: Boeuf, Sebastien <sebastien.boeuf at intel.com>
> Sent: Friday, August 19, 2022 11:59 AM
> To: devel at edk2.groups.io <devel at edk2.groups.io>
> Cc: Yao, Jiewen <jiewen.yao at intel.com>; Justen, Jordan L
> <jordan.l.justen at intel.com>;kraxel at redhat.com <kraxel at redhat.com>;
> Boeuf, Sebastien <sebastien.boeuf at intel.com>
> Subject: [PATCH v2] OvmfPkg: Update I/O port related to ACPI devices
> for CloudHv
>  
> From: Sebastien Boeuf <sebastien.boeuf at intel.com>
> 
> Both ACPI shutdown and ACPI PM timer devices has been moved to
> different
> port addresses in the latest version of Cloud Hypervisor. These
> changes
> need to be reflected on the OVMF firmware.
> 
> Acked-by: Gerd Hoffmann <kraxel at redhat.com>
> Signed-off-by: Sebastien Boeuf <sebastien.boeuf at intel.com>
> ---
>  OvmfPkg/Include/IndustryStandard/CloudHv.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/OvmfPkg/Include/IndustryStandard/CloudHv.h
> b/OvmfPkg/Include/IndustryStandard/CloudHv.h
> index d31ecc9eec..527c236f48 100644
> --- a/OvmfPkg/Include/IndustryStandard/CloudHv.h
> +++ b/OvmfPkg/Include/IndustryStandard/CloudHv.h
> @@ -16,12 +16,12 @@
>  //
> 
>  // ACPI timer address
> 
>  //
> 
> -#define CLOUDHV_ACPI_TIMER_IO_ADDRESS  0xb008
> 
> +#define CLOUDHV_ACPI_TIMER_IO_ADDRESS  0x0608
> 
>  
> 
>  //
> 
>  // ACPI shutdown device address
> 
>  //
> 
> -#define CLOUDHV_ACPI_SHUTDOWN_IO_ADDRESS  0x03c0
> 
> +#define CLOUDHV_ACPI_SHUTDOWN_IO_ADDRESS  0x0600
> 
>  
> 
>  //
> 
>  // 32-bit MMIO memory hole base address
> 

---------------------------------------------------------------------
Intel Corporation SAS (French simplified joint stock company)
Registered headquarters: "Les Montalets"- 2, rue de Paris, 
92196 Meudon Cedex, France
Registration Number:  302 456 199 R.C.S. NANTERRE
Capital: 5 208 026.16 Euros

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#93424): https://edk2.groups.io/g/devel/message/93424
Mute This Topic: https://groups.io/mt/93121228/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-




More information about the edk2-devel-archive mailing list