System information
4.2 Graphic Card Implementation Layout
ACCESS STATE
(INT) (ACK)
P CI
00
SW
0
10
SW
1
01
INT_REQ=1
ACK=X
INT_REQ=0
ACK=X
INT_REQ=X
ACK=1
INT_REQ=X
ACK=0
INT_REQ=X
ACK=0
INT_REQ=X
ACK=1
Figure 4.12: Request Buffer access synchronization.
PCI Read Access
In principle, PCI read access to the CHARM is handled in the same manner like a PCI
write access. The Request Buffer is used to serve information about the incoming PCI Read
request. Thereby, the PCI data field of the Request Buffer entry has to be ignored, because
no data were sent. But unlike a PCI write request, a read access has to be processed in
time to provide the data. Thus, the target control unit sends immediately an interrupt to
inform the BAR Switch driver which contacts the VGA driver. The software processes the
Request Buffer and writes the requested value to a fixed and dedicated location inside the
main memory. This buffer is called Read Buffer. Besides the PCI read request, the Request
Buffer can also contain PCI write requests at the same time. But as a matter of fact, the
read request is the last request inside the Request Buffer, because after every read request
the target control unit looses the access right to the buffer. The PCI write requests inside
the buffer are processed before the single read request is handled by the software.
The location of the mentioned Read Buffer is shown in figure E.1. The Read Buffer was
planned to act as a cache. Consecutive read accesses could be answered quickly. But by the
reason of the VGA standard, read accesses to a VGA card have side effects. A read access
can affect the content of the next pending read request. Hence, the Read Buffer contains
only a single data word. Afterwards, the target control unit reads out the Read Buffer. The
host repeats the last read request and the PCI target control unit can provide the data.
The content is just valid for one successful data transaction. Further read accesses to the
same address starts the whole mechanism again. In the meantime, the target control unit
has to terminate all PCI requests with a "retry".
4.2.3 Software VGA Processing
The processing unit of the VGA data is the ARM CPU existing on the board. The VGA
instructions of the host are stored in the Request Buffer. But the instructions are present
55