The firmware-overrides element is the root element. An
empty firmware-overrides element implies there are no firmware overrides
for a given platform. The firmware-overrides element can have any
number of attribute or group elements.
A group element defines a logical collection of
firmware-overrides, and sub-groups of the same. A group element
contains a name element and any number of attribute + group elements,
but it must have at least one element other than the name element.
An attribute element must have an id element, and up to
one each of a description element, display-name element,
targetRestriction element. It may also have either a numericOverride
element (if signed/unsigned number) or enumerationOverride element (if
enumeration), in that order.
A numeric override limits the set of values an
attribute can be set to. A numericOverride element must have a start
and end element in any order.
A target restriction restricts the attribute to apply
only to the target indicated by the sub-restrictions. A
targetRestriction element may have up to one each of
a type, node, position, and unit element, in any order, provided at
least one of those appears. This schema cannot easily restrict the
latter condition, so the code must ensure at least one child element is
present.
An enumerationOverride allows an attribute to change
the behavior of the underlying enumeration. An enumerationOverride
element can have one allowedEnumerator element, any number of
enumeratorOverride elements, or a union of those.
An allowedEnumerator restricts which enumerators can be
used by the attribute.An allowedEnumerators element requires one or more
name elements.
An enumeratorOverride allows an attribute to change the
default text associated with an enumerator. An enumeratorOverride
requires a name element and a display-name element, descriptionElement,
or union of both.
An id element provides a symbolic attribute ID that maps
to a valid attribute in targeting
A description element provides a longer help text for an
attribute, enumeration, etc.
A display-name element provides a short name for an
enumeration, attribute, etc.
A type element restricts the attribute to a specific
named attribute type.
A start element gives the first value, inclusive, of one
of the valid ranges for a numerical attribute. It cannot fall outside
of the base range allowed for the given attribute type, and must be at
least one less than the max of the base range.
An end element gives the last value, inclusive, of one
of the valid ranges for a numerical attribute. It cannot fall outside
of the base range allowed for the given attribute type, and must be at
least one less than the max of the base range.
A name element gives the name of the attribute group,
etc.
A unit element allows an attribute to restrict its
scope to a specific target unit. If a position element is specified in
a targetRestriction along with a unit, then the unit's chip's position
must match that as well.
A position element allows an attribute to restrict
its scope to a specific position. Only applicable for targets with
positions, unless used in conjuction with the unit element.
A node element allows an attribute to restrict
its scope to a specific node.