Go to main content

man pages section 8: System Administration Commands

Exit Print View

Updated: Thursday, June 13, 2019
 
 

cfgadm_pci(8)

Name

cfgadm_pci - PCI, CompactPCI, and PCI Express Hotplug hardware specific commands for cfgadm

Synopsis

/usr/sbin/cfgadm [-f] [-y | -n] [-v] 
     [-o hardware_options] -c function ap_id [ap_id]
/usr/sbin/cfgadm [-f] [-y | -n] [-v] 
     [-o hardware_options] -x hardware_function ap_id 
     [ap_id]
/usr/sbin/cfgadm [-v] [-s listing_options] 
     [-o hardware_options] [-l [ap_id | ap_type]]
/usr/sbin/cfgadm [-v] [-o hardware_options] -t ap_id [ap_id]
/usr/sbin/cfgadm [-v] [-o hardware_function] -h 
     [ap_id| ap_type]

Description

The PCI hardware specific library, /usr/lib/cfgadm/pci.so.1, provides the support for hotplugging PCI and CompactPCI adapter cards into the respective hotpluggable slots in a system that is hotplug capable, through the cfgadm command (see cfgadm(8)). This library does not include support for PCI Express Hotplug or Standard PCI Hotplug adapter cards, which are provided by a different library (see cfgadm_shp(8)). Hotplug administrative models between PCI, CompactPCI remain the same except where noted in this document.

For PCI Hot Plug, each hotplug 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 hotpluggable 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 hotpluggable slots, the logical ap_id is usually the corresponding hotplug controller driver name plus the logical slot number, that is, pci0:hpc0slot1; PCI nexus driver, with hotplug controller driver named hpc and slot number 1. The ap_type for PCI Hot Plug is pci.

Note that the ap_type is not the same as the information in the Type field.

Options

The following options are supported:

–c function

The following functions are supported for PCI hotpluggable slots:

configure

Configure the PCI device in the slot to be used by Solaris.

connect

Connect the slot to PCI bus.

disconnect

Disconnect the slot from the PCI bus.

insert

Not supported.

remove

Not supported.

unconfigure

Logically remove the PCI device's resources from the system.

–f

Not supported.

–h ap_id | ap_type

Print out PCI Hot Plug-specific help message.

–l list

List the values of PCI Hot Plug slots.

–o hardware_options

No hardware specific options are currently defined.

–s listing_options

Same as the generic cfgadm(8).

–t ap_id

This command is only supported on platforms which support testing capability on the slot.

–v

Execute in verbose mode.

When the –v option is used with the –l option, the cfgadm command outputs information about the attachment point. For PCI Hotplug attachment points located in a PCI PCI Express hierarchy, see cfgadm_shp(8) for details. For PCI Hot Plug attachment points not located in a PCI Express hierarchy, the Information field will be the slot's system label, if any. 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:

unknown

The slot is empty. If a card is in the slot, the card is not configured or there is no driver for the device on the card.

subclass/board

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 is the string used for a PCI Hot Plug adapter, hs is used for a Hot Swap Board, nhs for a Non—Hot Swap cPCI Board, bhs for a Basic Hot Swap cPCI Board, and fhs for a Full Hot Swap cPCI Board.

Most PCI cards with more than one device are not multi-function devices, but are implemented as a PCI bridge with arbitrary devices behind them. In those cases, the subclass displayed is that of the PCI bridge. Most commonly, the bridges are pci-pci, a generic PCI to PCI bridge or stpci, a semi-transparent PCI bridge.

–x hardware_function

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:

enable_slot | disable_slot

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 hotplugging and at boot time.

disable_slot disables the addition of hardware to this slot for hotplugging and at boot time. When a slot is disabled its condition is shown as unusable.

enable_autoconfig | disable_autoconfig

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.

disable_autoconfig disables the ability to autoconfigure the slot.

Autoconfiguration is done through the attention button on the PCI Express platforms and through the injector/ejector latch on the CompactPCI platforms. When autoconfiguration is disabled, the attention button or latch mechanism cannot be used to configure the occupant of the slot.

led=[led_sub_arg],mode=[mode_sub_arg]

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, attn, 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 hotplug 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_slot1
Ap_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

Examples

Example 1 Printing out the Value of Each Slot

The following command prints out the values of each slot:


example# cfgadm -l
Ap_Id            Type         Receptacle   Occupant       Condition
c0               scsi-bus     connected    configured     unknown
c1               scsi-bus     connected    unconfigured   unknown
c2               scsi-bus     connected    unconfigured   unknown
cpci_slot1       stpci/fhs    connected    configured     ok
cpci_slot2       unknown      empty        unconfigured   unknown
cpci_slot4       stpci/fhs    connected    configured     ok
cpci_slot5       stpci/fhs    connected    configured     ok
Example 2 Replacing a Card

The following command lists all DR-capable attachment points:

example# cfgadm


Type             Receptacle   Occupant     Condition
c0               scsi-bus     connected    configured     unknown
c1               scsi-bus     connected    unconfigured   unknown
c2               scsi-bus     connected    unconfigured   unknown
cpci_slot1       stpci/fhs    connected    configured     ok
cpci_slot2       unknown      empty        unconfigured   unknown
cpci_slot4       stpci/fhs    connected    configured     ok
cpci_slot5       stpci/fhs    connected    configured     ok

The following command unconfigures and electrically disconnects the card:

example# cfgadm -c disconnect cpci_slot4

The change can be verified by entering the following command:

example# cfgadm cpci_slot4 


Ap_Id                   Type         Receptacle   Occupant     Condition
cpci_slot4              unknown      disconnected unconfigured unknown

Now the card can be swapped. The following command electrically connects and configures the card:


example# cfgadm -c configure cpci_slot4

The change can be verified by entering the following command:

example# cfgadm cpci_slot4 


Ap_Id                   Type         Receptacle   Occupant     Condition
cpci_slot4              stpcipci/fhs connected    configured   ok

Files

/usr/lib/cfgadm/pci.so.1

Hardware specific library for PCI hotplugging.

Attributes

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

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Availability
system/dynamic-reconfiguration

See Also

config_admin(3CFGADM), libcfgadm(3LIB), attributes(7), cfgadm(8), cfgadm_shp(8)