On 07.01.2015 15:07, Alexander Graf wrote: > > > >> Am 07.01.2015 um 14:52 schrieb Claudio Fontana <claudio.font...@huawei.com>: >> >> Hi Alexander, happy new year! >> >>> On 06.01.2015 17:03, Alexander Graf wrote: >>> Linux implements a nice binding to describe a "generic" PCI Express host >>> bridge >>> using only device tree. >>> >>> This patch set adds enough emulation logic to expose the parts that are >>> "generic" as a simple sysbus device and maps it into ARM's virt machine. >>> >>> With this patch set, we can finally spawn PCI devices on ARM VMs. I was able >>> to have a fully DRM enabled virtual machine with VGA, e1000 and XHCI (for >>> keyboard and mouse) up and working. >>> >>> It's only a small step for QEMU, but a big step for ARM VM's usability. >> >> I tried to test your patches, but I get in trouble quite early: >> >> I usually run qemu-system-aarch64 for pci for OSv with the following command >> line (using the patches from Alvise): >> >> ./qemu-system-aarch64 -nographic -machine type=virt -enable-kvm -kernel >> ./loader.img -cpu host -m 1024M -drive >> file=usr.img,if=none,id=hd0,media=disk -device >> virtio-blk-pci,id=blk0,bootindex=0,drive=hd0,scsi=off,vectors=0 -device >> virtio-rng-pci -netdev >> user,id=un0,net=xxx.xxx.xxx.xxx/xx,host=xxx.xxx.xxx.xxx -redir tcp:2222::22 >> -device virtio-net-pci,netdev=un0,vectors=0 >> >> and with this series I get: >> >> qemu-system-aarch64: Unknown device 'gpex-pcihost' for default sysbus >> >> Is there something I need to mention in the command line to enable the >> gpex-pcihost maybe? > > If I had to guess I'd say you're missing the object file in your binary. Did > you run configure again after applying the patches? > > Alex
Yes I did but it seems it's not picking up the CONFIG_PCI_GENERIC=y for some reason. If I force hw/pci-host/Makefile.objs to build it by making it a common-obj-y then it builds. I see the CONFIG_PCI_GENERIC in default-configs/arm-softmmu.mak, and there is a default-configs/aarch64-softmmu.mak which says include arm-softmmu.mak but still it does not seem to pick it up over here.. while it picks up the CONFIG_PCI from the other mak files for example. Wierd.. does it build on AArch64 for you? Or did you test only 32bit? Ciao, Claudio > >> >> Thank you, >> >> Claudio >> >> >>> >>> >>> Happy new year! >>> >>> Alexander Graf (4): >>> pci: Split pcie_host_mmcfg_map() >>> pci: Add generic PCIe host bridge >>> arm: Add PCIe host bridge in virt machine >>> arm: enable Bochs PCI VGA >>> >>> default-configs/arm-softmmu.mak | 3 + >>> hw/arm/virt.c | 83 +++++++++++++++++++-- >>> hw/pci-host/Makefile.objs | 1 + >>> hw/pci-host/gpex.c | 156 >>> ++++++++++++++++++++++++++++++++++++++++ >>> hw/pci/pcie_host.c | 9 ++- >>> include/hw/pci-host/gpex.h | 56 +++++++++++++++ >>> include/hw/pci/pcie_host.h | 1 + >>> 7 files changed, 302 insertions(+), 7 deletions(-) >>> create mode 100644 hw/pci-host/gpex.c >>> create mode 100644 include/hw/pci-host/gpex.h >>>