Re: [PATCH v2] PCI: Always set prefetchable base/limit upper32 registers

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Alex Williamson
Date: Monday, November 30, 2009 - 9:10 pm

On Mon, 2009-11-30 at 17:19 -0700, Grant Grundler wrote:

Apologies for not threading the v2 patch into the original thread.  The
prefetchable base register does support the upper32 bits and it does
work correctly.  However per the pci-to-pci bridge spec, a little lower
on page 47, devices only supporting 32bit prefetchable ranges are to
implement the upper32 registers as read-only registers that return zero.
In the example above, -1 in the upper32 base simply means that base >
limit, which disables the range.

Further investigation shows that the MEM_64 resource flag is setup for
this range based on hardware capabilities, but then it gets removed in
pbus_size_mem() because we want to use the range to map a 32bit option
ROM.  This leaves us entering pci_setup_bridge() with -1 in the upper32
base and the MEM_64 flag clear, so we never touch the upper32 base
register.  I think this patch is still a simple, safe solution.  Thanks,

Alex

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: [PATCH v2] PCI: Always set prefetchable base/limit upp ..., Alex Williamson, (Mon Nov 30, 9:10 pm)