
3 Porting a BSP to Custom Hardware
3.3 Finalizing Your BSP
87
3
This routine can use any combination of this input data to ascertain any special
initialization requirements of a particular type of bridge at a specified location on
the PCI bus hierarchy.
The default value is
NULL, so no pre-enumeration configuration is done.
PCI_BRIDGE_POST_CONFIG_FUNC_SET
The bridge post-configuration pass initialization routine is provided so that the
BSP Developer can initialize the bridge device after the bus that the bridge
implements is enumerated. This routine is specified by calling pciAutoCfgCtl( )
with the
PCI_BRIDGE_POST_CONFIG_FUNC_SET command as follows:
pciAutoCfgCtl(pCookie, PCI_BRIDGE_POST_CONFIG_FUNC_SET,
sysPciAutoconfigPostEnumBridgeInit);
This optional, user-specified routine takes as input both the bus-device-function
tuple, and a 32-bit quantity containing both the PCI device ID and vendor ID of the
device. The function prototype for this routine is as follows:
STATUS sysPciAutoconfigPostEnumBridgeInit
(
PCI_SYSTEM *pSys,
PCI_LOC *pLoc,
UINT devVend
);
This routine can use any combination of this input data to ascertain any special
initialization requirements of a particular type of bridge at a specified location on
the PCI bus hierarchy.
The default value is
NULL, so no post-enumeration configuration is done.
Delay Before Initialization
The specified routine is configured as a roll call routine.
If a roll call routine is configured, before any configuration is actually done, the roll
call routine is called repeatedly until it returns
TRUE. A return value of TRUE
indicates that either the specified number and type of devices named in the roll call
list have been found during PCI bus enumeration or that the timeout has expired
without finding all of the specified number and type of devices. In either case, it is
assumed that all of the PCI devices that are going to appear on the busses have
appeared and PCI bus configuration can proceed.
PCI_ROLLCALL_FUNC_SET
FUNCPTR * pArg
Comentarios a estos manuales