Re: [PATCH] pci-mmconfig fix for 2.6.9

From: Grant Grundler
Date: Fri Nov 12 2004 - 17:32:50 EST

On Fri, Nov 12, 2004 at 01:49:18PM -0800, Michael Chan wrote:
> I disagree with your interpretations of the ECN.

Yeah - I think the alternatives suggested in the new Implementation
Note are confusing and distracting from the actual definitions
and declarations in the previous parts of the spec. The Implementation
Note is NOT the spec. It's just advisory.

The ECN starts out by defining two classes of systems:

| Make the Enhanced Configuration Access Mechanism required for
| PC-compatible platforms, but optional for platforms based on other
| processor/system architectures where firmware abstractions are
| provided for the configuration space access (e.g., DIG64 compliant systems).

The last phrase "where firmware abstractions" is the key bit.

> 2. mmconfig implementation must provide a method for software to
> guarantee that the config access has completed before software execution
> continues.


> In Implementation Note, it provides some examples on how to
> do this. One example is to make mmconfig non-posted. But there are other
> examples.

Yes, but the patch only modifies code for arches which use
direct access to generate the mmconfig cycles. I believe the
posted write examples are for systems which provide "an architected
firmware interface". I'm pretty sure "software" in this context
refers to the "firmware" (e.g. SAL). This spec wasn't written exclusively
for OS dorks like us.

> In short, I believe mmconfig is allowed to be posted or non-posted. If
> it is posted, there must be a method to allow software to flush it.

Yes. Agreed.
But existing direct access methods must implement non-postable writes
to be compliant.

E.g. the second paragraph of the Implementation Note:
| In those cases in which the software must know that a posted
| transaction is completed by the completer, ...

IMHO, "In those cases" refers to the second class of systems.
i386 and x86_64 are (still) in the first class of "legacy" systems.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at