isadump Command in Linux



The isadump command in Linux examines the ISA register. The ISA (Industry Standard Architecture) bus is an expansion bus that connects network cards, graphics cards, sound cards, or modems to the motherboard.

The isadump command reads and displays registers from ISA devices, such as sensors or other hardware monitoring chips connected to the ISA bus.

Table of Contents

Here is a comprehensive guide to the options available with the isadump command −

Note − The ISA devices are largely obsolete today and replaced by PCI, AGP, and eventually PCI Express (PCIe) standards, which offer faster speeds, more bandwidth, and better plug-and-play support. However, the isadump command can still be useful for legacy device users.

Prerequisites for isadump Command

The isadump command depends on the Linux lm-sensors package. To install lm-sensors on Ubuntu, Kali Linux, Debian, and other Debian-based distributions, use the following command −

sudo apt install lm-sensors

To install the lm-sensors package on Arch Linux, use the following command −

sudo pacman -S lm_sensors

To install this package on CentOS, use the command given below −

sudo yum install lm_sensors

To install it on Fedora, use the command given below −

sudo dnf install lm_sensors

To verify whether the isadump command is installed or not, check its binary path using the command given below −

which isadump
isadump Command in Linux1

Syntax of isadump Command

There are two types of isadump command syntax −

  • For I2C-like Access
  • For Flat Address Space

Syntax to read and examine the register of a device with an I2C-like interface is as follows −

isadump [options] [-k V1,V2..] addrreg datareg [bank [bankreg]]

The [options] field is used to specify the various options, such as -y, to skip the confirmation prompts.

  • -k V1,V2... − Sends a key sequence to enter the chip configuration mode. Useful for specific Super-I/O chips
  • addrreg − Specifies the address register for the I2C-like interface
  • datareg − Specifies the data register from which data is read
  • bank − Selects a bank if the device has multiple register banks (optional)
  • [bankreg] − Specifies the register for selecting the bank (optional)

Syntax to read and examine the register of the device with Flat Address Space is as follows −

isadump [options] address [range [bank [bankreg]]]

The [options] field is used to specify the various options, such as -y, to skip the confirmation prompts.

  • address − The starting address for the flat address space
  • range − Specifies the range of addresses to read (optional)
  • [bank] − Selects a bank if multiple banks are available (optional)
  • [bankreg] − Specifies the bank selection register (optional)

isadump Command Options

The options of the isadump command are listed below −

Options Description
-f Forces a flat address space dump, bypassing any checks
-y Disables interactive mode, performing the operation directly without confirmation (it can be useful in scripts)
-k V1,V2... Specify a comma-separated list of bytes to send as a key sequence to enter the chip's configuration mode (mandatory for Super-I/O Chips)
-W Read and display word (16-bits) value
-L Read and display long (32-bits) value

Examples of isadump Command in Linux

This section demonstrates the usage of the isadump command in Linux with examples −

Reading ISA Device Registers

To read registers from an ISA device with an address register at 0x290 and a data register at 0x291, use the isadump command in the following way −

sudo isadump 0x290 0x291

In the above command, 0x290 is addrreg and 0x291 is datareg.

Entering the Configuration Mode of Super I/O Chip

Super-I/O chips require a key sequence to enter configuration mode. To enter the configuration mode of a Super-I/O chip, use the -k option. For example, the configuration key of the ITE chip is 0x87,0x01,0x55,0x55 −

sudo isadump -k 0x87,0x01,0x55,0x55 0x290 0x291

Configuration keys of different chips are listed below −

Super-I/O Chips Configuration Keys
ITE 0x87,0x01,0x55,0x55
SMSC 0x55
Winbond/VIA 0x87,0x87
National Semiconductor None (No key needed)

Accessing Banked Registers on ISA Devices

Some chips organize their registers into banks, each holding a subset of the registers, so specifying the bank lets you access different parts of the register map.

sudo isadump 0x290 0x291 0x00 0x292

The above command first sets the bank specified (0x00) in the bank register (0x292). Once the bank is set, isadump accesses the registers in that bank through the specified address (0x290) and data (0x291) registers.

This setup, where registers are organized into banks, is common with Super-I/O chips or other devices that use an I2C-like protocol.

Dumping Data from a Flat Address Space

To dump data directly from a flat address space, use the -f option. For example, to read from address 0x300.

sudo isadump -f 0x300

To read a specific range, provide it after the address. For example, to read 16 bytes starting from 0x300, use the isadump command in the following way −

sudo isadump -f 0x300 16

Displaying Help

To display quick help about the isadump command, execute the command without any option −

isadump

The above command provides basic usage information, including available options shown in the image.

isadump Command in Linux2

Conclusion

The isadump command in Linux is used to examine registers on ISA (Industry Standard Architecture) devices, such as sensors or hardware monitoring chips, making it particularly useful for legacy systems.

The isadump command depends on the lm-sensors package and features syntax for both I2C-like devices and flat address space devices, allowing for optional key sequences to enter configuration modes for Super I/O chips.

In this tutorial, we explained the isadump command, its installation, syntax, options, and usage in Linux with examples.

Advertisements