D.
Errata Details
1. Reads from Local Configuration Registers
Problem: If bit 7 of the base address for the I/O or Memory mapped
Configuration Registers (PCI configuration register offset 14h or 10h) is set to
1, the local configuration registers can not be read. Under this condition, they
will all return zeroes when the PCI master (typically the host) attempts to read
them. The Local Configuration registers can be written to from both the PCI
master and the EEPROM. In other words, the information is correctly written
into the Local Configuration registers, but it can not be read the PCI Master.
If bit 7 is set to 0, the Local Configuration registers can be read correctly. In a
PCI system, the BIOS determines the base address (i.e. sets the value of bit
7) during the initial configuration cycle.
Solutions/Workarounds: (any)
1. During adapter hardware and driver development, it may be desirable to
read the configuration registers to confirm that the Local Configuration
registers were programmed properly. If the BIOS has bit 7 set to 0, a PCI
master can read these registers. If the BIOS has set bit 7 to 1, change the
PCI base address of the memory or I/O mapped local configuration
registers so that bit 7 is 0. This value is easily changed by writing to
offsets 10h and 14h, which hold the base addresses. For example, say
the host assigns a value of 0000FC81h for the I/O mapped local
configuration register (PCR 14h). Use PLXMON or your own driver to
change this base address to 0000FC01h (type PCR 14 0000FC01 at the
PLXMON command prompt). This solution risks that BIOS did not assign
the address range to another device.
2. Assign 256 bytes of I/O spaces to one of the un-used Local Spaces in the
Serial EEPROM. Swap the PCI Base for the un-used Local Address
Spaces to PCI Base Address 1 for I/O Mapped Configuration Registers
after the system booted.
3. Use the PCI 9052, which is pin and register compatible with the PCI 9050.
Impact:
In the production phase, for some types of adapters it is never necessary to
read the Local Configuration registers. In these cases, this erratum has no
impact. However, in some situations, it is desirable to read the Local
Configuration registers. Situations, which are impacted, are;
1. Interrupt Status. If there is only one local interrupt source, the erratum has
no impact. However, if there are two local interrupt sources, the PCI
master can not read the Local Configuration registers to determine where
the interrupt come from. In this case, the interrupt status should be stored
- 2 -
9050-SIL-ER-P0-1.3
Confidential