IOConfig = <io-range>[,<io-range>]...
Sets the IO range(s) for the logical configuration. More than one io-range can be given, but each additional value but be preceded with a comma.
Note
EISA adapters which use their slot-specific ports do not need to include those ports in their logical configuration.
io-range
This value has two forms, called Type 1 I/O Range and Type 2 I/O Range.
Type 1 I/O Range Value
<start>-<end>[([<decode-mask>]:[<alias-offset>]:[<attr>])]
start | Starting address of the IO port region. This is a 16-bit value in hexadecimal notation. |
end | Ending address of the IO port region. This is a 16-bit value in hexadecimal notation. The start and end values must be separated with a hyphen. |
decode-mask | Optional. Bit mask to indicate number of bits of IO address the device decodes. This is a 16-bit value in hexadecimal notation which is the most-significant byte of the actual decode mask. The most-likely values for this field are either 3FF (for 10-bit decode) or FFFF (for 16 bit decode.) |
alias-offset | Optional. Value to indicate additional ports decoded by the adapter. The additional ports are calculated by adding multiples of this offset to the base IO port region. Leaving this field blank indicates that driver software will only access the ports in the base IO region and never access any of the aliases. |
attr | Optional. Reserved; do not use. |
Type 2 I/O Range Value
<size>@<min>-<max>[%<align-mask>][([<decode-mask>]:[<alias-offset>]:[<attr>])]
size | Size of the required IO port region in bytes. This is a 16-bit value in hexadecimal notation. The start and end values must be separated with a hyphen. |
min | Smallest possible starting IO port. This is a 16-bit value in hexadecimal notation. |
max | Largest possible ending IO port. This is a 16-bit value in hexadecimal notation. The min and max values must be separated with a hyphen. |
align-mask | Optional. This 16-bit hexadecimal mask is applied to range specified by min and max to determine legal starting addresses for the IO region. To construct the mask, all bits which must be 0 in the starting address must be 0 in the mask. All other bits should be 1. |
decode-mask | Optional. Bit mask to indicate number of bits of IO address the device decodes. This is a 16-bit value in hexadecimal notation which is the most-significant byte of the actual decode mask. The most-likely values for this field are either 3FF (for 10-bit decode) or FFFF (for 16 bit decode.) |
alias-offset | Optional. Value to indicate additional ports decoded by the adapter. The additional ports are calculated by adding multiples of this offset to the base IO port region. Leaving this field blank indicates that driver software will only access the ports in the base IO region and never access any of the aliases. |
attr | Optional. Reserved; do not use. |
Note
In order to avoid conflicts with older cards, all adapters in ISA slots which use IO ports must allocate ports which fall in the 100-3FF range, even if they only use the 10-bit aliases of those ports. Adapters in PCI slots which use the 10 bit aliases of ports in the 100-3FF range do not need to allocate the ports in the 100-3FF range because those addresses will not appear on the ISA bus.
The following examples illustrates the use of a list of three Type 1 I/O range values in an IOConfig item. This specifies an IO port region of 8 bytes which can start at 1F8, 2F8, or 3F8. Additionally, the device decodes 10 bits of its address and does not use any of its aliases.
IOConfig=1F8-1FF(3FF::), 2F8-2FF(3FF::), 3F8-3FF(3FF::)
The following example shows the use of a Type 2 I/O range value in an IOConfig item. This specifies an IO port region of 8 bytes which can start at 300, 308, 310, 318, 320, or 328. The device decodes 10 bits of its address and does not use any of its aliases.
IOConfig=8@300-32F%FF8(3FF::)
The following example shows the use of a Type 1 I/O range value in an IOConfig item. This specifies 16 IO port regions of 1 byte each, where each region starts at x2E8 where x is 0-Fh.
IOConfig=2E8-2E8(FFFF:4:)