From: Chuck Tuffli <ctuffli@gmail.com>
To: Yinghai Lu <yinghai@kernel.org>
Cc: "linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
Bjorn Helgaas <bhelgaas@google.com>
Subject: Re: Error assigning BAR 0 to hotplugged device
Date: Wed, 16 Jul 2014 18:00:31 -0700 [thread overview]
Message-ID: <CAKAYmMJf=TdpdyALZQOoAmdgPjpzFu-OP7rMLzyaFRno-36F6Q@mail.gmail.com> (raw)
In-Reply-To: <CAE9FiQW+GbprQZNvHC-ek1cSydP3KWcjgAU0ii5_jECC1+tXrg@mail.gmail.com>
On Wed, Jul 16, 2014 at 4:47 PM, Yinghai Lu <yinghai@kernel.org> wrote:
...
> in the tree:
> 80:03.0 ==> 96:00.0 ==> 97:08.0 ==> 98:00.0 ==> 99:00.0 ==> 9a:00.0
> ==> 9b:15.0
>
> only 97:08.0 and 99:00.0 is hotplug+.
>
> and kernel will honor BIOS set value at first, and realloc will only work on
> unassigned/invalid assigned BARs. and hpmem_size will be only treated at
> optional size even on hotplug slots.
Does this mean the only time the kernel will re-allocate the BARs and
use hpmemsize is if they have the value 0x0? If so, does realloc have
any limitations with respect to where in the tree the invalid BAR
exists? In my example, could realloc fix 80:03.0? 9b:15.0?
> a5:00.0 is not in 9b:15.0 at first, so yo just put the card in can
> rescan the card,
> right?
Correct. I did an echo 1 > /sys/bus/pci/rescan
> In this case we don't to realloc, as other devices could already have
> driver loaded.
I can understand why this is true after the PCI subsystem is up and
running, but at boot time, before any other drivers have loaded,
wouldn't it be possible for the PCI driver to honor realloc and
hpmemsize and override the values written by the BIOS? This way,
devices added later would have memory available for their BARs.
> You need to fix the BIOS to have correct setting for 96:1b.0.
>
> SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd-
> HotPlug- Surprise-
> Slot #21, PowerLimit 25.000W; Interlock- NoCompl-
> SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet-
> CmdCplt- HPIrq- LinkChg-
> Control: AttnInd Unknown, PwrInd Unknown,
> Power- Interlock-
> SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt-
> PresDet+ Interlock-
> Changed: MRL- PresDet+ LinkState+
>
> to make it really hotplug slot.
Agreed. The slot actually is hot plug capable, and I was considering
adding a quirk and then using hpmemsize to provide enough resources
for devices. But given your description, it sounds like this won't
work.
> And BIOS need to make sure parent bus/bridge have enough resource ranges
> for the hotplug slots.
>
> Yinghai
If the BIOS doesn't allocate enough memory mapped IO resources for
devices, it sounds like the kernel can't really fix this problem,
right?
--chuck
next prev parent reply other threads:[~2014-07-17 1:00 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-08 19:37 Error assigning BAR 0 to hotplugged device Chuck Tuffli
2014-07-16 17:19 ` Chuck Tuffli
2014-07-16 18:54 ` Bjorn Helgaas
2014-07-16 20:55 ` Yinghai Lu
2014-07-16 23:47 ` Yinghai Lu
2014-07-16 23:49 ` Yinghai Lu
2014-07-17 1:00 ` Chuck Tuffli [this message]
2014-07-17 2:15 ` Yinghai Lu
2014-07-17 15:08 ` Chuck Tuffli
2014-07-17 16:33 ` Yinghai Lu
2014-07-17 16:47 ` Chuck Tuffli
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='CAKAYmMJf=TdpdyALZQOoAmdgPjpzFu-OP7rMLzyaFRno-36F6Q@mail.gmail.com' \
--to=ctuffli@gmail.com \
--cc=bhelgaas@google.com \
--cc=linux-pci@vger.kernel.org \
--cc=yinghai@kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).