|
|
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_numberThe 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,7Values 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:10The 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,330Values 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