Skip to contentSkip to conversation

R: Re: PCI device not working

DISCUSSION Davide Viti 2 participants 6 messages Oct 4, 2012 – Oct 31, 2012 1 message not in the archive

lore
Share & tools
lore
#0 lore raw

Hi,
it turns out that if define CONFIG_PCI_NOSCAN in u-boot (as per [1]), the= =20
devide behind the second controller is detected by the Linux kernel.

Would=20
you suggest any particular patch I should apply to fix this (I'm using kern= el=20
2.6.34)

thanx alot in advance
Davide

[1] http://permalink.gmane.org/gmane.
linux.ports.ppc.embedded/20140

Quoted 2 lines

----Messaggio originale----
Da:=20

[email protected]

Quoted 3 lines

Data: 28/09/2012 16.48
A: <[email protected]>
Cc:=20

<[email protected]>

Quoted 3 lines

Ogg: R: Re: PCI device not working

Hi=20

Kumar,

Quoted 6 lines
Quoted 3 lines

It was, can you figure out in u-boot what exact config read on=20

the bus would return the correct thing.

Quoted 1 line
Quoted 8 lines
Quoted 1 line

The fact that when we probe the=20

device at 0001:03 we should get back something like cfg_data=3D0xabba1b65

Quoted 1 line

here=20
follow some details about what is going on inside u-boot; verbosity=20

increases=20

Quoted 4 lines

from [1] to [3]

[1] PCI printouts when the board come up
[2]=20

output of "pci=20

Quoted 2 lines

[0-3] long" u-boot command
[3] same as [1] but with debug=20

print inside=20

Quoted 3 lines

indirect_read_config_##size() [drivers/pci/pci_indirect.c]

if=20

you were curious=20

Quoted 2 lines

about our u-boot board settings, please refer to:
http:

//www.mail-archive.

Quoted 3 lines

com/[email protected]/msg62007.html

thanx=20

alot,

Quoted 8 lines

Davide

*************
* [1] *
*************
PCIE1=20

used as Root Complex (base=20

Quoted 6 lines

addr ffe09000)
Scanning PCI bus 01

01 00 1b65 abba =20
0280 00

       cfg_addr:ffe09000  cfg_data:

ffe09004 indirect_type:0

Quoted 5 lines

=20
PCIE1 on bus 00 - 01

PCIE2 used as=20

Root Complex (base addr ffe0a000)

Quoted 6 lines
              Scanning PCI bus 03

       03  00  1b65  abba  0280  00
      =20

cfg_addr:ffe0a000 cfg_data:

ffe0a004 indirect_type:0

Quoted 5 lines
   PCIE2 on bus 02 - 03

*************
* =20

[2] *

Quoted 11 lines

*************

=3D> pci 0 long
Scanning PCI devices=20
on bus 0

Found PCI device 00.00.00:
vendor ID =3D 0x1957
=20
device=20

ID =3D 0x0100

Quoted 9 lines

command register =3D 0x0006
=20

status register =3D 0x0010
revision ID =3D 0x11
=20

class code =3D 0x0b (Processor)
sub class code=20

=3D =20

Quoted 3 lines

0x20
programming interface =3D 0x00
cache line=20

=3D 0x08

Quoted 3 lines

latency time =3D 0x00
header type=20

=3D 0x01

Quoted 3 lines

=20
BIST =3D 0x00
base address=20

0 =3D 0xfff00000

Quoted 3 lines

=20
base address 1 =3D 0x00000000
=20

primary bus number =3D 0x00

Quoted 3 lines

=20
secondary bus number =3D 0x01
=20

subordinate bus number =3D 0x01

Quoted 3 lines

=20
secondary latency timer =3D 0x00
=20

IO base =3D 0x00

Quoted 3 lines

IO=20
limit =3D 0x00
=20

secondary status =3D 0x0000

Quoted 6 lines

memory=20
base =3D 0xa000

memory limit =3D 0xa000
prefetch=20
memory base =3D =20

0x1001

Quoted 3 lines

prefetch memory limit =3D 0x0001
prefetch=20
memory base upper=20

=3D 0x00000000

Quoted 3 lines

prefetch memory limit upper =3D 0x00000000
IO=20
base upper 16=20

