Thanks Ard for the contribution, I will try to have a look later this week.
Some quick comments: - Which version of EDK2 should apply the patchset? I suspect the patchset will not apply... I saw some KVM comments in the timer patches that were not part of the patch. - I will probably need a new patchset with 'Contributed-under: TianoCore Contribution Agreement 1.0' added to the commit message to make sure you agree with the Tianocore contribution agreement. See Tianocore contribution agreement. - I would be happy to test your patchset. Do you have any instructions? - I had some FDT comments, But I have just addressed them in my previous email. Olivier > -----Original Message----- > From: Ard Biesheuvel [mailto:ard.biesheu...@linaro.org] > Sent: 25 August 2014 20:19 > To: ler...@redhat.com; Olivier Martin; edk2- > de...@lists.sourceforge.net; peter.mayd...@linaro.org; > christoffer.d...@linaro.org; drjo...@redhat.com; > ilias.bi...@linaro.org; leif.lindh...@linaro.org > Cc: Ard Biesheuvel > Subject: [PATCH 00/10] add support for AArch64 QEMU/KVM > > This series adds a platform config to support QEMU based virtual > machines, > either in TCG or KVM mode. These virtual machines declare their > platform > configuration by passing a device tree which needs to be parsed by > Tianocore > rather than relying on hardcoded peripherals. > > Currently, the only assumptions made with respect to the platform > config are: > - at least 1 MB of DRAM at 0x4000_0000 > - NOR flash at 0x0 > - PL011 UART at 0x900_0000 > > Peripherals detected at runtime: > - GIC interrupt controller > - timer interrupt line > - PL031 RTC > - system memory base and size, although changing the base is not > currently > supported > - virtio MMIO transports > > There are some dependencies on QEMU and KVM changes that are not yet > upstream: > - QEMU: add -bios param and wire it up to NOR flash banks at 0x0 and > 0x400_0000 > - QEMU: copy DTB to base of DRAM if no -kernel option is passed > - KVM: add support for CAP_READONLY_MEM > - KVM: advance PC when resuming guest after a WFI > > Note that most of the patches are minor ones that make certain > peripherals > configurable at runtime. The patch 'ArmPlatformPkg: add support for a > QEMU/mach-virt target' is the primary patch that implements most of the > QEMU/KVM > interface logic, most notably parsing of the device tree to set PCDs > containing > base addresses etc. > > The code was tested in TCG mode on x64_64 and in TCG and KVM mode on a > ARMv8 > Foundation Model (software emulator) > > Ard Biesheuvel (9): > Add minimal support for passing a device tree image > PeiCore: allow FVs residing at physical address 0x0 > ArmPkg: allow dynamically discovered virtual timer interrupt > ArmPkg: allow dynamic GIC base addresses > ArmPlatformPkg/PrePeiCore: remove GIC related PCDs from unicore > ArmPlatformPkg: allow dynamically discovered PL031 RTC > ArmPkg,ArmPlatformPkg: allow dynamic PCDs for memory base and size > ArmPlatformPkg: add support for a QEMU/mach-virt target > AArch64-KVM: add support for non-volatile variable store > > Michael Casadevall (1): > ArmPkg/TimerDxe: allow virtual timer to be selected > > ArmPkg/ArmPkg.dec | 34 +- > ArmPkg/Drivers/ArmGic/ArmGicDxe.c | 34 +- > ArmPkg/Drivers/ArmGic/ArmGicDxe.inf | 4 +- > ArmPkg/Drivers/TimerDxe/TimerDxe.c | 12 +- > ArmPkg/Drivers/TimerDxe/TimerDxe.inf | 3 + > ArmPkg/Library/ArmLib/AArch64/AArch64ArchTimer.c | 66 +++- > ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf | 2 + > ArmPkg/Library/ArmLib/AArch64/AArch64LibPrePi.inf | 1 + > ArmPkg/Library/ArmLib/AArch64/AArch64LibSec.inf | 1 + > ArmPkg/Library/BdsLib/BdsLib.inf | 5 +- > .../AArch64Virtualization-KVM.dsc | 236 > ++++++++++++++ > .../AArch64Virtualization-KVM.fdf | 301 > ++++++++++++++++++ > .../AArch64Virtualization.dsc.inc | 354 > +++++++++++++++++++++ > .../AArch64VirtualizationPkg/Driver/VirtFdt.inf | 60 ++++ > .../AArch64VirtualizationPkg/Driver/VirtFdtDxe.c | 216 +++++++++++++ > .../Include/Platform/KVM/ArmPlatform.h | 38 +++ > .../AArch64VirtualizationLibKVM/AArch64KVMLib.inf | 53 +++ > .../Library/AArch64VirtualizationLibKVM/KVM.c | 127 ++++++++ > .../AArch64VirtualizationLibKVM/KVMHelper.S | 70 ++++ > .../Library/AArch64VirtualizationLibKVM/KVMMem.c | 106 ++++++ > .../AArch64VirtualizationSysConfigLibKVM.c | 95 ++++++ > .../AArch64VirtualizationSysConfigLibKVM.inf | 35 ++ > .../Library/NorFlashKVM/NorFlashKVM.c | 63 ++++ > .../Library/NorFlashKVM/NorFlashKVM.inf | 35 ++ > .../Library/ResetSystemLib/ResetSystemLib.c | 96 ++++++ > .../Library/ResetSystemLib/ResetSystemLib.inf | 33 ++ > ArmPlatformPkg/ArmPlatformPkg.dec | 9 +- > .../PrePi/PrePiArmPlatformGlobalVariableLib.inf | 7 +- > ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.inf | 6 +- > ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.c | 16 +- > ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf | 6 +- > ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf | 2 - > ArmPlatformPkg/PrePi/PeiUniCore.inf | 6 +- > MdeModulePkg/Core/Pei/FwVol/FwVol.c | 6 +- > MdeModulePkg/MdeModulePkg.dec | 2 + > MdeModulePkg/MdeModulePkg.dsc | 2 + > .../Universal/Fdt/FdtTableDxe/FdtTableDxe.c | 33 ++ > .../Universal/Fdt/FdtTableDxe/FdtTableDxe.inf | 48 +++ > MdePkg/Include/Guid/FdtTable.h | 26 ++ > MdePkg/MdePkg.dec | 3 + > 40 files changed, 2181 insertions(+), 71 deletions(-) > create mode 100644 > ArmPlatformPkg/AArch64VirtualizationPkg/AArch64Virtualization-KVM.dsc > create mode 100644 > ArmPlatformPkg/AArch64VirtualizationPkg/AArch64Virtualization-KVM.fdf > create mode 100644 > ArmPlatformPkg/AArch64VirtualizationPkg/AArch64Virtualization.dsc.inc > create mode 100644 > ArmPlatformPkg/AArch64VirtualizationPkg/Driver/VirtFdt.inf > create mode 100644 > ArmPlatformPkg/AArch64VirtualizationPkg/Driver/VirtFdtDxe.c > create mode 100644 > ArmPlatformPkg/AArch64VirtualizationPkg/Include/Platform/KVM/ArmPlatfor > m.h > create mode 100644 > ArmPlatformPkg/AArch64VirtualizationPkg/Library/AArch64VirtualizationLi > bKVM/AArch64KVMLib.inf > create mode 100644 > ArmPlatformPkg/AArch64VirtualizationPkg/Library/AArch64VirtualizationLi > bKVM/KVM.c > create mode 100644 > ArmPlatformPkg/AArch64VirtualizationPkg/Library/AArch64VirtualizationLi > bKVM/KVMHelper.S > create mode 100644 > ArmPlatformPkg/AArch64VirtualizationPkg/Library/AArch64VirtualizationLi > bKVM/KVMMem.c > create mode 100644 > ArmPlatformPkg/AArch64VirtualizationPkg/Library/AArch64VirtualizationSy > sConfigLibKVM/AArch64VirtualizationSysConfigLibKVM.c > create mode 100644 > ArmPlatformPkg/AArch64VirtualizationPkg/Library/AArch64VirtualizationSy > sConfigLibKVM/AArch64VirtualizationSysConfigLibKVM.inf > create mode 100644 > ArmPlatformPkg/AArch64VirtualizationPkg/Library/NorFlashKVM/NorFlashKVM > .c > create mode 100644 > ArmPlatformPkg/AArch64VirtualizationPkg/Library/NorFlashKVM/NorFlashKVM > .inf > create mode 100644 > ArmPlatformPkg/AArch64VirtualizationPkg/Library/ResetSystemLib/ResetSys > temLib.c > create mode 100644 > ArmPlatformPkg/AArch64VirtualizationPkg/Library/ResetSystemLib/ResetSys > temLib.inf > create mode 100644 > MdeModulePkg/Universal/Fdt/FdtTableDxe/FdtTableDxe.c > create mode 100644 > MdeModulePkg/Universal/Fdt/FdtTableDxe/FdtTableDxe.inf > create mode 100644 MdePkg/Include/Guid/FdtTable.h > > -- > 1.8.3.2 > ------------------------------------------------------------------------------ Slashdot TV. Video for Nerds. Stuff that matters. http://tv.slashdot.org/ _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel