RE: Intermediate PCI bridge device(s) are not enabled

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

 



Pedanekar, Hemant wrote on Tuesday, September 28, 2010 1:41 PM:

> Hello,
> 
> I am working on a PCI Express system based on ARM SoC with following setup:
> 
> PCIe Root Complex -> PCIe-PCI Bridge -> PCI SATA Controller
> 
> The numbering is:
> Bus #0 Device #0 = PCIe Root Complex (RC)
> Bus #1 Device #0 = PCIe-PCI Bridge
> Bus #2 Device #0 = PCI SATA Controller
> 
> At the end of enumeration, the lspci shows the above devices correctly, but
> I observed that the PCIe RC and PCIe-PCI Bridge are not enabled (mem, bus
> mastering disabled). Now when I try to load the driver for
> SATA controller, it
> crashes as the memory access to SATA Controller's BAR window
> fails because the
> PCIe-PCI bridge is not enabled. I can force enabling the RC
> in my PCI controller
> code but the intermediate bridge(s) need to be enabled.
> 
> If I do "echo 1 > /sys/bus/pci/rescan" before loading the
> SATA driver, the PCIe
> RC and Bridge are enabled and loading the SATA driver works fine.
> 
[...]
> 
> Please let me know what I am missing here. Do I need to call
> pci_assign_unassigned_bridge_resources or
> pci_assign_unassigned_resources in my
> scan routine (after pci_scan_bus returns)?
> 

[...]

Hello,

Calling pci_assign_unassigned_resources() indeed helped. Now the bridges are
Enabled and endpoint drivers work fine.

But after looking at other code sources, I see that this is not a common
practice. This means I may be missing something and there is some other issue
due to which the bridge devices are not enabled after enumeration.

Can someone please comment on this?

Thanks
-
Hemant

--
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