System information
3.3 File system of the CHARM
pcimaster The pcimaster driver provides access to the PCI master functionality of the
card. For example, the programs "lspci" or "dmidecode" use this interface to inject PCI
cycles.
barSwitch It communicates with the PCI target control unit (see section 2.3) and dis-
tributes the PCI requests to the appropriate sub modules.
vga The VGA module undertakes processing of the IBM VGA specification. Section 4.2.3
illustrates the processing of the driver more precisely.
rpcDriver The communication interface between the VGA BIOS and the CHARM is
provided by the rpcDriver. With the aid of this connection, the CHARM obtains the
CMOS and the DMI content of the host computer.
3.3 File system of the CHARM
The root file system of the CHARM is based on the standard Linux directory structure. The
CHARM uses the Journalling Flash File System (JFFS2) version 2 which was developed by
Red Hat [50]. This file system is based on the Memory Technology Device (MTD) which is
a special device class accessing flash memories [51]. Table 3.2 depicts the MTD partitions of
the flash memory. The partitions of the MTD device are reflected in the Linux configuration
file drivers/mtd/maps/epxa-flash.c.
Minor Number Address Window Size Content
0 0x000000 - 0x040000 256 KB ARMboot
1 0x040000 - 0x050000 64 KB Boot Environment
2 0x050000 - 0x100000 704 KB Linux Kernel
3 0x100000 - 0x400000 3 MB Root File System
4 0x400000 - 0x800000 4 MB Extended File System
Table 3.2: MTD partitions of the CHARM’s flash memory.
3.3.1 Directory Structure
The directory structure of the root file system reflects the usage and source of the software.
The root file system is divided into two partitions to provide a separation of the CHARM
related functions and the Linux system. The first partition contains the Linux system with
common Linux utilities and the second partition contains only CHARM related software.
The common Linux utilities like fileutils or shellutils are stored in the /bin, /sbin, /usr/bin
and /usr/sbin directory. These utilities are provided by the software project BusyBox.
BusyBox [52] is a single executable which combines tiny versions of many common UNIX
37