You are on page 1of 11

I2O Drivers

What is I2O?
• I2O (Intelligent Input/Output) is an I/O device driver architecture that
logically separates the specific device being controlled and the host
operating system.
• For this to work, I2O interface Adapter card must be present in the
Computer.
• This card consists of a specialized hardware I/O processor (IOP) that
makes a common interface available for each type of device on all
platforms.
I2O Split Drivers Module
I2O drivers consist of two parts:
• The OS Services Module (OSM), which interfaces to the host
operating system's interface and normally resides on the host.

• The Hardware Device Module (HDM), which interfaces with the


particular device, media or server that the driver must manage, and
normally resides on the IOP.
I2O Split Drivers Module
I2O Split Drivers Module
These modules interface with each other through a communication
system that consists of two layers:
• A Message Layer, which sets up a communications session between
two parties
• A Transport Layer, which defines how the two parties will share
information.
The modules communicate via a metalanguage that is independent of
the bus topology and host operating system interfaces.
I2O Message Interface
System Environments
• I2O is designed for single processor, multiprocessor, and clustered processor systems, as well as
desktop, communications, and real-time system environments.
• Both the HDM and OSM interface to a basic I2O API sThis layer provides the set of services
needed to establish a cocoon that HDMs load into, thereby making them independent of their
surrounding execution environment. et. The execution environment for OSMs consists of the
execution environment provided by the hosting operating system along with the basic I2O API
set.
• The host-based I2O environment complements the operating system services by providing a
bridge between the operating system device APIs and the HDM.
• In order to accommodate access to real-time operating system environments, HDMs have an
additional set of I2O Embedded Kernel Services APIs. This interface provides HDMs with
access to required operating system functions, without exposing the actual Embedded Operating
System's interfaces to the HDM. This is especially important in meeting the I2O objective of
allowing HDMs to run in multiple target execution environments.
What is the I2O subsystem in Linux
• The I2O subsystem is on the same level like SCSI. But unlike SCSI the
interface to access the disks is specified. From the OS view, you only
have to write one driver, and that would allow for the same HDM
driver to be used under different operating systems. So the "driver" for
accessing the disks is in the firmware of the controller.
• This is the reason, why you only have one menu option I2O support,
and not many manufacturer specific drivers.
How to configure the kernel to use the I2O subsystem on Linux

Linux comes with I2O drivers for Small Computer Systems Interface (SCSI) and
Peripheral Computer Interconnect (PCI) devices.
To configure I2O in the 2.6 kernel enable the following modules:

Device Drivers --->


I2O device support --->
<M> I2O support
<M> I2O PCI support
<M> I2O Block OSM
<M> I2O SCSI OSM
<M> I2O /proc support
What are the various modules for?
• I2O support (i2o_core):
This is always needed to access your I2O hardware. It is the main module, which provides low level
access to the I2O hardware.
• I2O Configuration support (i2o_config)
This is only needed to manage I2O card. In case of an Adaptec RAID controller, you need the
module to use the raidutils to get access to your controller.
• I2O Block OSM (i2o_block):
This is the disk driver to access the RAID array, or if you don't have a RAID array configured to the
single disks. Access to the disks is provided through this driver only.
• I2O SCSI OSM (i2o_scsi):
This driver let you direct access to the disks. This driver is used to monitor the disks for failure.
NEVER use this driver to mount a filesystem or so. If you do so, you could destroy your data.
• I2O /proc support (i2o_proc):
This driver provides some information for debugging purposes.
THANK YOU

You might also like