[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: PCI Card causing PC to Hang



Hello Alex,

PCI specification defines two mechanisms to access PCI configuration
space. The difference between these machanisms is very significant for
software and core bridge logic, but it does not affect operation of other
devices on PCI bus.

Mechanism #1 is the only mechanism allowed for use for PCI >2.2
compliant designs. Also both these mechanisms are defined only for
IA-32 systems.

Detailed description of Mechanism #1 is given in PCI spec. (I have
only v2.2, so I can only refer to it), section 3.2.2.3.2, page 32.
In short words, this mechanism uses two 32-bit registers in processor's
I/O space (CONFIG_ADDRESS==0xCF8 and CONFIG_DATA=
=0xCFC) for generating configuration cycles on PCI. Host bridge
latches data written to CONFIG_ADDRESS, return them on reads
and put them (decoded) on PCI bus on address phase of a config.
transaction. Writes to and reads from CONFIG_DATA address
produce a configuration cycle on PCI bus with configuration space
address data latched in CONFIG_ADDRESS and (on writes) data
from CONFIG_DATA. Also, CONFIG_ADDRESS register contains
an enable bit that enables decoding of the CONFIG_DATA register
by host bridge. This configuration mechanism is used in all modern
systems.

Configuration Mechanism #2 is very obsolete. It seems to be
described in section 3.6.4.1.3 of PCI spec., rev 2.0 (I do not
have it). When this mechanism is used, a host bridge maps
accesses to processor's I/O range C000h-CFFFh to configuration
cycles on PCI bus. The mapping is controlled by so named
CSE register (0xCF8) and forward register (0xCFA).

The Mechanism #2 consumes much of small and highly fragmented
I/O space, and I can suppose that the I/O range allocation conflict
leads the system BIOS to hang in your case.

Regards,
Alexander Bezrukov

> Greetings
>
> At Renishaw I've been working on a PCI card, which we've found causes
> certain PCs to hang as the BIOS is running, just before the operating
system
> gets called. I've exhausted the tests I can think of and I've tested our
> card with the Foxfire 2 card from PCI-SIG and everything appears to be
okay.
>
> Our card is I/O mapped with three 256 byte BAR spaces. The Foxfire card
> tests running without our card in the PC indicate that there are no other
> I/O mapped PCI devices on the bus which should cause any conflict of I/O
> space.
>
> This only happens on certain PC's. We have one PC here which the card
causes
> to hang and the Foxfire card tests show that this PC runs "Configuration
> Mechanism #2". The foxfire card tests show that the good PC, which our
card
> does work with, is running "Configuration Mechanism #1".
>
> Could somebody explain what the difference between these two mechanisms
is,
> or suggest where I could find this information out from?
>
> Any other suggestions as to potential causes of our problem would also be
> appreciated.
>
> Many thanks
>
> Alex Huntley
>
> --------------------------------------
> Design Engineer
> Renishaw plc
> New Mills
> Wotton-under-Edge
> Gloucestershire
> GL12 8JR
> United Kingdom
>
> Tel. +44 (0) 1453 524524
> Fax.+44 (0) 1453 524201
> --------------------------------------
>
>
>
> ------------------------------------------------------------------------
>  This email and any attachments are confidential and are for the
>  use of the addressee only. If you are not the addressee, you must not
>  use or disclose the contents to any other person. Please immediately
>  notify the sender and delete the email. Statements and opinions
>  expressed here may not represent those of the company.
>  Email correspondence is monitored by the company.
>
>  The parent company of the Renishaw Group is Renishaw plc, registered
>  in England no. 1106260. Registered Office: New Mills, Wotton-under-Edge
>  Gloucestershire, GL12 8JR, United Kingdom. Tel +44 (0) 1453 524524
>  -----------------------------------------------------------------------
>
>