bits =3D 0x0000

Quoted 3 lines

IO limit upper 16 bits =3D 0x0000
=20
expansion ROM=20

base address =3D 0x00000000

Quoted 3 lines

interrupt line =3D 0x00
=20
interrupt=20

pin =3D 0x00

Quoted 4 lines

bridge control =3D 0x0000

=3D>=20
pci 1=20

long

Quoted 8 lines

Scanning PCI devices on bus 1

Found PCI device 01.00.00:kk
vendor=20

ID =3D 0x1b65
device ID =3D 0xabba
=20

command=20

Quoted 6 lines

register =3D 0x0006
status register =3D 0x0010

revision=20
ID =3D 0x01
class code =3D 0x02=20

(Network=20

Quoted 3 lines

controller)
sub class code =3D 0x80
programming=20

interface=20

Quoted 11 lines

=3D 0x00
cache line =3D 0x08
latency time=20

=3D 0x00
header type =3D 0x00
BIST=20

=3D 0x00
base address 0 =3D 0xa0000000
=20

base=20

Quoted 2 lines

address 1 =3D 0xa0010000
base address 2 =3D =20

0x00000000

Quoted 3 lines

base address 3 =3D 0x00000000
base address 4=20

=3D =20

Quoted 3 lines

0x00000000
base address 5 =3D 0x00000000
=20

cardBus CIS pointer=20

Quoted 2 lines

=3D 0x00000000
sub system vendor ID =3D =20

0x0000

Quoted 3 lines

sub system ID=20
=3D 0x0000
expansion ROM base address=20

=3D 0x00000000

Quoted 3 lines

interrupt=20
line =3D 0x00
interrupt pin=20

=3D 0x01

Quoted 3 lines

min Grant=20
=3D 0x00
max Latency=20

=3D 0x00

Quoted 10 lines

=3D> pci 2 long

Scanning PCI devices on bus 2

Found PCI device 02.00.00:
vendor ID=20
=3D 0x1957
device=20

ID =3D 0x0100

Quoted 3 lines

command=20
register =3D 0x0006
=20

status register =3D 0x0010

Quoted 3 lines

revision=20
ID =3D 0x11
=20

class code =3D 0x0b (Processor)

Quoted 2 lines

=20
sub class code=20

=3D 0x20

Quoted 3 lines

programming interface =3D 0x00
cache=20
line=20

=3D 0x08

Quoted 6 lines

latency time =3D 0x00
header type=20

=3D 0x01
BIST =3D 0x00
base address=20

0=20

Quoted 3 lines

=3D 0xfff00000
base address 1 =3D 0x00000000
=20

primary=20

Quoted 3 lines

bus number =3D 0x00
secondary bus number =3D 0x01
=20

subordinate=20

Quoted 3 lines

bus number =3D 0x01
secondary latency timer =3D 0x00
=20

IO base=20

Quoted 3 lines

=3D 0x00
IO limit =3D 0x00
=20

secondary=20

Quoted 6 lines

status =3D 0x0000
memory base =3D 0xb000

memory=20
limit =3D 0xb000
prefetch memory base =3D =20

0x1001

Quoted 3 lines

prefetch=20
memory limit =3D 0x0001
prefetch memory base upper=20

=3D 0x00000000

Quoted 3 lines

=20
prefetch memory limit upper =3D 0x00000000
IO base upper 16=20

bits =3D 0x0000

Quoted 3 lines

IO limit upper 16 bits =3D 0x0000
expansion ROM=20

base address =3D =20

Quoted 3 lines

0x00000000
interrupt line =3D 0x00
interrupt=20

pin =3D =20

Quoted 4 lines

0x00
bridge control =3D 0x0000

=3D> pci 3=20

long

Quoted 5 lines

Scanning PCI devices=20
on bus 3

Found PCI device 03.00.00:
vendor=20

ID =3D 0x1b65

Quoted 3 lines

=20
device ID =3D 0xabba
=20

command register =3D 0x0006

Quoted 6 lines

=20
status register =3D 0x0010

revision ID =3D 0x01
=20
class code =3D 0x02=20

(Network controller)

Quoted 3 lines

sub class code=20
=3D 0x80
programming=20

interface =3D 0x00

Quoted 3 lines

cache line=20
=3D 0x08
latency time=20

=3D 0x00

Quoted 3 lines

header type=20
=3D 0x00
BIST=20

=3D 0x00

Quoted 3 lines

base address 0=20
=3D 0xb0000000
=20

base address 1 =3D 0xb0010000

Quoted 2 lines

base=20
address 2 =3D =20

0x00000000

Quoted 3 lines

base address 3 =3D 0x00000000

base address 4=20

=3D 0x00000000

Quoted 3 lines

base address 5 =3D =20
0x00000000
=20

cardBus CIS pointer =3D 0x00000000

Quoted 2 lines

sub system vendor ID=20
=3D =20

0x0000

Quoted 3 lines

sub system ID =3D 0x0000
expansion ROM base=20
address=20

=3D 0x00000000

Quoted 7 lines

interrupt line =3D 0x00
interrupt pin=20

=3D 0x01
min Grant =3D 0x00
max Latency=20

Quoted 8 lines

=3D 0x00

*************
* [3] *
*************

=20

PCIE1=20

Quoted 2 lines

used as Root Complex (base addr ffe09000)
b=3D0 d=3D0 f=3D0 (fbusno=3D0=20

itype=3D0=20

Quoted 6 lines

cfg_adr=3Dffe09000 cfg_data=3Dffe09004) ofs=3D10 mask=3D0
...

              Scanning=20

PCI bus 01
b=3D1 d=3D0 f=3D0 (fbusno=3D0 itype=3D0=20

cfg_adr=3Dffe09000 cfg_data=3Dffe09004)=20

Quoted 3 lines

ofs=3De mask=3D3
...
b=3D1 d=3D0 f=3D0 (fbusno=3D0=20

itype=3D0 cfg_adr=3Dffe09000=20

Quoted 2 lines

cfg_data=3Dffe09004) ofs=3D3c mask=3D3

       01  00 =20

1b65 abba 0280 00

Quoted 2 lines

b=3D1 d=3D1=20
f=3D0 (fbusno=3D0 itype=3D0 cfg_adr=3Dffe09000=20

cfg_data=3Dffe09004) ofs=3De mask=3D3

Quoted 2 lines

b=3D1 d=3D1=20
f=3D0 (fbusno=3D0 itype=3D0=20

cfg_adr=3Dffe09000 cfg_data=3Dffe09004) ofs=3D0 mask=3D2

Quoted 3 lines

...
b=3D0=20
d=3D0 f=3D0 (fbusno=3D0=20

itype=3D0 cfg_adr=3Dffe09000 cfg_data=3Dffe09004) ofs=3D9 mask=3D3

Quoted 2 lines

=20
PCIE1 on bus 00=20

- 01

Quoted 4 lines

PCIE2 used as Root Complex (base addr ffe0a000)
b=3D0=20
d=3D0 f=3D0=20

(fbusno=3D2 itype=3D0 cfg_adr=3Dffe0a000 cfg_data=3Dffe0a004) ofs=3D10 mask= =3D0

Quoted 2 lines

b=3D0=20
d=3D0=20

f=3D0 (fbusno=3D2 itype=3D0 cfg_adr=3Dffe0a000 cfg_data=3Dffe0a004) ofs=3D1= 0 mask=3D0

Quoted 4 lines

...

b=3D0 d=3D0 f=3D0 (fbusno=3D2 itype=3D0 cfg_adr=3Dffe0a000 cfg_data=3Dffe0=

a004) ofs=3D9 mask=3D3

Quoted 6 lines

Scanning PCI bus 03
b=3D1 d=3D0 f=3D0 (fbusno=3D2 itype=3D0=20

cfg_adr=3Dffe0a000 cfg_data=3Dffe0a004) ofs=3De mask=3D3 b=3D1 d=3D0 f=3D0 (fbusno=3D2=20

itype=3D0=20

Quoted 3 lines

cfg_adr=3Dffe0a000 cfg_data=3Dffe0a004) ofs=3D0 mask=3D2
...
b=3D1 d=3D0 f=3D0=20

