The PCI hardware specific library /usr/lib/cfgadm/pci.so.1 provides the support for hot plugging pci adapter cards into pci hot pluggable slots in a system that is hot plug capable, through cfgadm(1M). See cfgadm(1M).
For PCI Hot Plug, each hot plug slot on a specific PCI bus is represented by an attachment point of that specific PCI bus.
An attachment point consist of two parts: a receptacle and an occupant. The receptacle under PCI hot plug is usually referred to as the physical hot pluggable slot; and the occupant is usually referred to as the PCI adapter card that plugs into the slot.
Attachment points are named through ap_ids. There are two types of ap_ids: logical and physical. The physical ap_id is based on the physical pathname, that is, /devices/pci@1/hpc0_slot3, whereas the logical ap_id is a shorter, and more user-friendly name. For PCI hot pluggable slots, the logical ap_id is usually the corresponding hot plug controller driver name plus the logical slot number, that is, pci0:hpc0slot1; pci nexus driver, with hot plug controller driver named hpc and slot number 1. The ap_type for Hot plug PCI is pci.
Note that the ap_type is not the same as the information in the Type field.
See the System Administration Guide, Volume I for a detailed description of the hot plug procedure.
The following functions are supported for PCI hot pluggable slots:
Configure the PCI device in the slot to be used by Solaris.
Connect the slot to PCI bus.
Disconnect the slot from the PCI bus.
Logically remove the PCI device's resources from the system.
Print out PCI hot plug specific help message.
List the values of PCI Hot Plug slots.
No hardware specific options are currently defined.
Same as the generic cfgadm(1M)..
This command is only supported on platforms which support testing capability on the slot.
Execute in verbose mode.
When -v is used with -l option the cfgadm command outputs information about the attachment point. For PCI Hot Plug, the Information field will be the slot's system label. This string will be obtained from the slot-name property of the slot's bus node. The information in the Type field is printed with or without the -v option. The occupant Type field will describe the contents of the slot. There are 2 possible values:
The slot is empty. NULL should be unknown. There could be a card in the slot that is simply not configured.
The card in the slot is either a single- function or multi-function device.
subclass is a string representing the subclass code of the device, for example, SCSI, ethernet, pci-isa, and so forth. If the card is a multi-functional device, MULT will get printed instead.
board is a string representing the board type of the device, for example, hp for PCI Hot Plug adapter, hs for Hot Swap Board, nhs for Non—Hot Swap cPCI Board, bhs for Basic Hot Swap cPCI Board, fhs for Full Hot Swap cPCI Board.
Most pci cards with more than one device on them are not actually multi-function devices, but are implimented as a pci bridge with arbitraty devices behind it. In that case, the subclass displayed will be that of the pci bridge.
Perform hardware specific function. These hardware specific functions should not normally change the state of a receptacle or occupant.
The following hardware_functions are supported:
Change the state of the slot and preserve the state of slot across reboot. Preservation of state across reboot is only supported on select platforms.
enable_slot enables the addition of hardware to this slot for hot plugging and at boot time.
disable_slot disables the addition of hardware to this slot for hot plugging and at boot time. When a slot is disabled its condition is shown as unusable.
Change the ability to autoconfigure the occupant of the slot. Only platforms that support auto configuration support this feature.
enable_autoconfig enables the ability to autoconfigure the slot.
diable_autoconfig disables the ability to autoconfigure the slot.
Without sub-arguments, print a list of the current LED settings. With sub-arguments, set the mode of a specific LED for a slot.
Specify led_sub_arg as fault, power, att, or active.
Specify mode_sub_arg as on, off or blink.
Changing the state of the LED does not change the state of the receptacle or occupant. Normally, the LEDs are controlled by the hot plug controller, no user intervention is necessary. Use this command for testing purposes.
Caution: Changing the state of the LED can misrepresent the state of occupant or receptacle.
The following command prints the values of LEDs:
example# cfgadm -x led pci0:hpc0_slot1Ap_Id Led pci0:hpc0_slot1 power=on,fault=off,active=off,attn=off
The following command turns on the Fault LED:
example# cfgadm -x led=fault,mode=on pci0:hpc0_slot1
The following command turns off the Power LED:
example# cfgadm -x led=power,mode=off pci0:hpc0_slot0
The following command sets the active LED to blink to indicate the location of the slot:
example# cfgadm -x led=active,mode=on pci0:hpc0_slot3
The following command prints out the values of each slot:
example# cfgadm -l Ap_Id Type Receptacle Occupant Condition pci1:hpc0_slot0 unknown empty unconfigured unknown pci1:hpc0_slot1 unknown empty unconfigured unknown pci1:hpc0_slot2 unknown empty unconfigured unknown pci1:hpc0_slot3 HP/SCSI connected configured ok pci1:hpc0_slot4 unknown empty unconfigured unknown
The following command lists all DR-capable attachment points:
example# cfgadm Ap_Id Type Receptacle Occupant Condition c0 scsi-bus connected configured unknown pci_pci0:cpci_slot1 stpcipci/fhs connected configured ok pci_pci0:cpci_slot unknown empty unconfigured unknown pci_pci0:cpci_slot4 stpcipci/fhs connected configured ok pci_pci0:cpci_slot5 unknown empty unconfigured unknown
The following command unconfigures and electrically disconnects the card:
example# cfgadm -c disconnect pci_pci0:cpci_slot4
The change can be verified by entering the following command:
example# cfgadm Ap_Id Type Receptacle Occupant Condition c0 scsi-bus connected configured unknown pci_pci0:cpci_slot1 stpcipci/fhs connected configured ok pci_pci0:cpci_slot unknown empty unconfigured unknown pci_pci0:cpci_slot4 unknown disconnected unconfigured unknown pci_pci0:cpci_slot unknown empty unconfigured unknown
Now the card can be swapped. The following command electrically connects and configures the card:
example# cfgadm -c configure pci_pci0:cpci_slot4
The change can be verifed by entering the following command:
# cfgadm Ap_Id Type Receptacle Occupant Condition c0 scsi-bus connected configured unknown pci_pci0:cpci_slot1 stpcipci/fhs connected configured ok pci_pci0:cpci_slot2 unknown empty unconfigured unknown pci_pci0:cpci_slot4 stpcipci/fhs connected configured ok pci_pci0:cpci_slot5 unknown empty unconfigured unknown
See attributes(5) for descriptions of the following attributes:
|ATTRIBUTE TYPE||ATTRIBUTE VALUE|