AR# 29236


Endpoint Block Plus Wrapper for PCI Express - How should the user application respond to requests targeting Expansion ROM? System hangs during Boot process


The Block Plus Wrapper implements a 1 MB Expansion ROM by default. The user cannot disable this Expansion ROM.

How should the user application respond to system read requests when not using the Expansion ROM?


How should accesses to this Expansion ROM be addressed by the back end user application?

By default, the Xilinx Endpoint Block Plus for PCI Express v1.9.1 solution implements a 1 MB Expansion ROM BAR. During enumeration, System software often sends memory read requests down to the endpoint targeting this BAR. These requests must be completed by the user application. If a completion is not generated, system software might lock up or produce an error in the console. Below is an example of one common error that is reported by the BIOS:

"I/O card parity interrupt at XXXX Type (S)hut off NMI, (R)eboot, other keys to continue"

The recommended way to handle Expansion ROM accesses is described in the core's User Guide (UG341) on page 43:

"Accesses to the Expansion ROM BAR are indicated by trn_rbar_hit[6] assertion. Xilinx recommends that users return a Completion with Data of all zeroes if the Expansion ROM is not in use. Xilinx has found that some system BIOSs will probe the Expansion ROM BAR during boot. Not returning a completion results in a completion timeout on the requesting device, which may lead to a system hang."

Revision History

09/07/2007 - Initial Release.
01/12/2009 - Updated for v1.9.1 core.
AR# 29236
Date 12/15/2012
Status Active
Type General Article
People Also Viewed