System information

3 Software of the CHARM
The CHARM is an embedded system with a hard-core CPU, main memory and a non
volatile storage. The operating system of the card is Linux which is started by ARMboot,
the boot-loader of the CHARM. The following sections describe the booting procedure, the
Linux system and the file system of the card.
3.1 Boot Loader
ARMboot [43] is the boot-loader of the CHARM. It is available as free software under the
GNU Public License (GPL). The boot-loader is stored on the flash file system and activated
after power up. It is run directly from the flash memory by using the Altera Run-From-Flash
mode [44]. Thereby, ARMboot is started from the Altera boot loader which initializes the
Excalibur Stripe and the memory map [45]. Additionally, the Altera boot-loader configures
the FPGA logic via an integrated AHB slave peripheral [46]. The content of the FPGA
logic is stored in the flash memory. Afterwards, ARMboot copies the Linux kernel to the
RAM and starts the system. It supports three kinds of booting the system: boot from
memory, boot via tftp [47] and boot using the BOOTP [48] protocol. Figure 3.1 depicts
the boot sequence of the CHARM.
3.2 Operating System
The CHARM uses the standard Linux kernel 2.4.21 [49]. The kernel is compiled for the ARM
922T architecture. The related configuration files are located in the Linux kernel source
directory arch/arm/mach-epxa10db. The compiled kernel is stored in the flash memory in
a zlib
1
compressed data format. It will decompress itself at boot time.
3.2.1 Device Drivers
Within the scope of this thesis, Linux device drivers were developed which gain access to
the CHARM hardware functions. Table 3.1 gives an overview of CHARM related device
drivers. The following paragraphs explain the usage of some of the device drivers.
adc The ADC driver communicates with the ADC via an SPI interface. Access to the
ADC device files triggers a readout to the ADC.
1
A software library used for data compression.
35