From: thockin@hockin.org
To: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Greg KH <greg@kroah.com>, Tejun Heo <htejun@gmail.com>,
Jeff Garzik <jeff@garzik.org>,
Kumar Gala <galak@kernel.crashing.org>,
Linux Kernel <linux-kernel@vger.kernel.org>,
linux-pci@atrey.karlin.mff.cuni.cz
Subject: Re: proper way to assign fixed PCI resources to a "hotplug" device
Date: Wed, 8 Mar 2006 08:40:42 -0800 [thread overview]
Message-ID: <20060308164041.GA31828@hockin.org> (raw)
In-Reply-To: <20060308143952.B4851@jurassic.park.msu.ru>
On Wed, Mar 08, 2006 at 02:39:52PM +0300, Ivan Kokshaysky wrote:
> On Tue, Mar 07, 2006 at 09:27:23PM -0800, Greg KH wrote:
> > On Wed, Mar 08, 2006 at 11:31:31AM +0900, Tejun Heo wrote:
> > > So, the problem is that the chip actually disables the PCI BAR if
> > > certain switches aren't turned on and thus BIOSes are likely not to
> > > reserve mmio address for the BAR. We can turn on proper switches during
> > > driver initialization but we don't know how to wiggle the BAR into mmio
> > > address space.
> >
> > Thanks for the explaination, that makes more sense. Unfortunatly I do
> > not know how to do this right now :(
> >
> > Anyone with any ideas?
>
> We have 'pci_fixup_early' stuff exactly for that sort of hardware.
> IOW, just add a quirk routine that turns on desired mode of the
> device and use DECLARE_PCI_FIXUP_EARLY() for it.
> The new BAR will be discovered an assigned automatically then.
Assigned from what pool? BIOS most likely sizes the hole to be a pretty
tight fit for all the resources it knows about. If there is suddenly a
new resource, you're in trouble.
The problem is that we don't know explicitly where or how big the hole is,
how it is allocated (prefetch or non). Then, even if we *did* know, we
don't know that there's enough space for an arbitrary device to show up
later.
In BIOSes I control we enable the BARs and allocate regions for them and
then turn them off if need be.
There really isn't a good generic answer to this that will work with
existing BIOSes. My first instinct is to call this a BIOS bug.
We could teach linux about chipsets and let Linux re-do the whole
PCI-allocation process. But that's not an easy task, and is probably a
contentious idea.
Tim
next prev parent reply other threads:[~2006-03-08 16:40 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-03-03 17:42 proper way to assign fixed PCI resources to a "hotplug" device Kumar Gala
2006-03-03 22:07 ` Greg KH
2006-03-03 22:39 ` Kumar Gala
2006-03-03 23:18 ` Greg KH
2006-03-03 23:28 ` Kumar Gala
2006-03-03 23:50 ` Scott Murray
2006-03-09 16:49 ` Kumar Gala
2006-03-03 23:18 ` Jeff Garzik
2006-03-08 2:00 ` Greg KH
2006-03-08 2:31 ` Tejun Heo
2006-03-08 5:27 ` Greg KH
2006-03-08 11:39 ` Ivan Kokshaysky
2006-03-08 16:40 ` thockin [this message]
2006-03-08 21:21 ` Ivan Kokshaysky
2006-03-08 21:57 ` thockin
2006-03-08 22:11 ` Ivan Kokshaysky
2006-03-08 23:54 ` thockin
2006-03-03 23:13 ` Kumar Gala
2006-03-03 23:27 ` Greg KH
2006-03-03 23:40 ` Scott Murray
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060308164041.GA31828@hockin.org \
--to=thockin@hockin.org \
--cc=galak@kernel.crashing.org \
--cc=greg@kroah.com \
--cc=htejun@gmail.com \
--cc=ink@jurassic.park.msu.ru \
--cc=jeff@garzik.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@atrey.karlin.mff.cuni.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox