|
|
Other sections of the AOF file are populated for each attribute that is specified for the KEY, REQUIRED, and ADVANCED attributes that are defined in the ADAPTER section. These other sections list the configurable options for a network adapter. The synopsis is:
ADAPTER:
...
KEY=attribute[,attribute]
REQUIRED=attribute_list
ADVANCED=attribute_list
attribute_list::ATTR1, ATTR2
attribute::=[a-zA-Z][a-zA-Z0-9_]
ATTR1:
[PROMPT="string_to_display"]
TYPE=link-kit|swconfig|unique
VALUES=value[,value2,...]
[DEFAULTS=value[,value2,...]]
ATTR2:
[PROMPT="string_to_display"]
TYPE=link-kit|swconfig|unique
VALUES=value[,value2,...]
[DEFAULTS=value[,value2,...]]
If PROMPT is not specified and the Attribute name is not in this list, the Attribute name itself will be used as the prompt. Nothing enforces naming attributes similarly across different AOFs, please use the standard attribute names for attributes that are used by the adapter.
Special case code is used to warn the user about potential conflicts in the list of legal values for some of the configurable options. The following algorithms are used to check for conflicts:
VALUES=value[,value2,...]
value::=string | value_range | region | region_range
value_range::=start'-'end':'step
region::=start '('sizelist')'
region_range::=start'='end':'step'(sizelist ')'
sizelist::=size ['|'size]
start,end,step::=hex_number
size::=decimal_number
The VALUES attribute
is a comma-separated list of values.
For example, the valid values for an interrupt vector
are expressed as:
IRQ:
VALUES=2,3,4,5,7
Values in the list can be more complex;
they can be a range of values.
For example, a range of I/O base addresses
could be expressed as:
BASE_IO:
VALUES=200-330:10
The range above is equivalent to the following list:
BASE_IO:
VALUES=200,210,220,230,240,250,260,270,280,290,
2a0,2b0,2c0,2d0,2e0,2f0,300,310,320,330
Values for shared memory attributes
(either RAM or ROM)
should be expressed as lists of regions.
For example, the 8K region starting at d0000 is:
RAM:
VALUES=d0000(8)
Multiple regions would be expressed as:
RAM:
VALUES=d0000(8),d1000(8),d2000(8)
A short hand for this is to use a range of regions:
RAM:
VALUES=d0000-d2000:1000(8)
Some adapters allow configurable sizes for memory regions.
This can be expressed as:
RAM:
VALUES=d0000(8),d0000(16),d1000(8),d1000(16),d2000(32)
A shorthand for this is:
RAM:
VALUES=d0000(8|16),d1000(8|16),d2000(32)
Ranges of regions can be combined
with multiple sizes,
like the first value below:
RAM:
VALUES=d0000-d1000:1000(8|16),d2000(32)
RAM:
VALUES=a0000-f0000:4000(16)
DEFAULTS=d0000,d4000,d8000,dc000