Re: [PATCH] PCI updates - prefetchable memory regions

From: Ivan Kokshaysky (ink@jurassic.park.msu.ru)
Date: Thu Dec 20 2001 - 09:59:26 EST


On Thu, Dec 20, 2001 at 01:36:19PM +0000, Russell King wrote:
> Could you explain this a bit better. The reason we need to split the
> prefetchable regions from the non-prefetchable regions is that most
> bridges can only cope with one region which is prefetchable.

No. Most host-to-pci bridges actually have only non-prefetchable memory
region. That is, they don't generate Memory Read Line or Memory Read
Multiple transactions at all.
For pci-to-pci bridges, prefetchable region is optional (as well as I/O),
but most (if not all) bridges have it.
If we place memory-like resource behind the pci-pci bridge in the
prefetchable region, the bridge can convert Memory Read command from
its primary bus to Read Line/Multiply on the secondary bus, improving
performance thus.

> Also, some machines have a limited (sometimes fixed address and size)
> region that can only be used for prefetchable memory. How do you cater
> for this?

Just fine, if your root_bus->resource[2] is not NULL and initialized
properly. If it's too small to hold all prefetchable resources,
the rest will be allocated in the non-prefetch memory region.

Ivan.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Dec 23 2001 - 21:00:22 EST