Re: mthca and LinuxBIOS

yhlu
2005-08-05T22:26:52Z

In LinuxBIOS, We can allocate 64 bit region ( 0xfc0000000....) to the
mellanox Infiniband card. Some range above 4G. So the mmio below 4G
is some smaller only 128M, Otherwise need 512M. If 4 IB cards are
used, the mmio will be 2G. For new opteron E stepping, We could use
hareware memhole support. But if the CPU is before opteron E, We only
can use SW mem mapping ( will lose some performance) or lose (2G RAM).
at such case We need 64bit pref mem. We only lose 128M even four IB
card are installed.

yesterday, someone add pci_restore_bars...., that will call
pci_update_resource, and it will overwirte upper 32 bit of BAR2 and
BAR4 of IB card.

So the patch make pci_restore_resource
1. don't touch BAR3, and BAR5, if BAR2, and BAR4 are 64 bit MEM IO
2. not assume BAR2 and BAR4 upper 32bit is 0 if if BAR2, and BAR4 are
64 bit MEM IO

YH

On 8/5/05, Greg KH <gregkh@suse.de> wrote:
> On Fri, Aug 05, 2005 at 01:38:37PM -0700, Linus Torvalds wrote:
> >
> > Hmm.. This looks half-way sane, but too ugly for words.
> >
> > I'd much rather see that when we detect a 64-bit resource, we always mark
> > the next resource as being reserved some way, and then we just make
> > pci_update_resource() ignore such reserved resources.
> >
> > The
> >
> > if((resno & 1)==1) {
> > /* check if previous reg is 64 mem */
> > ..
> >
> > stuff is really too ugly.
>
> Yeah, that's not nice.
>
> But what's the real problem we are trying to fix here? I seem to have
> missed that in the email thread somehow.
>
> > Greg? Ivan?
>
> Ivan's the pci resource guru, any thoughts as to how to do this in a
> nicer way?
>
> thanks,
>
> greg k-h
>