qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Template for developing a Qe mu device with PCIe and MS


From: Adnan Khaleel
Subject: Re: [Qemu-devel] Template for developing a Qe mu device with PCIe and MSI-X
Date: Thu, 19 Aug 2010 12:01:40 -0500

Hi Isaku, thank you very much for your very detailed response. I have a few questions, see below.

Thanks again,

Adnan

Qemu doesn't support pcie at the moment.
Only partial patches have been merged, still more patches have to
be merged for pcie to fully work. The following repo is available.

git clone http://people.valinux.co.jp/~yamahata/qemu/q35/qemu
git clone http://people.valinux.co.jp/~yamahata/qemu/q35/seabios
git clone http://people.valinux.co.jp/~yamahata/qemu/q35/vgabios

Note: patched seabios and vgabios are needed, you have to pass ACPI DSDT
for q35.
example:
qemu-system-x86_64 -M pc_q35 -acpitable load_header,data="">
This repo is for those who want to try/develop pcie support,
not for upstream merge. So they include patches unsuitable for upstream.
I'm looking at Qemu 0.12.3 and there are 2 files, pci_host.c and pcie_host.c. Can you explain what these do?
Also, I see virtio_pci.c is the only device that uses msi-x in qemu. Can you explain what device this is trying to emulate?
Also, will the support for PCIe be merged with the mail Qemu at some point?

The repo includes pcie port switch emulator which utilize pcie and
MSI(not MSI-X).
I guess I could use this as a template for my qemu device mode correct?

The difference between PCI device and PCIe device is configuration
space size.
By setting PCIDeviceInfo::is_express = 1, you'll get 4K configuration
space. Helper functions for pcie are found in qemu/hw/pcie.c
For msi-x, see qemu/hw/msix.c.
One last question, does the current implementation allow for 64bit BAR addresses?

Thanks,
--
yamahata

reply via email to

[Prev in Thread] Current Thread [Next in Thread]