Alex Graf has written patches for QEMU that add a generic PCI express
host to the "virt" machine (qemu-system-arm, qemu-system-aarch64). The
QEMU patches are now queued for merging in the following repo:

  git://git.linaro.org/people/pmaydell/qemu-arm.git

branch "target-arm.next".

This series enables the ArmVirtualizationQemu platform to take advantage
of Alex's QEMU work. At the end of the series,
- there's VGA output in a graphical window,
- which also takes input via a USB keyboard,
- and virtio-pci works too.

Public branch:

  https://github.com/lersek/edk2/commits/armvirt_pci_v1

Anatomy of the patchset:

- #01 through #05 are preparatory patches, with 03 being relevant for an
  independent, parallel discussion too (how to delay ACPI table
  installation conditionally & dynamically until PCI enumeration
  completes),

- #06 parses the new node in the DTB,

- #07 clones the PCI host bridge / root bridge driver from
  PcAtChipsetPkg with minimal build-level customizations (the driver is
  not enabled for building at this point),

- #08 through #19 adapt the cloned PciHostBridgeDxe to the ARM/AARCH64
  guest specifics (#10 is relevant for the parallel discussion mentioned
  above),

- #20 and #21 enable building PciHostBridgeDxe,

- #22 and #23 fix things in PlatformIntelBdsLib that now qualify as
  bugs,

- #24 and #25 add VGA console output and USB keyboard input,

- #26 and #27 update some INF files in MdePkg and MdeModulePkg so their
  VALID_ARCHITECTURES include ARM and AARCH64.

I'm sending the series to many people; I'm including most of you guys so
you can skim the commit messages and yell at me if something looks
wrong.

Thanks
Laszlo

Laszlo Ersek (27):
  OptionRomPkg: FrameBufferBltLib: drop set but not used variable
  OvmfPkg/QemuVideoDxe: enable ARM builds
  OvmfPkg/AcpiPlatformDxe: dynamic dependency on PCI enumeration
    completion
  PcAtChipsetPkg/PciHostBridgeDxe: fix typo in "aperture"
  PcAtChipsetPkg/PciHostBridgeDxe: drop PciAddress, PciData
  ArmVirtualizationPkg/VirtFdtDxe: parse "pci-host-ecam-generic"
    properties
  ArmVirtualizationPkg/PciHostBridgeDxe: clone from PcAtChipsetPkg
  ArmVirtualizationPkg/PciHostBridgeDxe: ECAM enables 4KB config space
  ArmVirtualizationPkg/PciHostBridgeDxe: set Root Bridge apertures from
    PCDs
  ArmVirtualizationPkg/PciHostBridgeDxe: abort if there's no PCI host
    bridge
  ArmVirtualizationPkg/PciHostBridgeDxe: translate addresses for IO and
    MMIO
  ArmVirtualizationPkg/PciHostBridgeDxe: IO space is emulated with MMIO
  ArmVirtualizationPkg/PciHostBridgeDxe: accommodate general address
    spaces
  ArmVirtualizationPkg/ArmVirtualizationQemu: enable IO addressing
  ArmVirtualizationPkg/PciHostBridgeDxe: add room for PCI resource
    allocation
  ArmVirtualizationPkg/PciHostBridgeDxe: allocate IO BARs top-down
  ArmVirtualizationPkg/PciHostBridgeDxe: get MMIO BARs from our own
    aperture
  ArmVirtualizationPkg/PciHostBridgeDxe: skip 0 AddrLen in
    SubmitResources()
  ArmVirtualizationPkg/PciHostBridgeDxe: handle 0 in
    GetProposedResources()
  ArmVirtualizationPkg: clone BasePciExpressLib, cache PCIe config base
  ArmVirtualizationPkg/ArmVirtualizationQemu: enable PCI support
  ArmVirtualizationPkg: PlatformIntelBdsLib: kernel boot should provide
    ACPI
  ArmVirtualizationPkg: PlatformIntelBdsLib: fix multiconsole setup
  ArmVirtualizationPkg/ArmVirtualizationQemu: add VGA console output
  ArmVirtualizationPkg/ArmVirtualizationQemu: add USB keyboard input
  MdePkg: BasePciLibPciExpress: list ARM and AARCH64 as valid
    architectures
  MdeModulePkg: list ARM and AARCH64 as valid architectures for some
    modules

 ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualization.dsc.inc                  
                                                                             |  
 7 +
 ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationPkg.dec                   
                                                                             |  
20 +++
 ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.dsc                  
                                                                             |  
76 ++++++++-
 ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.fdf                  
                                                                             |  
21 +++
 
ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.c
                                                                          | 116 
++-----------
 ArmPlatformPkg/ArmVirtualizationPkg/VirtFdtDxe/VirtFdtDxe.c                    
                                                                             | 
171 ++++++++++++++++++--
 ArmPlatformPkg/ArmVirtualizationPkg/VirtFdtDxe/VirtFdtDxe.inf                  
                                                                             |  
 9 ++
 MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf                                       
                                                                             |  
 2 +-
 MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf                                   
                                                                             |  
 2 +-
 MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf                                       
                                                                             |  
 2 +-
 MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf                                   
                                                                             |  
 2 +-
 MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf                                     
                                                                             |  
 2 +-
 MdePkg/Library/BasePciExpressLib/BasePciExpressLib.inf => 
ArmPlatformPkg/ArmVirtualizationPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf
 |  10 +-
 {MdePkg/Library/BasePciExpressLib => 
ArmPlatformPkg/ArmVirtualizationPkg/Library/BaseCachingPciExpressLib}/PciExpressLib.c
                                  |  18 ++-
 MdePkg/Library/BasePciLibPciExpress/BasePciLibPciExpress.inf                   
                                                                             |  
 2 +-
 OptionRomPkg/Library/FrameBufferBltLib/FrameBufferBltLib.c                     
                                                                             |  
 2 -
 OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf                                    
                                                                             |  
 5 +-
 OvmfPkg/AcpiPlatformDxe/QemuFwCfgAcpiPlatformDxe.inf                           
                                                                             |  
 8 +-
 OvmfPkg/Include/Protocol/OvmfAcpiPlatformNoPciEnumeration.h                    
                                                                             |  
28 ++++
 OvmfPkg/OvmfPkg.dec                                                            
                                                                             |  
 7 +-
 OvmfPkg/QemuVideoDxe/Driver.c                                                  
                                                                             |  
 2 +
 OvmfPkg/QemuVideoDxe/QemuVideoDxe.inf                                          
                                                                             |  
 4 +-
 PcAtChipsetPkg/PciHostBridgeDxe/PciHostBridge.c                                
                                                                             |  
 6 +-
 PcAtChipsetPkg/PciHostBridgeDxe/PciHostBridge.h                                
                                                                             |  
 9 +-
 PcAtChipsetPkg/PciHostBridgeDxe/PciRootBridgeIo.c                              
                                                                             |  
21 ++-
 {PcAtChipsetPkg => 
ArmPlatformPkg/ArmVirtualizationPkg}/PciHostBridgeDxe/PciHostBridge.c           
                                                         |  83 ++++++++--
 {PcAtChipsetPkg => 
ArmPlatformPkg/ArmVirtualizationPkg}/PciHostBridgeDxe/PciHostBridge.h           
                                                         |  16 +-
 {PcAtChipsetPkg => 
ArmPlatformPkg/ArmVirtualizationPkg}/PciHostBridgeDxe/PciHostBridgeDxe.inf      
                                                         |  30 ++--
 {PcAtChipsetPkg => 
ArmPlatformPkg/ArmVirtualizationPkg}/PciHostBridgeDxe/PciRootBridgeIo.c         
                                                         | 126 ++++++---------
 29 files changed, 531 insertions(+), 276 deletions(-)
 copy MdePkg/Library/BasePciExpressLib/BasePciExpressLib.inf => 
ArmPlatformPkg/ArmVirtualizationPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf
 (74%)
 copy {MdePkg/Library/BasePciExpressLib => 
ArmPlatformPkg/ArmVirtualizationPkg/Library/BaseCachingPciExpressLib}/PciExpressLib.c
 (96%)
 create mode 100644 OvmfPkg/Include/Protocol/OvmfAcpiPlatformNoPciEnumeration.h
 copy {PcAtChipsetPkg => 
ArmPlatformPkg/ArmVirtualizationPkg}/PciHostBridgeDxe/PciHostBridge.c (92%)
 copy {PcAtChipsetPkg => 
ArmPlatformPkg/ArmVirtualizationPkg}/PciHostBridgeDxe/PciHostBridge.h (96%)
 copy {PcAtChipsetPkg => 
ArmPlatformPkg/ArmVirtualizationPkg}/PciHostBridgeDxe/PciHostBridgeDxe.inf (65%)
 copy {PcAtChipsetPkg => 
ArmPlatformPkg/ArmVirtualizationPkg}/PciHostBridgeDxe/PciRootBridgeIo.c (94%)

-- 
1.8.3.1


------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to