Method and apparatus for supporting multi-function PCI devices in PCI
bridges. Respective pre-fetch buffers are allocated in response to
respective initial data transfer requests issued by a multi-function PCI
device. A programmable buffer fill watermark is set up for each pre-fetch
buffer. While a portion of data corresponding to the data transfer
requests fill the pre-fetch buffers, the fill level of each buffer is
monitored to determine if it meets or exceeds its buffer fill watermark.
In response to such a condition, the multi-function PCI device is
connected to the PCI bridge and a virtual buffer is mapped to the
pre-fetch buffer. The pre-fetch buffer is then emptied. During subsequent
data transfers, each of the pre-fetch buffer becomes filled, the PCI
device is connected, and the virtual buffer is mapped to the filled
buffer. The process is continued until all data corresponding to the
original data transfer request is received by the multi-function PCI
device.