System information
4 Graphic Card Implementation
of the host computer. Due to the missing of an X Server
5
on the CHARM the program can
only display text mode graphic. In text mode, the video planes contain ASCII characters
instead of pixel data. The "terminal" program prints out these characters. The terminal
program reads out periodically the device file /proc/charm/vga/text to provide the screen
content.
4.3 VGA BIOS
The VGA BIOS is a library of functions providing a basic interface to a VGA adapter. A
PCI based graphic card initializes its BIOS functions while running the init routine of the
graphic card’s expansion ROM [40]. At startup, the computer BIOS executes the expansion
ROM init function of the PCI devices [59]. The following basic tasks are accomplished by
the expansion ROM of a VGA card:
• Initialize the hardware of the VGA card.
• Setup the interrupt function 0x10 of the host system’s interrupt vector table.
• Setup the video control part of the BIOS data area.
The main task of a VGA ROM is the deployment of the interrupt function of the interrupt
0x10. Interrupt 0x10 is also called VGA interrupt and provides basic function to setup the
video mode, color palette and video timing. The certain functions are selectable with the
aid of the AX, BX and DX register [61, 56]. The BIOS data area is a work area for the
system BIOS [56]. It contains information and settings of important system components
like memory, keyboard, hard discs and video subsystem. The VGA BIOS has to setup
the video control area of the BIOS data area. The base of the CHARM’s VGA BIOS is
the Plex86/Bochs LGPL VGABios [62]. The LGPL VGA BIOS is also used in several PC
virtualization and emulation software like QEMU [63] or VirtualBox
R
[64].
The VGA BIOS of the CHARM is extended with additional features beyond the VGA
functions. Section 4.3.1 illustrates the task and the usage of the mentioned functions.
4.3.1 BIOS Remote Procedure Call
There is information of the host computer which is not directly accessible by the CHARM.
For example, a few computer mainboards do not provide access to the DMI
6
information
via the PCI expansion bus. The DMI data are located at a fixed address window inside the
host memory space [66]. But some computer systems do not allow or does not support read
out of the DMI address window from a subordinated hierarchical PCI bus. In this case, the
DMI information is only readable by the host CPU using the host bridge. For this reason,
a framework was developed to run programs on the host CPU and to send the results to
the CHARM. But the CHARM should be function independently of the host computer
architecture and operating system. Software which runs on the host computer depends on
its operating system. The CHARM has to provide the device driver and programs for the
5
X Window Server is a display server which provides windowing on bitmap displays.
6
Desktop Management Interface (DMI) provides hardware information of a computer system [65].
60