Re: [edk2] [PATCH 0/6] Add kvmtool emulated platform support for ARM

2018-10-15 Thread Leif Lindholm
On Sat, Oct 13, 2018 at 11:42:00PM +0200, Laszlo Ersek wrote:
> On 10/12/18 16:40, Sami Mujawar wrote:
> > Kvmtool is a virtual machine manager that enables hosting KVM
> > guests. ARM is working to enhance kvmtool support to enable 
> > launching of KVM guest with UEFI support.
> 
> Why is QEMU not good enough? (With or without KVM.)
> 
> Another platform I've recently learned about (for QEMU) is the SBSA
> reference machine type. I'm concerned that this kind of divergence will
> be hard to maintain in a common firmware package. Here's my understanding:
> 
> - ArmVirtQemu: supposed to run data center / cloud workloads
> - SBSA reference machine: supposed to emulate physical machines as
>   closely as possible; primarily intended as a development environment
>   for physical machines

If it helps - try to not think of SBSA QEMU as a QEMU target.
It's pretending to be a hardware platform and should be treated as
such. While we may have started the firmware port from ArmVirtPkg (as
the qemu machine was being developed), I don't expect it to ultimately
end up there when it goes upstream.

Regards,

Leif
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] [PATCH 0/6] Add kvmtool emulated platform support for ARM

2018-10-13 Thread Laszlo Ersek
On 10/12/18 16:40, Sami Mujawar wrote:
> Kvmtool is a virtual machine manager that enables hosting KVM
> guests. ARM is working to enhance kvmtool support to enable 
> launching of KVM guest with UEFI support.

Why is QEMU not good enough? (With or without KVM.)

Another platform I've recently learned about (for QEMU) is the SBSA
reference machine type. I'm concerned that this kind of divergence will
be hard to maintain in a common firmware package. Here's my understanding:

- ArmVirtQemu: supposed to run data center / cloud workloads
- SBSA reference machine: supposed to emulate physical machines as
  closely as possible; primarily intended as a development environment
  for physical machines
- firmware for the kvmtool platform: ?

> This patch series enables UEFI support for kvmtool's emulated ARM
> platform and is required to allow testing of kvmtool enhancements.
> 
> Note: 
> 1. These kvmtool platform support patches currently expose
>the kvmtool provided DT to the OS. Support for ACPI is
>planned, using Dynamic Tables Framework and should be
>available in the near future.

The Dynamic ACPI Tables Framework is not useful under QEMU, because QEMU
generates its own set of tables.

The framework would be very useful (I think) on the SBSA reference
machine, given that the framework would be shipped (presumably) on
physical machines as well. Why is it useful for kvmtool?

> 2. This new platform port can only be used with the updated
>kvmtool that is currently under development review.
> 
> The changes can be seen at 
> https://github.com/samimujawar/edk2/tree/299_kvmtool_plat_support_v1

I think it's valid to develop and review both streams of patches in
parallel. Usually firmware maintainers ask for the hardware emulation
bits to be pushed first.

Thanks
Laszlo

> 
> Sami Mujawar (6):
>   PcAtChipsetPkg: Add MMIO Support to SerialIo Lib
>   PcAtChipsetPkg: Add MMIO Support to RTC driver
>   MdeModulePkg: Map persistent (NV) memory
>   ArmVirtPkg: Save DT base address from X0 in PCD
>   ArmVirtPkg: Add kvmtool platform driver
>   ArmVirtPkg: Support for kvmtool emulated platform
> 
>  ArmVirtPkg/ArmVirtKvmTool.dsc  | 
> 390 
>  ArmVirtPkg/ArmVirtKvmTool.fdf  | 
> 297 +++
>  ArmVirtPkg/ArmVirtPkg.dec  | 
>  12 +-
>  ArmVirtPkg/KvmtoolPlatformDxe/KvmtoolPlatformDxe.c | 
> 211 +++
>  ArmVirtPkg/KvmtoolPlatformDxe/KvmtoolPlatformDxe.inf   | 
>  60 +++
>  ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S| 
>   9 +-
>  MdeModulePkg/MdeModulePkg.dec  | 
>   9 +
>  MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariable.c| 
>  77 +++-
>  MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf| 
>   6 +
>  PcAtChipsetPkg/Library/SerialIoLib/SerialIoLib.inf | 
>   4 +
>  PcAtChipsetPkg/Library/SerialIoLib/SerialPortLib.c | 
>  98 -
>  PcAtChipsetPkg/PcAtChipsetPkg.dec  | 
>   8 +
>  PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtc.c | 
>  38 +-
>  PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtcEntry.c| 
> 112 +-
>  PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf | 
>   8 +
>  15 files changed, 1309 insertions(+), 30 deletions(-)
>  create mode 100644 ArmVirtPkg/ArmVirtKvmTool.dsc
>  create mode 100644 ArmVirtPkg/ArmVirtKvmTool.fdf
>  create mode 100644 ArmVirtPkg/KvmtoolPlatformDxe/KvmtoolPlatformDxe.c
>  create mode 100644 ArmVirtPkg/KvmtoolPlatformDxe/KvmtoolPlatformDxe.inf
> 

___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


[edk2] [PATCH 0/6] Add kvmtool emulated platform support for ARM

2018-10-12 Thread Sami Mujawar
Kvmtool is a virtual machine manager that enables hosting KVM
guests. ARM is working to enhance kvmtool support to enable 
launching of KVM guest with UEFI support.

This patch series enables UEFI support for kvmtool's emulated ARM
platform and is required to allow testing of kvmtool enhancements.

Note: 
1. These kvmtool platform support patches currently expose
   the kvmtool provided DT to the OS. Support for ACPI is
   planned, using Dynamic Tables Framework and should be
   available in the near future.
2. This new platform port can only be used with the updated
   kvmtool that is currently under development review.

The changes can be seen at 
https://github.com/samimujawar/edk2/tree/299_kvmtool_plat_support_v1

Sami Mujawar (6):
  PcAtChipsetPkg: Add MMIO Support to SerialIo Lib
  PcAtChipsetPkg: Add MMIO Support to RTC driver
  MdeModulePkg: Map persistent (NV) memory
  ArmVirtPkg: Save DT base address from X0 in PCD
  ArmVirtPkg: Add kvmtool platform driver
  ArmVirtPkg: Support for kvmtool emulated platform

 ArmVirtPkg/ArmVirtKvmTool.dsc  | 
390 
 ArmVirtPkg/ArmVirtKvmTool.fdf  | 
297 +++
 ArmVirtPkg/ArmVirtPkg.dec  |  
12 +-
 ArmVirtPkg/KvmtoolPlatformDxe/KvmtoolPlatformDxe.c | 
211 +++
 ArmVirtPkg/KvmtoolPlatformDxe/KvmtoolPlatformDxe.inf   |  
60 +++
 ArmVirtPkg/PrePi/AArch64/ModuleEntryPoint.S|   
9 +-
 MdeModulePkg/MdeModulePkg.dec  |   
9 +
 MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariable.c|  
77 +++-
 MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf|   
6 +
 PcAtChipsetPkg/Library/SerialIoLib/SerialIoLib.inf |   
4 +
 PcAtChipsetPkg/Library/SerialIoLib/SerialPortLib.c |  
98 -
 PcAtChipsetPkg/PcAtChipsetPkg.dec  |   
8 +
 PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtc.c |  
38 +-
 PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcRtcEntry.c| 
112 +-
 PcAtChipsetPkg/PcatRealTimeClockRuntimeDxe/PcatRealTimeClockRuntimeDxe.inf |   
8 +
 15 files changed, 1309 insertions(+), 30 deletions(-)
 create mode 100644 ArmVirtPkg/ArmVirtKvmTool.dsc
 create mode 100644 ArmVirtPkg/ArmVirtKvmTool.fdf
 create mode 100644 ArmVirtPkg/KvmtoolPlatformDxe/KvmtoolPlatformDxe.c
 create mode 100644 ArmVirtPkg/KvmtoolPlatformDxe/KvmtoolPlatformDxe.inf

-- 
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'


___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel