Re: PCI hotplug problems: how to debug?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Nov 04, 2009 at 06:18:19PM -0600, Bjorn Helgaas wrote:
> On Wednesday 04 November 2009 04:59:29 pm Ira W. Snyder wrote:
> > On Wed, Nov 04, 2009 at 05:15:52PM -0600, Bjorn Helgaas wrote:
> > > On Wednesday 04 November 2009 10:52:50 am Ira W. Snyder wrote:
> > > > ...
> > > > All six scenarios work on the Force computer. It seems to re-assign the
> > > > same PCI BAR addresses each time.
> > > > 
> > > > All six scenarios fail on the Trenton computer. It always re-assigns the
> > > > PCI BAR addresses starting at 0x40000000, which is just above the top of
> > > > physical memory. There is 1GB of RAM in the system.
> > > 
> > > I assume that if the card is present at boot, it works until you
> > > try the hotplug operations.
> > > 
> > > > On both the Trenton and Force computers, the BIOS assigns the PCI BAR
> > > > addresses towards the top of memory. Both assign addresses above
> > > > 0xF0000000.
> > > > 
> > > > After running a hotplug on the Trenton computer, I have used a PCI logic
> > > > analyzer to confirm that no transactions accessing the PCI BAR's of the
> > > > hotplugged card make it onto the PCI bus. PCI configuration space still
> > > > works.
> > > 
> > > If the bridge isn't forwarding transactions to the PCI bus, my guess
> > > is that we put the BAR the wrong place, e.g., maybe we didn't place
> > > it in a host bridge aperture.
> > > 
> > > This is perfect timing ... I'm trying to improve the Linux PCI resource
> > > messages to help debug situations like this.  If it's convenient for you,
> > > I would love to see dmesg logs from both boards using the current PCI
> > > linux-next kernel.
> > > 
> > 
> > I've attached logs from both boards. Note how running "mapper" after
> > hotplug works fine on the Force, but returns all 0xff's on the Trenton.
> > That's where I hooked up a PCI logic analyzer and verified that
> > *nothing* ever makes it onto the bus.
> 
> Hmm, no ACPI on either board :-)  (I assume you expected that.)
> 

Yep, no ACPI. It doesn't work, or is missing from the BIOS, or something
like that. ACPI is on in the kernel config.

> In that case, we can only guess the host bridge apertures based on
> the memory size, since we don't have host bridge drivers that know
> how to read them out of the hardware.
> 
> You mentioned using "memmap=" to change the aperture we allocate
> from.  Can you tweak that to make the after-hotplug mappings be
> closer to the original BIOS ones?  I know you tried that already;
> I guess I'm just wondering if the magic lower boundary is something
> like 0xfb000000 rather than 0xf0000000.
> 

I can try that tomorrow. I'll keep bumping it up 16MB at a time and see
what happens.

> I guess if we could dig up a spec for the host bridge, we might be
> able to read the right values out of the chip, too, at least for
> experimentation.
> 

Thanks,
Ira
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux