Expansion ROM Base Address Register @0x30
This register is used to define the base address and range of an optional expansion ROM associated with a Function. During the initial configuration of the device, the configuration program determines the presence of the expansion ROM and the size of its address range by writing a pattern of all 1s into the register and reading them back.
If the expansion ROM is not present, a value of all 0s is returned. Otherwise, the program determines the size and base address of the expansion ROM from the value returned, as it is done in the case of other base address registers. A value of 0 is returned by the Controller if the expansion ROM is not configured in the Controller. Otherwise, the number of 1s returned is based on the length of the Expansion ROM Base Address Register. The address bits [10:0] of the Expansion ROM Base Address are always set to 0. Thus, the ROM address space always starts at a 2 Kbyte boundary. The maximum allowed size of the expansion ROM address space is 16 Mbytes. In this version of the Controller, the aperture of the Expansion ROM BAR can be set to any power of 2 in the range from 256 bytes to 16K bytes by programming the EXP_ROM_BAR_aperture field in the PF BAR Configuration Register of the associated Function. The Expansion ROM BAR is enabled by the setting of the EXP_ROM_BAR_enable bit of the PF BAR Configuration Register associated with the corresponding Function.
| Bits | SW | Name | Description | Reset |
|---|---|---|---|---|
| 0 | R/W | Address Decode Enable [ADE] | This bit must be set to 1 by the configuration software to enable the expansion ROM. This bit can also be written from the local management bus. | 0x0 |
| 10:1 | R | Reserved [R1] | Reserved | 0x0 |
| 11 | R | ROM Base Address [RBARO] | Defines the base address and range of the expansion ROM address space. The number of writeable bits in this field determines the size of the range (BAR aperture). All other bits are not writeable, and are read as 0's. | 0x0 |
| 31:12 | R/W | ROM Base Address [RBARW] | Defines the base address and range of the expansion ROM address space. The number of writeable bits in this field determines the size of the range (BAR aperture). All other bits are not writeable, and are read as 0's. | 0x0 |