From: Davide Viti <hidden> Date: 2012-10-05 08:54:02
(just realized I did not send this to the mailing list: sorry for the noise)
Hi Kumar,
2012/10/4 Kumar Gala [off-list ref]:
On Oct 4, 2012, at 7:24 AM, Davide Viti wrote:
quoted
Hi,
it turns out that if define CONFIG_PCI_NOSCAN in u-boot (as per [1]), the
device behind the second controller is detected by the Linux kernel.
Would
you suggest any particular patch I should apply to fix this (I'm using kernel
2.6.34)
thanx alot in advance
Davide
[1] http://permalink.gmane.org/gmane.linux.ports.ppc.embedded/20140
My suggestion would be to try and dump all the controller registers between the case that works and doesn't and compare. There's some minor setting difference that I'm guessing is causing issues.
- k
Here's a diff for the configurations for the controller, obtained via
hexdump -C /sys/bus/pci/devices/0001\:02\:00.0/config
Hope this mail client will not screw up the text...
Just in case,
I've pasted the entire register dumps to [1].
thank you so much for your time,
D.
[1] http://pastebin.com/zzAtzCeS
Hi Kumar,
On Fri, Oct 05, 2012 at 07:47:24AM -0500, Kumar Gala wrote:
On Oct 5, 2012, at 3:54 AM, Davide Viti wrote:
quoted
quoted
On Oct 4, 2012, at 7:24 AM, Davide Viti wrote:
quoted
Hi,
it turns out that if define CONFIG_PCI_NOSCAN in u-boot (as per [1]), the
device behind the second controller is detected by the Linux kernel.
Would
you suggest any particular patch I should apply to fix this (I'm using kernel
2.6.34)
thanx alot in advance
Davide
[1] http://permalink.gmane.org/gmane.linux.ports.ppc.embedded/20140
My suggestion would be to try and dump all the controller registers between the case that works and doesn't and compare. There's some minor setting difference that I'm guessing is causing issues.
- k
When I said controller registers, I meant the FSL PCI controller and the CCSR registers not the PCI cfg register space
I've collected a complete dump of the registers in the working and not working cases
0x9000: 0x80000048 (not working) -> 0x8003007c (ok)
0x9004: 0x00000000 (not working) -> 0x08000000 (ok)
According to the p1020 manual, the register fall in the PCI Express controller 2 area,
in particular:
0x9000 PEX_CONFIG_ADDR—PCI Express configuration address register
0x9004 PEX_CONFIG_DATA—PCI Express configuration data register
does that ring any bell?
thank you in advance
Davide
Hi Kumar,
I try to summarize the problem in the hope to fix it for good:
Linux Kernel (2.6.34-6) did not detect one of the two pci devices
that instead u-boot could "see".
This was worakounded by defining CONFIG_PCI_NOSCAN in u-boot as per [1]
To find out the root cause of the problem, you've suggested to dump all
the controller registers between the case that works and doesn't and
see what changes.
Te following registers have different values in the faulty situation (u-boot
compiled without CONFIG_PCI_NOSCAN definition) vs the working case (u-boot
compiled with CONFIG_PCI_NOSCAN defined):
0x9000: 0x80000048 (not working) -> 0x8003007c (ok)
0x9004: 0x00000000 (not working) -> 0x08000000 (ok)
The register values were obtained with the devmem utility.
Thanx very much for your help,
Davide
[1] http://permalink.gmane.org/gmane.linux.ports.ppc.embedded/20140