On 26 August 2014 12:32, Olivier Martin <[email protected]> wrote: > 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.
Based on your comment related to FDT GUID, I will rebase onto upstream github and repost with the minimal feedback so far taken into account (Fv at 0x0, drop patches etc) > - 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. OK > - I would be happy to test your patchset. Do you have any instructions? I will put up a wiki today or tomorrow. > - I had some FDT comments, But I have just addressed them in my previous > email. > Cheers, Ard. >> -----Original Message----- >> From: Ard Biesheuvel [mailto:[email protected]] >> Sent: 25 August 2014 20:19 >> To: [email protected]; Olivier Martin; edk2- >> [email protected]; [email protected]; >> [email protected]; [email protected]; >> [email protected]; [email protected] >> 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 [email protected] https://lists.sourceforge.net/lists/listinfo/edk2-devel
