So it looks like kernel 3.10.9_alpha doesn't do PCIe so well. Transitioning to kernel 3.10.17_beta allowed the system to come up and see the PCIe bus, but all it's seeing is our bridge chip:
PCI host bridge to bus 0000:00
pci_bus 0000:00: root bus resource [io 0x1000-0x10000]
pci_bus 0000:00: root bus resource [mem 0x01000000-0x01efffff]
pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
PCI: bus0: Fast back to back transfers disabled
PCI: bus1: Fast back to back transfers enabled
pci 0000:00:00.0: BAR 0: assigned [mem 0x01000000-0x010fffff]
pci 0000:00:00.0: BAR 6: assigned [mem 0x01100000-0x0110ffff pref]
pci 0000:00:00.0: PCI bridge to [bus 01]
We had PCIe bridging working in 3.0.35, but we had to apply a kernel patch to get it to work. Is a patch also required for the 3.10.x series kernels?
For those playing at home: After a bunch of Google searches and reading a few dozen messages on the linux-arm-kernel mailing list, it appears that PCIe bus support is still very active for i.MX6, and that anyone playing there should expect a bumpy ride.
Applying the patch series beginning here (with some hand-tuning) allowed us to enumerate the devices plugged into the PCIe switch:
Hi Leo, I wonder which board you are using and also what is your pcie device. I am taking up on some pcie work with sabresd and an xhci based board so I'd like to know where you stand with your experiences so far. Are you using latest mainline kernel ?