1. Introduction

TEMU provides support for PCI bus based devices.

2. Modelling Requirements

While it is sometimes necessary to implement PCI bridges (e.g. GRPCI2), the more common task is to implement PCI devices.

A PCI device in TEMU must support the following interfaces:

  • PCIDevIface implementing the PCI device interface. Used for for accessing config info about the PCI device.

  • MemAccessIface[6] implementing the PCI memory access functions for each BAR.

  • ExpROMAccessIface implementing accesses to PCI expansion ROM.

That means that MemAccessIface may be either IO or PCI mem. This depends on the hard coded value in the bar.

3. Examples

An example of a PCI device is provided in share/temu/examples/pci-device/.