(fbusno=3D2=20

Quoted 2 lines

itype=3D0 cfg_adr=3Dffe0a000 cfg_data=3Dffe0a004) ofs=3D3c mask=3D3

      =20

03 00 1b65 =20

Quoted 2 lines

abba 0280 00

       cfg_addr:ffe0a000  cfg_data:ffe0a004 =20

indirect_type:0

Quoted 2 lines

b=3D1 d=3D1 f=3D0 (fbusno=3D2 itype=3D0 cfg_adr=3Dffe0a000=20

cfg_data=3Dffe0a004) ofs=3De mask=3D3

Quoted 3 lines

...
b=3D0 d=3D0 f=3D0 (fbusno=3D2 itype=3D0=20

cfg_adr=3Dffe0a000 cfg_data=3Dffe0a004) ofs=3D9=20

Quoted 7 lines

mask=3D3
PCIE2 on bus 02 - 03

Invita i tuoi amici e Tiscali ti premia! Il consiglio di un amico vale pi=

=C3=B9=20
di uno spot in TV. Per ogni nuovo abbonato 30 =E2=82=AC di premio per te e = per lui! Un=20
amico al mese e parli e navighi sempre gratis: http://freelosophy.tiscali.i=
t/

Invita i tuoi amici e Tiscali ti premia! Il consiglio di un amico vale pi= =C3=B9 di uno spot in TV. Per ogni nuovo abbonato 30 =E2=82=AC di premio pe= r te e per lui! Un amico al mese e parli e navighi sempre gratis: http://fr=
eelosophy.tiscali.it/

#1 lore raw

Re: PCI device not working

Quoted 2 lines · Davide Viti

Hi,
it turns out that if define CONFIG_PCI_NOSCAN in u-boot (as per [1]), =

the=20

Quoted 4 lines

