System information
4 Graphic Card Implementation
4.3.2 Host Interface of the RPC
The CHARM provides three 32-bit I/O ports for the RPC communication: command, data
and status port. The host computer can send or receive RPC commands with the aid of
these I/O ports. The I/O ports are defined by the PCI Base Address Register of the PCI
core.
RPC Command Port receives or provides RPC command IDs. An RPC command is a
task or an information for the receiver of the command. The command ID defines a
specific RPC command. The ID is written to the command port and setups a new
RPC command for the CHARM. Afterwards, the RPC data port is ready to accept
data. Writing to the command port again, executes the RPC command. Thereby, the
host can either start a new RPC command or reset the command port. The command
port can be reset by writing the RPC Reset command to the command port. Table
4.5 shows a list of all RPC commands.
RPC Data Port receives or provides data which relates to the RPC command. The RPC
data is part of the command and can specify a sub-command or data which has to
be processed by the receiver. Some RPC commands do not have a data field and the
data port is not used in this case.
RPC Status Port provides the state of the input or output FIFO of the RPC data port.
Data cannot be written if the status port returns a full input FIFO.
The diagram 4.16 illustrates the flow of sending an RPC command. First, the host writes
the RPC command ID to the RPC command port. Before the host can send data to the
CHARM, it has to check the state of the input FIFO. The input FIFO synchronizes the
data flow of the host to the CHARM. It is implemented in software and is part of the RPC
kernel driver (section 4.3.3 explains the RPC driver). After the transfer of the RPC data,
the host writes again to the RPC command port to signal the end of the RPC message.
Receiving an RPC command is quite similar to the sending of an RPC command. The
UML diagram 4.17 illustrates this process. The host reads out periodically the RPC com-
mand port until it receives an RPC command ID which is different to the ID of the RPC
Reset command. The RPC status port provides information whether the RPC command
contains additional data. After reading the RPC message, the host executes the command.
Afterwards, the host can read out the command and data port again until all pending RPC
commands are executed.
ID Command Description
0 RPC_COMMAND_RESET Marks the end of a command.
1 RPC_TEXT_MESSAGE Sends a text message.
2 RPC_CMOS_DATA Contains the CMOS content of the host.
3 RPC_DMI_DATA Contains the DMI content of the host.
Table 4.5: RPC Commands.
62