Home Man
Today's Posts

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:
Select Section of Man Page:
Select Man Page Repository:

OpenSolaris 2009.06 - man page for cardbus (opensolaris section 4)

cardbus(4)				   File Formats 			       cardbus(4)

       cardbus - configuration files for cardbus device drivers

       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
       DDI property interfaces. See ddi_prop_lookup(9F) for details.

       The  CardBus  bus  properties of CardBus devices are derived from PCI configuration space.
       Therefore, driver configuration files are not necessary for these devices.

       On some occasions, drivers for CardBus devices can use driver configuration files to  pro-
       vide  driver  private properties 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 properties:

       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 logically  contigu-
		     ous mappable resource on the PCI bus.

		     The  first  three values in the 5-tuple describe the PCI address of the map-
		     pable resource. The first tuple contains the following information:

		     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.

		     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 logically independent functions,
		     each with its own independent set of configuration registers. Each  function
		     on  a device is assigned a function number. For a device with only one func-
		     tion, the function number must be 0.

		     The register number fields select a particular register within  the  set  of
		     configuration  registers  corresponding  to  the selected function. 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 property 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 ddi_regs_map_setup(9F). The index
		     into the array is passed as the rnumber argument of ddi_regs_map_setup(9F).

		     At a high-level interrupt context, you can use  the  ddi_get*  and  ddi_put*
		     family  of functions to access I/O and memory space. However, access to con-
		     figuration 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  han-
		     dler with the DDI 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 specification containing the additional
       properties required.

       For the system to merge the prototype node specification into an actual device node,  cer-
       tain conditions must be met.

	   o	  First,  the  name  property  must  be identical. The value of the name property
		  needs to match the binding 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 asso-
		  ciated 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.

	   o	  Third, the unit-address property must identify the  card.  The  format  of  the
		  unit-address property is:


       where  DD  is the device number and F is the function number. If the function number is 0,
       only DD is specified.

       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;

       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 property to identify the particular
       bus the card is plugged into. This example uses the parent's full path  name  to  identify
       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.

       See attributes(5) for descriptions of the following attributes:

       |      ATTRIBUTE TYPE	     |	    ATTRIBUTE VALUE	   |
       |Architecture		     |SPARC, x86		   |

       driver.conf(4),	   attributes(5),     ddi_intr_add_handler(9F),      ddi_prop_lookup(9F),

       Writing Device Drivers

       IEEE 1275 PCI Bus Binding

SunOS 5.11				   11 July 2006 			       cardbus(4)

All times are GMT -4. The time now is 06:46 PM.

Unix & Linux Forums Content Copyrightę1993-2018. All Rights Reserved.
Show Password