pcibr_hints(D3)pcibr_hints(D3)NAME
pcibr_hints_dualslot - note device uses two PCI slots
pcibr_hints_fix_rrbs - prevent all automatic RRB allocation
pcibr_hints_fix_some_rrbs - prevent some automatic RRB allocation
pcibr_hints_handsoff - prevent generic handling
pcibr_hints_subdevs - specify subdevice mask
SYNOPSIS
#include <sys/PCI/pcibr.h>
void
pcibr_hints_dualslot(
vertex_hdl_t xconn_vhdl,
pciio_slot_t host,
pciio_slot_t guest)
void
pcibr_hints_fix_rrbs(
vertex_hdl_t xconn_vhdl)
void
pcibr_hints_fix_some_rrbs(
vertex_hdl_t xconn_vhdl,
unsigned slot_mask)
void
pcibr_hints_handsoff(
vertex_hdl_t xconn_vhdl)
void
pcibr_hints_subdevs(
vertex_hdl_t xconn_vhdl,
pciio_slot_t pci_slot,
ulong_t subdevs)
Arguments
guest A PCI slot number other than the host slot whose resources are
used by a dualslot device.
host A PCI slot number in which a dualslot device responds to Config
space accesses.
pci_slot
The (possibly logical) PCI slot number of the device of interest.
slot_mask
A bit mask specifying which PCI slots (or REQ/GNT pairs) are
affected by the call; the least significant bit is REQ0/GNT0, and
so on up to bit 0x80 is REQ7/GNT7.
Page 1
pcibr_hints(D3)pcibr_hints(D3)
subdev A bitmask of populated subdevices for a specific PCI slot. The
exact bit layout is dependent on the PCI device involved.
xconn_vhdl
The XIO connection point for the bridge, generally obtained from
a nic_vmc callback.
DESCRIPTION
Boards are sometimes built with onboard PCI busses that route more than
one REQ/GNT pair to a single device. pcibr_hints_dualslot() is used to
inform the infrastructure of such devices.
pcibr_hints_fix_rrbs() disables automatic RRB adjustment for all REQ/GNT
pairs on the bus.
pcibr_hints_fix_some_rrbs() disables automatic RRB adjustment for the
specified REQ/GNT pairs on the bus; the least significant bit corresponds
to REQ0/GNT0 and bit 0x80 corresponds to REQ7/GNT7.
pcibr_hints_handsoff() prevents additional initialization of the
specified Bridge ASIC and the infrastructure at and beyond the Bridge.
pcibr_hints_subdevs() is used to inform varous PCI device drivers that
have multiple subdevices of which subdevices are meaningful; for
instance, a chip supporting serial ports and ethernet may be used without
serial port connectors, and pcibr_hints_subdevs() would be called to
inform the driver that it need not provide support for those particular
serial ports.
NOTESpcibr_hints_dualslot() is limited to noting two REQ/GNT pairs for a
single device. Using multiple calls to associate additional REQ/GNT
pairs with a single device has undefined results.
If pcibr_hints_fix_rrbs() or pcibr_hints_fix_some_rrbs() is applied and
RRBs are not manually assigned to REQ/GNT pairs, any DMA READ request
from outside the local PCI bus using one of those REQ/GNT pairs will
stall forever.
SEE ALSOnic_vmc(D3)pcibr_rrb(D3)
Page 2