devide behind the second controller is detected by the Linux kernel. =20
Would=20
you suggest any particular patch I should apply to fix this (I'm using =

kernel=20

Quoted 7 lines

2.6.34)
=20
thanx alot in advance
Davide
=20
[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

Quoted 12 lines

=20

Quoted 2 lines

----Messaggio originale----
Da:=20

[email protected]

Quoted 3 lines

Data: 28/09/2012 16.48
A: <[email protected]>
Cc:=20

<[email protected]>

Quoted 3 lines

Ogg: R: Re: PCI device not working
=20
Hi=20

Kumar,

Quoted 9 lines
Quoted 3 lines

=20

Quoted 2 lines

=20
It was, can you figure out in u-boot what exact config read on=20

=20

Quoted 3 lines

the bus would return the correct thing.

Quoted 2 lines

=20
The fact that when we probe the=20

=20

Quoted 1 line

device at 0001:03 we should get back something like =

cfg_data=3D0xabba1b65

Quoted 368 lines
Quoted 2 lines
Quoted 1 line

=20

=20

=20

Quoted 2 lines

here=20
follow some details about what is going on inside u-boot; verbosity=20=

increases=20

Quoted 4 lines

from [1] to [3]
=20
[1] PCI printouts when the board come up
[2]=20

output of "pci=20

Quoted 2 lines

[0-3] long" u-boot command
[3] same as [1] but with debug=20

print inside=20

Quoted 3 lines

indirect_read_config_##size() [drivers/pci/pci_indirect.c] =20
if=20

you were curious=20

Quoted 2 lines

about our u-boot board settings, please refer to:
http:

//www.mail-archive.

Quoted 3 lines

com/[email protected]/msg62007.html
=20
thanx=20

alot,

Quoted 8 lines

Davide
=20
=20
=20
*************
* [1] *
*************
PCIE1=20

used as Root Complex (base=20

Quoted 2 lines

addr ffe09000)
Scanning PCI bus 01

=20

Quoted 3 lines
      01  00  1b65  abba =20
0280  00
      cfg_addr:ffe09000  cfg_data:

ffe09004 indirect_type:0

Quoted 5 lines

=20
PCIE1 on bus 00 - 01
=20
=20
PCIE2 used as=20

Root Complex (base addr ffe0a000)

Quoted 2 lines

=20
Scanning PCI bus 03

=20

Quoted 3 lines
      03  00  1b65  abba  0280  00

=20
cfg_addr:ffe0a000 cfg_data:

ffe0a004 indirect_type:0

Quoted 5 lines

PCIE2 on bus 02 - 03
=20
=20
*************
* =20

[2] *

Quoted 6 lines

*************
=20
=3D> pci 0 long
Scanning PCI devices=20
on bus 0
=20

=20

Quoted 4 lines

Found PCI device 00.00.00:
vendor ID =3D 0x1957
=20
device=20

ID =3D 0x0100

Quoted 2 lines

command register =3D 0x0006
=20

=20

Quoted 3 lines

status register =3D 0x0010
revision ID =3D 0x11
=20

=20

Quoted 2 lines

class code =3D 0x0b (Processor)
sub class code=20

=3D =20

Quoted 3 lines

0x20
programming interface =3D 0x00
cache line=20

=3D 0x08

Quoted 3 lines

=20
latency time =3D 0x00
header type=20

=3D 0x01

Quoted 3 lines

=20
BIST =3D 0x00
base address=20

0 =3D 0xfff00000

Quoted 3 lines

=20
base address 1 =3D 0x00000000
=20

primary bus number =3D 0x00

Quoted 3 lines

=20
secondary bus number =3D 0x01
=20

subordinate bus number =3D 0x01

Quoted 3 lines

=20
secondary latency timer =3D 0x00
=20

IO base =3D 0x00

Quoted 3 lines

IO=20
limit =3D 0x00
=20

secondary status =3D 0x0000

Quoted 2 lines

memory=20
base =3D 0xa000

=20

Quoted 3 lines

memory limit =3D 0xa000
prefetch=20
memory base =3D =20

0x1001

Quoted 3 lines

prefetch memory limit =3D 0x0001
prefetch=20
memory base upper=20

=3D 0x00000000

Quoted 3 lines

prefetch memory limit upper =3D 0x00000000
IO=20
base upper 16=20

bits =3D 0x0000

Quoted 3 lines

IO limit upper 16 bits =3D 0x0000
=20
expansion ROM=20

base address =3D 0x00000000

Quoted 3 lines

interrupt line =3D 0x00
=20
interrupt=20

pin =3D 0x00

Quoted 4 lines

bridge control =3D 0x0000
=20
=3D>=20
pci 1=20

long

Quoted 4 lines

Scanning PCI devices on bus 1
=20
Found PCI device 01.00.00:kk
vendor=20

=20

Quoted 3 lines

ID =3D 0x1b65
device ID =3D 0xabba
=20

command=20

Quoted 2 lines

register =3D 0x0006
status register =3D 0x0010

=20

Quoted 3 lines

revision=20
ID =3D 0x01
class code =3D 0x02=20

(Network=20

Quoted 3 lines

controller)
sub class code =3D 0x80
programming=20

interface=20

Quoted 3 lines

=3D 0x00
cache line =3D 0x08
latency time=20

=20

Quoted 3 lines

=3D 0x00
header type =3D 0x00
BIST=20

=20

Quoted 3 lines

=3D 0x00
base address 0 =3D 0xa0000000
=20

base=20

Quoted 2 lines

address 1 =3D 0xa0010000
base address 2 =3D =20

0x00000000

Quoted 3 lines

=20
base address 3 =3D 0x00000000
base address 4=20

=3D =20

Quoted 3 lines

0x00000000
base address 5 =3D 0x00000000
=20

cardBus CIS pointer=20

Quoted 2 lines

=3D 0x00000000
sub system vendor ID =3D =20

0x0000

Quoted 3 lines

sub system ID=20
=3D 0x0000
expansion ROM base address=20

=3D 0x00000000

Quoted 3 lines

interrupt=20
line =3D 0x00
interrupt pin=20

=3D 0x01

Quoted 3 lines

min Grant=20
=3D 0x00
max Latency=20

=3D 0x00

Quoted 5 lines

=20
=3D> pci 2 long
=20
Scanning PCI devices on bus 2
=20

=20

Quoted 4 lines

Found PCI device 02.00.00:
vendor ID=20
=3D 0x1957
device=20

ID =3D 0x0100

Quoted 3 lines

command=20
register =3D 0x0006
=20

status register =3D 0x0010

Quoted 3 lines

revision=20
ID =3D 0x11
=20

class code =3D 0x0b (Processor)

Quoted 2 lines

=20
sub class code=20

=3D 0x20

Quoted 3 lines

programming interface =3D 0x00
cache=20
line=20

=3D 0x08

Quoted 2 lines

latency time =3D 0x00
header type=20

=20

Quoted 3 lines

=3D 0x01
BIST =3D 0x00
base address=20

0=20

Quoted 3 lines

=3D 0xfff00000
base address 1 =3D 0x00000000
=20

primary=20

Quoted 3 lines

bus number =3D 0x00
secondary bus number =3D 0x01
=20

subordinate=20

Quoted 3 lines

bus number =3D 0x01
secondary latency timer =3D 0x00
=20

IO base=20

Quoted 3 lines

=3D 0x00
IO limit =3D 0x00
=20

secondary=20

Quoted 2 lines

status =3D 0x0000
memory base =3D 0xb000

=20

Quoted 3 lines

memory=20
limit =3D 0xb000
prefetch memory base =3D =20

0x1001

Quoted 3 lines

prefetch=20
memory limit =3D 0x0001
prefetch memory base upper=20

=3D 0x00000000

Quoted 3 lines

=20
prefetch memory limit upper =3D 0x00000000
IO base upper 16=20

bits =3D 0x0000

Quoted 3 lines

=20
IO limit upper 16 bits =3D 0x0000
expansion ROM=20

base address =3D =20

Quoted 3 lines

0x00000000
interrupt line =3D 0x00
interrupt=20

pin =3D =20

Quoted 4 lines

0x00
bridge control =3D 0x0000
=20
=3D> pci 3=20

long

Quoted 5 lines

Scanning PCI devices=20
on bus 3
=20
Found PCI device 03.00.00:
vendor=20

ID =3D 0x1b65

Quoted 3 lines

=20
device ID =3D 0xabba
=20

command register =3D 0x0006

Quoted 2 lines

=20
status register =3D 0x0010

=20

Quoted 3 lines

revision ID =3D 0x01
=20
class code =3D 0x02=20

(Network controller)

Quoted 3 lines

sub class code=20
=3D 0x80
programming=20

interface =3D 0x00

Quoted 3 lines

cache line=20
=3D 0x08
latency time=20

=3D 0x00

Quoted 3 lines

header type=20
=3D 0x00
BIST=20

=3D 0x00

Quoted 3 lines

base address 0=20
=3D 0xb0000000
=20

base address 1 =3D 0xb0010000

Quoted 2 lines

base=20
address 2 =3D =20

0x00000000

Quoted 3 lines

base address 3 =3D 0x00000000
=20
base address 4=20

=3D 0x00000000

Quoted 3 lines

base address 5 =3D =20
0x00000000
=20

cardBus CIS pointer =3D 0x00000000

Quoted 2 lines

sub system vendor ID=20
=3D =20

0x0000

Quoted 3 lines

sub system ID =3D 0x0000
expansion ROM base=20
address=20

=3D 0x00000000

Quoted 2 lines

interrupt line =3D 0x00
interrupt pin=20

=20

Quoted 3 lines

=3D 0x01
min Grant =3D 0x00
max Latency=20

=20

Quoted 8 lines

=3D 0x00
=20
=20
*************
* [3] *
*************
=20
=20

PCIE1=20

Quoted 2 lines

used as Root Complex (base addr ffe09000)
b=3D0 d=3D0 f=3D0 (fbusno=3D0=20

itype=3D0=20

Quoted 2 lines

cfg_adr=3Dffe09000 cfg_data=3Dffe09004) ofs=3D10 mask=3D0
...

=20

Quoted 3 lines
             Scanning=20

PCI bus 01
b=3D1 d=3D0 f=3D0 (fbusno=3D0 itype=3D0=20

cfg_adr=3Dffe09000 cfg_data=3Dffe09004)=20

Quoted 3 lines

ofs=3De mask=3D3
...
b=3D1 d=3D0 f=3D0 (fbusno=3D0=20

itype=3D0 cfg_adr=3Dffe09000=20

Quoted 2 lines

cfg_data=3Dffe09004) ofs=3D3c mask=3D3

      01  00 =20

1b65 abba 0280 00

Quoted 2 lines

b=3D1 d=3D1=20
f=3D0 (fbusno=3D0 itype=3D0 cfg_adr=3Dffe09000=20

cfg_data=3Dffe09004) ofs=3De mask=3D3

Quoted 2 lines

b=3D1 d=3D1=20
f=3D0 (fbusno=3D0 itype=3D0=20

cfg_adr=3Dffe09000 cfg_data=3Dffe09004) ofs=3D0 mask=3D2

Quoted 3 lines

...
b=3D0=20
d=3D0 f=3D0 (fbusno=3D0=20

itype=3D0 cfg_adr=3Dffe09000 cfg_data=3Dffe09004) ofs=3D9 mask=3D3

Quoted 8 lines
Quoted 2 lines

=20
PCIE1 on bus 00=20

- 01

Quoted 4 lines

=20
PCIE2 used as Root Complex (base addr ffe0a000)
b=3D0=20
d=3D0 f=3D0=20

(fbusno=3D2 itype=3D0 cfg_adr=3Dffe0a000 cfg_data=3Dffe0a004) ofs=3D10 =

mask=3D0

Quoted 3 lines
Quoted 2 lines

b=3D0=20
d=3D0=20

f=3D0 (fbusno=3D2 itype=3D0 cfg_adr=3Dffe0a000 cfg_data=3Dffe0a004) =

ofs=3D10 mask=3D0

Quoted 4 lines
Quoted 2 lines

...
=20

=20

Quoted 1 line

b=3D0 d=3D0 f=3D0 (fbusno=3D2 itype=3D0 cfg_adr=3Dffe0a000 =

cfg_data=3Dffe0a004) ofs=3D9 mask=3D3

Quoted 21 lines

=20

Quoted 3 lines

=20
Scanning PCI bus 03
b=3D1 d=3D0 f=3D0 (fbusno=3D2 itype=3D0=20

=20

Quoted 2 lines

cfg_adr=3Dffe0a000 cfg_data=3Dffe0a004) ofs=3De mask=3D3 b=3D1 d=3D0 f=3D0 (fbusno=3D2=20

itype=3D0=20

Quoted 3 lines

cfg_adr=3Dffe0a000 cfg_data=3Dffe0a004) ofs=3D0 mask=3D2
...
b=3D1 d=3D0 f=3D0=20

(fbusno=3D2=20

Quoted 2 lines

itype=3D0 cfg_adr=3Dffe0a000 cfg_data=3Dffe0a004) ofs=3D3c mask=3D3 =20

03  00  1b65 =20
> abba  0280  00
>       cfg_addr:ffe0a000  cfg_data:ffe0a004 =20

indirect_type:0

Quoted 2 lines

=20
b=3D1 d=3D1 f=3D0 (fbusno=3D2 itype=3D0 cfg_adr=3Dffe0a000=20

cfg_data=3Dffe0a004) ofs=3De mask=3D3

Quoted 11 lines
Quoted 3 lines

=20
...
b=3D0 d=3D0 f=3D0 (fbusno=3D2 itype=3D0=20

cfg_adr=3Dffe0a000 cfg_data=3Dffe0a004) ofs=3D9=20

Quoted 3 lines

mask=3D3
PCIE2 on bus 02 - 03
=20

=20

Quoted 3 lines

=20
=20
Invita i tuoi amici e Tiscali ti premia! Il consiglio di un amico =

vale pi=F9=20

Quoted 1 line

di uno spot in TV. Per ogni nuovo abbonato 30 =80 di premio per te e =

per lui! Un=20

Quoted 1 line

amico al mese e parli e navighi sempre gratis: =

http://freelosophy.tiscali.it/

Quoted 4 lines

=20
=20
=20
Invita i tuoi amici e Tiscali ti premia! Il consiglio di un amico vale =

pi=F9 di uno spot in TV. Per ogni nuovo abbonato 30 =80 di premio per te = e per lui! Un amico al mese e parli e navighi sempre gratis: =
http://freelosophy.tiscali.it/

A message that is not in the archive (sent off-list or not yet received): CAKpAL0m3YnsbbGxL+ejfyE4zfGE5LD9Qxb7oobHVaAZGE1_Jnw@mail.gmail.com

#3 lore raw

Fwd: PCI device not working

(just realized I did not send this to the mailing list: sorry for the noise)

Hi Kumar,

2012/10/4 Kumar Gala <[email protected]>:

Quoted 11 lines · Davide Viti
Quoted 9 lines

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)

