Linux+: Hardware Part 09 – Expansion Card Configuration Before Plug-and-Play (PnP) existed, expansion cards had to be configured for use by the system. Each card could allow settings for Interrupt Requests (IRQs), Direct Memory Access (DMA), Input/Output (I/O) Addresses and other possible settings. PnP cards have a Read Only Memory (ROM) chip on them which allows the Operating System (OS) to access the card’s configuration requirements. Cards without the ROM chip are considered Legacy cards. Legacy cards have two possible options for configuration: Dual In-line Package (DIP) switches Software configured DIP switches are little switches that can be moved back and forth. One direction allows the switch to be ‘ON’ and the other is ‘OFF’. Each block of switches can consist of a varying number of switches. Each switch changes a setting for a specific configuration value. NOTE: The block of DIP switches usually, but not always, has a marking showing which direction is ‘ON’ or ‘OFF’. Usually, there is also a marking to denote DIP switch 1 and the rest are numbered consecutively. PICTURE 1 Sometimes the DIP switches were not easily accessible while the card was installed in the system and the card would have to be removed to change settings. It is usually best to double check these switches before installing the card. DIP switches can also be jumper blocks. Jumper blocks are two pins which can be ‘jumpered’ using a small block which fits over the pins connecting them. When the block is used it is considered ‘jumpered’ causing the value to be ‘ON’. When not jumpered, the value is ‘OFF’. When not ‘jumpered’, the block can be placed on a single pin so the block is not lost. Jumper blocks can consist of more than two pins as shown in Picture 2. Here, there are three pins and two can be ‘jumpered’ as shown in the picture, or none can be ‘jumpered’. Again, the block can be placed on one pin to be stored. NOTE: Similar to the DIP switches, the jumper blocks may usually have numbers to denote which pin is which. In the documentation, it may say for such a setting to jumper pin 1 and 2, while for another setting, jumper pin 2 and 3. An arrow or the number ‘1’ usually signifies pin 1. PICTURE 2 Software configuration utilities will normally ship with the card on some form of media to be installed on the system, such as CD/DVD. Once the configuration utility is started, it reads the settings from the card, displays the current settings and allows you to change the settings through the Graphical User Interface (GUI). Before PnP cards, this was a very nice method since changing DIP switches required taking the system apart. PnP cards are simple since the OS configures the cards itself. No user intervention is normally ever needed to manage PnP cards. When the system starts up the Advance Configuration and Power Interface (ACPI) can detect when a card has been added, removed or changed. When a card is added or changed to another card the ACPI can notify the PnP program of the new card. Legacy cards are ‘hardwired’ for setting because of jumpers or utility settings. Legacy card resources are reserved first before the PnP card resources. The PnP program can request a list of resources needed by the card, such as I/O Address range, IRQ, DMA, etc. Once received, the PnP program can reserve the needed resources for the card and make sure the resources are not in conflict with other cards. Checking Resources Software can be used to determine legacy card resource usage. Within Linux there is a process file system, /proc, which is technically not on the disk, but stored in Random Access Memory (RAM). The /proc/ folder contains a set of directories and files which is managed by the Linux kernel. The folders and files are a collection of data for running processes. NOTE: Be aware that not all folders and files within /proc/ are directly related to processes. The kernel can place other files in /proc/. /proc/apm: information on the Advanced Power Management (APM) or battery backup system /proc/acpi/: information on Advanced Configuration and Power Interface (ACPI) /proc/cpuinfo: information on installed Central Processing Unit (CPU) /proc/devices: information about the installed devices in the system /proc/dma: information about the DMA channels /proc/filesystems: lists supported file systems on the system /proc/interrupts: list of used IRQs /proc/ioports: list of used ranges of I/O ports /proc/loadavg: lists the average load on the processor /proc/meminfo: lists memory usage /proc/modules: list of modules loaded by OS /proc/net/: shows network information /proc/pci: lists Peripheral Component Interconnect (PCI) information /proc/scsi/: lists Small Computer Systems Interface (SCSI) devices I the system /proc/sound: shows sound driver information /proc/uptime: shows number of seconds that the system has been running and how many seconds it has been idle For example, to view the IRQs usage you can use an editor to open /proc/interrupts.