File Formats cardbus(4)
NAME
cardbus - configuration files for cardbus device drivers
DESCRIPTION
The CardBus bus share the same configuration parameters with
the PCI bus. CardBus devices are self-identifying, which
means that these devices provide configuration parameters to
the system that allow the system to identify the device and
its driver. The configuration parameters are represented in
the form of name-value pairs that can be retrieved using the
DI property interfaces. See ddiproplookup(9F) for
details.
The CardBus bus properties of CardBus devices are derived
from PCI configuration space. Therefore, driver configura-
tion files are not necessary for these devices.
On some occasions, drivers for CardBus devices can use
driver configuration files to provide driver private proper-
ties through the global property mechanism. See
driver.conf(4) for further details. Driver configuration
files can also be used to augment or override properties for
a specific instance of a driver.
The CardBus nexus driver recognizes the following proper-
ties:
reg An arbitrary length array where each element
of the array consists of a 5-tuple of 32-bit
values. Each array element describes a logi-
cally contiguous mappable resource on the PCI
bus.
The first three values in the 5-tuple describe
the PCI address of the mappable resource. The
first tuple contains the following informa-
tion:
Bits 0 - 7 8-bit register number
Bits 8 - 10 3-bit function number
Bits 11 - 15 5-bit device number
Bits 16 - 23 8-bit bus number
Bits 24 - 25 2-bit address space type identifier
Bits 31 - 28 Register number extended bits 8:11
for extended config space. Zero for
conventional configuration space.
SunOS 5.11 Last change: 11 July 2006 1
File Formats cardbus(4)
The address space type identifier can be
interpreted as follows:
0x0 configuration space
0x1 I/O space
0x2 32-bit memory space address
The bus number is a unique identifying number
assigned to each bus within the PCI or PCIe
domain.
The device number is a unique identifying
number assigned to each device on a PCI bus,
PCIe logical bus, or CardBus bus. A device
number is unique only within the set of device
numbers for a particular bus or logical bus.
Each CardBus device can have one to eight log-
ically independent functions, each with its
own independent set of configuration regis-
ters. Each function on a device is assigned a
function number. For a device with only one
function, the function number must be 0.
The register number fields select a particular
register within the set of configuration
registers corresponding to the selected func-
tion. When the address space type identifier
indicates configuration space, non-zero regis-
ter number extended bits select registers in
extended configuration space.
The second and third values in the reg pro-
perty 5-tuple specify the 64-bit address of
the mappable resource within the PCI or PCIe
address domain. Since the CardBus is a 32-bit
bus, the second 32-bit tuple is not used. The
third 32-bit tuple corresponds to the 32-bit
address.
The fourth and fifth 32-bit values in the 5-
tuple reg property specify the size of the
mappable resource. The size is a 64-bit value.
Since it's a 32-bit bus, only the fifth tuple
is used.
The driver can refer to the elements of this
array by index, and construct kernel mappings
to these addresses using
ddiregsmapsetup(9F). The index into the
SunOS 5.11 Last change: 11 July 2006 2
File Formats cardbus(4)
array is passed as the rnumber argument of
ddiregsmapsetup(9F).
At a high-level interrupt context, you can use
the ddiget* and ddiput* family of functions
to access I/O and memory space. However,
access to configuration space is not allowed
when running at a high-interrupt level.
interrupts This property consists of a single-integer
element array. Valid interrupt property values
are 1, 2, 3, and 4. This value is derived
directly from the contents of the device's
configuration-interrupt-pin register.
A driver should use an index value of 0 when
registering its interrupt handler with the DI
interrupt interfaces.
All CardBus devices support the reg property. The device
number and function number as derived from the reg property
are used to construct the address part of the device name
under /devices.
Only devices that generate interrupts support an interrupts
property.
Occasionally it might be necessary to override or augment
the configuration information supplied by a CardBus device.
This change can be achieved by writing a driver configura-
tion file that describes a prototype device node specifica-
tion containing the additional properties required.
For the system to merge the prototype node specification
into an actual device node, certain conditions must be met.
o First, the name property must be identical. The
value of the name property needs to match the bind-
ing name of the device. The binding name is the
name chosen by the system to bind a driver to a
device and is either an alias associated with the
driver or the hardware node name of the device.
o Second, the parent property must identify the PCI
bus or PCIe logical bus.
SunOS 5.11 Last change: 11 July 2006 3
File Formats cardbus(4)
o Third, the unit-address property must identify the
card. The format of the unit-address property is:
D[,F]
where D is the device number and F is the function number.
If the function number is 0, only D is specified.
EXAMPLES
Example 1 Sample Configuration File
An example configuration file called ACME,scsi-hba.conf for
a CardBus device driver called ACME,scsi-hba follows:
#
# Copyright (c) 1995, ACME SCSI Host Bus Adaptor
# ident "@(#)ACME,scsi-hba.conf 1.1 96/02/04"
name="ACME,scsi-hba" parent="/pci@1,0/pci@1f,4000"
unit-address="3" scsi-initiator-id=6;
hba-advanced-mode="on";
hba-dma-speed=10;
In this example, a property scsi-initiator-id specifies the
SCSI bus initiator id that the adapter should use, for just
one particular instance of adapter installed in the machine.
The name property identifies the driver and the parent pro-
perty to identify the particular bus the card is plugged
into. This example uses the parent's full path name to iden-
tify the bus. The unit-address property identifies the card
itself, with device number of 3 and function number of 0.
Two global driver properties are also created: hba-
advanced-mode (which has the string value on) and hba-dma-
speed (which has the value 10 M bit/s). These properties
apply to all device nodes of the ACME,scsi-hba.
ATRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
SunOS 5.11 Last change: 11 July 2006 4
File Formats cardbus(4)
ATRIBUTE TYPE ATRIBUTE VALUE
Architecture SPARC, x86
SEE ALSO
driver.conf(4), attributes(5), ddiintraddhandler(9F),
ddiproplookup(9F), ddiregsmapsetup(9F)
Writing Device Drivers
IE 1275 PCI Bus Binding
SunOS 5.11 Last change: 11 July 2006 5
|