Internships/ProjectIdeas/PCIe-PCI-Bridge: Difference between revisions

From QEMU
(Created page with ''''Summary:''' Code an emulated PCIe to PCI bridge for QEMU PCI Express machines Detailed description of the project. '''Links:''' * Wiki links to relevant material http:/…')
 
 
(3 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 ===
 
Detailed description of the project.
'''Summary:''' Code an emulated PCIe-to-PCI bridge for QEMU PCI Express machines
 
'''Links:'''
Modern Virtual Machines and their devices are PCI Express, however a means of supporting
* Wiki links to relevant material
existing PCI and PCI-X deployment is required. Some use cases may need using legacy
http://qemu-project.org/Features/Q35
PCI devices that plug into platforms that exclusively support PCI and PCI-X system slots.
http://qemu-project.org/images/4/4e/Q35.pdf
 
http://qemu-project.org/images/f/f6/PCIvsPCIe.pdf
QEMU already has a solution, the i82801b11 DMI-to-PCI Bridge Emulation.
* External links to mailing lists or web sites
However, the device has some disadvantages: it cannot be used by ARM guests and
http://www.csit-sun.pub.ro/~cpop/Documentatie_SMP/Standarde_magistrale/PCIexpress/BridgeArchitecture.pdf
it is part of the Root Complex, so it can't be hot-plugged.
 
'''Details:'''
The goal of this summer project is to code a generic PCIe-PCI bridge. The bridge should be hot-pluggable
* Skill level: intermediate or advanced
into PCI Express Root Ports and be usable across various architectures and Guest Operating Systems.
* Language: C
 
* Mentor: marcel@redhat.com, marcel_a on IRC
Once the bridge is merged upstream, the PCI/PCI Express infrastructure
* Suggested by: Marcel Apfelbaum
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:

Details:

  • Skill level: intermediate
  • Language: C
  • Mentor: marcel@redhat.com, marcel_a on IRC
  • Suggested by: Marcel Apfelbaum <marcel@redhat.com>