Re: PCIe enumeration

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

 



* Yinghai Lu wrote:
> On Tue, Nov 17, 2009 at 12:47 AM, Thierry Reding
> <thierry.reding@xxxxxxxxxxxxxxxxx> wrote:
[...]
> > dmesg (prefetchable and non-prefetchable cases) and lspci -tv output is
> > attached. Perhaps I should give some more details about the setup: as can be
> > seen from the lspci setup, there are three endpoints implemented in the FPGA,
> > each behind its own bridge. All endpoints have all 6 BARs implemented, each
> > BAR being 1MB non-prefetchable. For what it's worth, decreasing the BAR size
> > to 64KB makes no difference.
> >
> > The odd thing, judging by the dmesg output, is that the bridges before the
> > endpoints seem to get the correct configuration. Only for the endpoints does
> > the BIOS seem to get things wrong. Dumping accesses to the BARs from within
> > the FPGA shows that the BIOS indeed writes the correct bases to the endpoint
> > registers (the bases nicely fitting into the window that the bridge is
> > configured with) but then goes and overwrites those values with 0.
> >
> > Again, switching from non-prefetchable to prefetchable mode no longer exposes
> > the issue as demonstrated by the second dmesg output.
> 
> your BIOS doesn't assign some mmio
[...]
> [    0.372217] pci 0000:04:00.0: reg 30 32bit mmio pref: [0x000000-0x0007ff]
[...]
> [    0.488217] pci 0000:05:00.0: reg 30 32bit mmio pref: [0x000000-0x0007ff]
[...]

Thanks for that hint. I've finally been able to fix the problem. The reason
was that the FPGA was missing proper handling for the expansion ROM base
address register (30). Handling them just like normal BARs solves the issue.

Thanks,
Thierry
--
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