System information

4 Graphic Card Implementation
in form of PCI signals. These signals are processed according to the VGA protocol. Figure
4.13 illustrate the processing queue of the data inside the Request Buffer. The Request
Buffer does not solely contains VGA related PCI requests. The CHARM use the PCI
interface for features beyond the VGA function, too. The BAR Switch driver reads out the
Request Buffer according to the FIFO principle. It distributes every PCI request to the
related processing driver.
Request Buffer
PCI Write #1
PCI Write #2
PCI Write #3
PCI Write #5
PCI Write #6
MARK
PCI Write #4
BAR Switch
Driver
VGA
Driver
VGA
Driver
VGA
Driver
Video
Planes
VGA
Driver
Read Out
RPC
Driver
Deliver
Figure 4.13: Processing of the Request Buffer. The BAR Switch driver reads out the content
and distribute the data to the processing drivers.
The BAR Switch Driver
The BAR Switch driver is the central software component of the PCI target interface. The
acronym BAR relates to the PCI Base Address Register (BAR). The PCI Target Control
unit and the BAR Switch driver maintain and oversee the Request Buffer. The driver
installs an interrupt handler to the kernel. The interrupt handler is triggered by the VGA
interrupt which was activated by the PCI Target Control unit. By reason that the PCI
Target interface of the CHARM is mainly used for VGA accesses, the interrupt was called
VGA interrupt. The interrupt handler reads out the Request Buffer and distributes the
data to the related processing units step by step. The BAR Switch driver informs the PCI
Target Control unit when it has finished the data processing. Section 4.2.2 illustrates the
communication between the driver and the control unit. Based on the PCI BAR number, the
BAR switch driver selects the receiving driver for the PCI request. The PCI BAR number
is part of the stored PCI request (figure 4.8 depicts the format of a stored PCI request).
Preliminarily the processing drivers have to contact the BAR Switch driver and to register
a callback function for dedicated BAR numbers. For example, the VGA driver registers a
callback function for the BAR 2 and BAR 3. The RPC driver registers a callback function
56