Internships/ProjectIdeas/PCIe-PCI-Bridge: Difference between revisions
No edit summary |
|||
(2 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
'''Summary:''' Code an emulated PCIe to PCI bridge for QEMU PCI Express machines | === PCI Express to PCI bridge === | ||
'''Summary:''' Code an emulated PCIe-to-PCI bridge for QEMU PCI Express machines | |||
Modern Virtual Machines and their devices are PCI Express, however a means of supporting | |||
http://qemu-project.org/Features/Q35 | existing PCI and PCI-X deployment is required. Some use cases may need using legacy | ||
http://qemu-project.org/images/4/4e/Q35.pdf | PCI devices that plug into platforms that exclusively support PCI and PCI-X system slots. | ||
http://qemu | |||
http:// | QEMU already has a solution, the i82801b11 DMI-to-PCI Bridge Emulation. | ||
However, the device has some disadvantages: it cannot be used by ARM guests and | |||
it is part of the Root Complex, so it can't be hot-plugged. | |||
The goal of this summer project is to code a generic PCIe-PCI bridge. The bridge should be hot-pluggable | |||
into PCI Express Root Ports and be usable across various architectures and Guest Operating Systems. | |||
Once the bridge is merged upstream, the PCI/PCI Express infrastructure | |||
will be ported to the QOM model to conform with QEMU standards, | |||
all that as the time permits. | |||
'''Links:''' | |||
* http://qemu-project.org/Features/Q35 | |||
* http://wiki.qemu-project.org/images/4/4e/Q35.pdf | |||
* http://git.qemu.org/?p=qemu.git;a=blob_plain;f=hw/pci-bridge/i82801b11.c | |||
* http://wiki.qemu.org/Features/QOM | |||
* http://wiki.qemu-project.org/images/f/f6/PCIvsPCIe.pdf | |||
'''Details:''' | |||
* Skill level: intermediate | |||
* Language: C | |||
* Mentor: marcel@redhat.com, marcel_a on IRC | |||
* Suggested by: Marcel Apfelbaum <marcel@redhat.com> |
Latest revision as of 15:31, 16 February 2017
PCI Express to PCI bridge
Summary: Code an emulated PCIe-to-PCI bridge for QEMU PCI Express machines
Modern Virtual Machines and their devices are PCI Express, however a means of supporting existing PCI and PCI-X deployment is required. Some use cases may need using legacy PCI devices that plug into platforms that exclusively support PCI and PCI-X system slots.
QEMU already has a solution, the i82801b11 DMI-to-PCI Bridge Emulation. However, the device has some disadvantages: it cannot be used by ARM guests and it is part of the Root Complex, so it can't be hot-plugged.
The goal of this summer project is to code a generic PCIe-PCI bridge. The bridge should be hot-pluggable into PCI Express Root Ports and be usable across various architectures and Guest Operating Systems.
Once the bridge is merged upstream, the PCI/PCI Express infrastructure will be ported to the QOM model to conform with QEMU standards, all that as the time permits.
Links:
- http://qemu-project.org/Features/Q35
- http://wiki.qemu-project.org/images/4/4e/Q35.pdf
- http://git.qemu.org/?p=qemu.git;a=blob_plain;f=hw/pci-bridge/i82801b11.c
- http://wiki.qemu.org/Features/QOM
- http://wiki.qemu-project.org/images/f/f6/PCIvsPCIe.pdf
Details:
- Skill level: intermediate
- Language: C
- Mentor: marcel@redhat.com, marcel_a on IRC
- Suggested by: Marcel Apfelbaum <marcel@redhat.com>