DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 
TOC PREV NEXT INDEX

Introduction to Bus Bindings

6

Some usage details of UDI Physical I/O services and metalanguages vary depending on the physical I/O bus used, requiring a Bus Binding definition to provide these details. This chapter defines the general requirements on Bus Binding definitions, and lists the items that must be specified in a UDI Bus Binding specification.

Note - There are no aspects of DMA services that can vary from one bus binding to another.

6.1 Normative References

Some bus bindings references non-UDI standards that, through reference in the bus binding specification, constitute provisions of the UDI bus binding. Each such bus binding shall list all normative references.

6.2 Header Files

Each bus binding shall define a bus binding header file that the driver must include to obtain bus binding declarations for a particular bus type. This header must be included by drivers that support devices on this bus type. It must be included after udi.h and udi_physio.h.

6.3 PIO Bindings

6.3.1 udi_pio_map

The definition of the regset_idx parameter to udi_pio_map is bus and device dependent. Each bus binding defines legal values for regset_idx and the semantics thereof. Drivers must set regset_idx to a value appropriate for the bus type of their supported device.

6.4 Interrupt Bindings

6.4.1 Interrupt Index Values

Interrupt index values for udi_intr_attach_req are bus-specific. Each bus binding must define the range of legal interrupt_idx values and their semantics.

6.4.2 Event Info

Interrupt event info is a bus-specific piece of extra information delivered from the interrupting device hardware along with the interrupt.

The size and structure of event info associated with an interrupt is bus type dependent. Each bus bindings defines the size and semantics of event info for their bus type.

6.5 Instance Attribute Bindings

A number of instance attributes are bus-specific in nature and are thus defined in bus bindings. These attributes shall include a set of enumeration attributes that are required to be set by any bridge driver (or mapper) when it enumerates the children attached to a bus. (See udi_enumerate_ack in the UDI Core Specification.)

6.5.1 Enumeration Attributes

In all cases, the "bus_type" attribute is considered an enumeration attribute, and the value used to identify each bus type must be defined in the corresponding bus binding. Each bus binding shall also specify additional enumeration attributes. Any enumerator for a particular bus type must support the specified enumeration attributes for the corresponding bus binding.

6.5.2 Filter Attributes

A subset of enumeration attributes must be specified as filter attributes. Filter attributes may be used with udi_enumerate_req to specify enumeration filters. Any enumerator for a particular bus type must support the specified filter attributes for the corresponding bus binding.

6.5.3 Generic Attributes

Each bus binding shall specify the form of string value for each of the generic attributes, "identifier", "address_locator", "physical_locator" and "physical_slot", for the corresponding bus type. The locator attribute is used to distinguish one instance of the same type of device from another. Locator attribute values must be unique for all children of a particular parent bus bridge.

6.5.4 Parent-Visible Attributes

Some bus bindings may also specify parent-visible attributes. Any bus bridge driver for a particular bus type must support the specified parent-visible attributes for the corresponding bus binding.


TOC PREV NEXT INDEX