Quoted 8 lines
Quoted 4 lines

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

--- cfg0_2_NOK.txt 2012-10-05 09:37:44.854607000 +0200
+++ cfg0_2_OK.txt 2012-10-05 09:36:58.337399000 +0200

 00000400  00 00 00 00 16 00 00 00  e2 04 00 00 00 00 00 00  |................|
 00000410  04 00 00 00 01 00 00 00  00 00 00 00 40 40 00 00  |............@@..|
 00000420  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
-00000430  00 00 00 00 00 00 00 00  21 81 9e 00 1a 90 01 00  |........!.......|
+00000430  00 00 00 00 00 00 00 00  21 81 9e 00 83 20 08 00  |........!.... ..|
 00000440  10 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
 00000450  ce d7 14 00 20 1e fc 01  00 00 00 00 5c 0c 00 00  |.... .......\...|
 00000460  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
 00000470  57 19 00 01 11 00 20 0b  00 00 00 00 01 00 00 00  |W..... .........|
 00000480  44 3d 00 00 00 00 00 00  f0 07 00 00 00 00 00 00  |D=..............|
 00000490  c0 07 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
-000004a0  00 00 00 00 00 00 00 00  00 00 00 00 3c 01 00 00  |............<...|
+000004a0  00 00 00 00 00 00 00 00  00 00 00 00 7e 01 00 00  |............~...|
 000004b0  00 00 00 00 00 00 00 00  28 04 01 80 85 20 00 00  |........(.... ..|
 000004c0  ff 00 00 00 00 00 00 00  00 00 00 00 11 00 00 00  |................|
 000004d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
 000004e0  00 00 00 00 01 01 00 00  01 01 00 00 00 00 00 00  |................|
-000004f0  0a 00 00 00 01 00 20 04  00 00 00 00 79 47 0e eb  |...... .....yG..|
+000004f0  4a 00 00 01 03 00 00 04  00 00 00 00 01 00 01 00  |J...............|
 00000500  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
 00000510  00 00 00 00 00 00 00 00  21 01 00 00 00 00 00 00  |........!.......|
 00000520  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

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

#4 lore raw

Re: PCI device not working

Quoted 1 line · Davide Viti

(just realized I did not send this to the mailing list: sorry for the =

noise)

Quoted 9 lines

=20
Hi Kumar,
=20
2012/10/4 Kumar Gala <[email protected]>:

Quoted 5 lines

=20
On Oct 4, 2012, at 7:24 AM, Davide Viti wrote:
=20

Quoted 2 lines

Hi,
it turns out that if define CONFIG_PCI_NOSCAN in u-boot (as per =

[1]), the

Quoted 1 line
Quoted 1 line
Quoted 1 line

device behind the second controller is detected by the Linux =

kernel.

Quoted 3 lines
Quoted 3 lines
Quoted 3 lines

=20
Would
you suggest any particular patch I should apply to fix this (I'm =

using kernel

Quoted 8 lines
Quoted 8 lines
Quoted 6 lines

2.6.34)
=20
thanx alot in advance
Davide
=20
[1] http://permalink.gmane.org/gmane.linux.ports.ppc.embedded/20140

=20
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.

Quoted 2 lines
Quoted 2 lines

=20
- k

When I said controller registers, I meant the FSL PCI controller and the = CCSR registers not the PCI cfg register space

- k=

author
#5 lore raw

Re: PCI device not working

Hi Kumar,

Quoted 16 lines · Kumar Gala
Quoted 13 lines · Davide Viti
Quoted 13 lines · Davide Viti
Quoted 12 lines

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

Quoted 8 lines
Quoted 5 lines
Quoted 5 lines
Quoted 1 line

[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

author
#6 lore raw

Re: PCI device not working

In reply to Kumar Gala

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