Fwd: PCI device scanning failure

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

 



Hello,

To continue on the previous queries, ( booting  ARM platform with RC
connected to a single EP  with single function).

I have modified the number of pass'es in probe.c ( scanning behind the
bridge to be 1) and i get the following debug messages.
I'm a little confused with the messages.

There should have been a single Device with Header type 1 ( RC ) and a
device with header type 0 ( EP).

Can someone explain me whats happening with the Device scanning. ( why
scanning for multiple devices )

 PCI: Scanning bus 0000:00
pci 0000:00:00.0: found [144d:a629] class 000480 header type 01
pci 0000:00:00.0: ignoring class 480 (doesn't match header type 01)
pci 0000:00:00.0: calling pci_fixup_ide_bases+0x0/0x50
pci 0000:00:00.0: supports D1
pci 0000:00:00.0: PME# supported from D0 D1 D3hot
pci 0000:00:00.0: PME# disabled
pci 0000:00:02.0: found [144d:a629] class 000480 header type 01
pci 0000:00:02.0: ignoring class 480 (doesn't match header type 01)
pci 0000:00:02.0: calling pci_fixup_ide_bases+0x0/0x50
pci 0000:00:02.0: supports D1
pci 0000:00:02.0: PME# supported from D0 D1 D3hot
pci 0000:00:02.0: PME# disabled
pci 0000:00:04.0: found [144d:a629] class 000480 header type 01
pci 0000:00:04.0: ignoring class 480 (doesn't match header type 01)
pci 0000:00:04.0: calling pci_fixup_ide_bases+0x0/0x50
pci 0000:00:04.0: supports D1
pci 0000:00:04.0: PME# supported from D0 D1 D3hot
pci 0000:00:04.0: PME# disabled
pci 0000:00:06.0: found [144d:a629] class 000480 header type 01
pci 0000:00:06.0: ignoring class 480 (doesn't match header type 01)
pci 0000:00:06.0: calling pci_fixup_ide_bases+0x0/0x50
pci 0000:00:06.0: supports D1
pci 0000:00:06.0: PME# supported from D0 D1 D3hot
pci 0000:00:06.0: PME# disabled
pci 0000:00:08.0: found [0003:1c5a] class 000000 header type 00
pci 0000:00:08.0: reg 30 32bit mmio: [0x80000000-0x800007ff]
pci 0000:00:08.0: calling pci_fixup_ide_bases+0x0/0x50
pci 0000:00:09.0: found [0003:1c5a] class 000000 header type 00
pci 0000:00:09.0: reg 30 32bit mmio: [0x80000000-0x800007ff]
pci 0000:00:09.0: calling pci_fixup_ide_bases+0x0/0x50
pci 0000:00:0a.0: found [0003:1c5a] class 000000 header type 00
pci 0000:00:0a.0: reg 30 32bit mmio: [0x80000000-0x800007ff]
pci 0000:00:0a.0: calling pci_fixup_ide_bases+0x0/0x50
pci 0000:00:0b.0: found [0003:1c5a] class 000000 header type 00
pci 0000:00:0b.0: reg 30 32bit mmio: [0x80000000-0x800007ff]
pci 0000:00:0b.0: calling pci_fixup_ide_bases+0x0/0x50
pci 0000:00:0c.0: found [0003:1c5a] class 000000 header type 00
pci 0000:00:0c.0: reg 30 32bit mmio: [0x80000000-0x800007ff]
pci 0000:00:0c.0: calling pci_fixup_ide_bases+0x0/0x50
pci 0000:00:0d.0: found [0003:1c5a] class 000000 header type 00
pci 0000:00:0d.0: reg 30 32bit mmio: [0x80000000-0x800007ff]
pci 0000:00:0d.0: calling pci_fixup_ide_bases+0x0/0x50
pci 0000:00:0e.0: found [0003:1c5a] class 000000 header type 00
pci 0000:00:0e.0: reg 30 32bit mmio: [0x80000000-0x800007ff]
pci 0000:00:0e.0: calling pci_fixup_ide_bases+0x0/0x50
pci 0000:00:0f.0: found [0003:1c5a] class 000000 header type 00
pci 0000:00:0f.0: reg 30 32bit mmio: [0x80000000-0x800007ff]
pci 0000:00:0f.0: calling pci_fixup_ide_bases+0x0/0x50
pci 0000:00:10.0: found [144d:a629] class 000480 header type 01
pci 0000:00:10.0: ignoring class 480 (doesn't match header type 01)
pci 0000:00:10.0: calling pci_fixup_ide_bases+0x0/0x50
pci 0000:00:10.0: supports D1
pci 0000:00:10.0: PME# supported from D0 D1 D3hot
pci 0000:00:10.0: PME# disabled
pci 0000:00:12.0: found [144d:a629] class 000480 header type 01
pci 0000:00:12.0: ignoring class 480 (doesn't match header type 01)
pci 0000:00:12.0: calling pci_fixup_ide_bases+0x0/0x50
pci 0000:00:12.0: supports D1
pci 0000:00:12.0: PME# supported from D0 D1 D3hot
pci 0000:00:12.0: PME# disabled
pci 0000:00:14.0: found [144d:a629] class 000480 header type 01
pci 0000:00:14.0: ignoring class 480 (doesn't match header type 01)
pci 0000:00:14.0: calling pci_fixup_ide_bases+0x0/0x50
pci 0000:00:14.0: supports D1
pci 0000:00:14.0: PME# supported from D0 D1 D3hot
pci 0000:00:14.0: PME# disabled
pci 0000:00:16.0: found [144d:a629] class 000480 header type 01
pci 0000:00:16.0: ignoring class 480 (doesn't match header type 01)
pci 0000:00:16.0: calling pci_fixup_ide_bases+0x0/0x50
pci 0000:00:16.0: supports D1
pci 0000:00:16.0: PME# supported from D0 D1 D3hot
pci 0000:00:16.0: PME# disabled
pci 0000:00:18.0: found [0003:1c5a] class 000000 header type 00
pci 0000:00:18.0: reg 30 32bit mmio: [0x80000000-0x800007ff]
pci 0000:00:18.0: calling pci_fixup_ide_bases+0x0/0x50
pci 0000:00:19.0: found [0003:1c5a] class 000000 header type 00
pci 0000:00:19.0: reg 30 32bit mmio: [0x80000000-0x800007ff]
pci 0000:00:19.0: calling pci_fixup_ide_bases+0x0/0x50
pci 0000:00:1a.0: found [0003:1c5a] class 000000 header type 00
pci 0000:00:1a.0: reg 30 32bit mmio: [0x80000000-0x800007ff]
pci 0000:00:1a.0: calling pci_fixup_ide_bases+0x0/0x50
pci 0000:00:1b.0: found [0003:1c5a] class 000000 header type 00
pci 0000:00:1b.0: reg 30 32bit mmio: [0x80000000-0x800007ff]
pci 0000:00:1b.0: calling pci_fixup_ide_bases+0x0/0x50
pci 0000:00:1c.0: found [0003:1c5a] class 000000 header type 00
pci 0000:00:1c.0: reg 30 32bit mmio: [0x80000000-0x800007ff]
pci 0000:00:1c.0: calling pci_fixup_ide_bases+0x0/0x50
pci 0000:00:1d.0: found [0003:1c5a] class 000000 header type 00
pci 0000:00:1d.0: reg 30 32bit mmio: [0x80000000-0x800007ff]
pci 0000:00:1d.0: calling pci_fixup_ide_bases+0x0/0x50
pci 0000:00:1e.0: found [0003:1c5a] class 000000 header type 00
pci 0000:00:1e.0: reg 30 32bit mmio: [0x80000000-0x800007ff]
pci 0000:00:1e.0: calling pci_fixup_ide_bases+0x0/0x50
pci 0000:00:1f.0: found [0003:1c5a] class 000000 header type 00
pci 0000:00:1f.0: reg 30 32bit mmio: [0x80000000-0x800007ff]
pci 0000:00:1f.0: calling pci_fixup_ide_bases+0x0/0x50
PCI: Fixups for bus 0000:00
PCI: bus0: Fast back to back transfers disabled
pci 0000:00:00.0: scanning behind bridge, config 000000, pass 0
pci 0000:00:00.0: bus configuration invalid, reconfiguring
pci 0000:00:02.0: scanning behind bridge, config 000000, pass 0
pci 0000:00:02.0: bus configuration invalid, reconfiguring
pci 0000:00:04.0: scanning behind bridge, config 000000, pass 0
pci 0000:00:04.0: bus configuration invalid, reconfiguring
pci 0000:00:06.0: scanning behind bridge, config 000000, pass 0
pci 0000:00:06.0: bus configuration invalid, reconfiguring
pci 0000:00:10.0: scanning behind bridge, config 000000, pass 0
pci 0000:00:10.0: bus configuration invalid, reconfiguring
pci 0000:00:12.0: scanning behind bridge, config 000000, pass 0
pci 0000:00:12.0: bus configuration invalid, reconfiguring
pci 0000:00:14.0: scanning behind bridge, config 000000, pass 0
pci 0000:00:14.0: bus configuration invalid, reconfiguring
pci 0000:00:16.0: scanning behind bridge, config 000000, pass 0
pci 0000:00:16.0: bus configuration invalid, reconfiguring
PCI: Bus scan for 0000:00 returning with max=00
PCI map irq: slot 0, pin 1, devslot 0, irq: 32
pci 0000:00:00.0: fixup irq: got 32
PCI map irq: slot 0, pin 1, devslot 2, irq: 32
pci 0000:00:02.0: fixup irq: got 32
PCI map irq: slot 0, pin 1, devslot 4, irq: 32
pci 0000:00:04.0: fixup irq: got 32
PCI map irq: slot 0, pin 1, devslot 6, irq: 32
pci 0000:00:06.0: fixup irq: got 32
pci 0000:00:08.0: fixup irq: got 0
pci 0000:00:09.0: fixup irq: got 0
pci 0000:00:0a.0: fixup irq: got 0
pci 0000:00:0b.0: fixup irq: got 0
pci 0000:00:0c.0: fixup irq: got 0
pci 0000:00:0d.0: fixup irq: got 0
pci 0000:00:0e.0: fixup irq: got 0
pci 0000:00:0f.0: fixup irq: got 0
PCI map irq: slot 0, pin 1, devslot 16, irq: 32
pci 0000:00:10.0: fixup irq: got 32
PCI map irq: slot 0, pin 1, devslot 18, irq: 32
pci 0000:00:12.0: fixup irq: got 32
PCI map irq: slot 0, pin 1, devslot 20, irq: 32
pci 0000:00:14.0: fixup irq: got 32
PCI map irq: slot 0, pin 1, devslot 22, irq: 32
pci 0000:00:16.0: fixup irq: got 32
pci 0000:00:18.0: fixup irq: got 0
pci 0000:00:19.0: fixup irq: got 0
pci 0000:00:1a.0: fixup irq: got 0
pci 0000:00:1b.0: fixup irq: got 0
pci 0000:00:1c.0: fixup irq: got 0
pci 0000:00:1d.0: fixup irq: got 0
pci 0000:00:1e.0: fixup irq: got 0
pci 0000:00:1f.0: fixup irq: got 0

pci 0000:00:00.0: calling quirk_cardbus_legacy+0x0/0x38
pci 0000:00:00.0: calling quirk_usb_early_handoff+0x0/0x468
pci 0000:00:02.0: calling quirk_cardbus_legacy+0x0/0x38
pci 0000:00:02.0: calling quirk_usb_early_handoff+0x0/0x468
pci 0000:00:04.0: calling quirk_cardbus_legacy+0x0/0x38
pci 0000:00:04.0: calling quirk_usb_early_handoff+0x0/0x468
pci 0000:00:06.0: calling quirk_cardbus_legacy+0x0/0x38
pci 0000:00:06.0: calling quirk_usb_early_handoff+0x0/0x468
pci 0000:00:08.0: calling quirk_cardbus_legacy+0x0/0x38
pci 0000:00:08.0: calling quirk_usb_early_handoff+0x0/0x468
pci 0000:00:09.0: calling quirk_cardbus_legacy+0x0/0x38
pci 0000:00:09.0: calling quirk_usb_early_handoff+0x0/0x468
pci 0000:00:0a.0: calling quirk_cardbus_legacy+0x0/0x38
pci 0000:00:0a.0: calling quirk_usb_early_handoff+0x0/0x468
pci 0000:00:0b.0: calling quirk_cardbus_legacy+0x0/0x38
pci 0000:00:0b.0: calling quirk_usb_early_handoff+0x0/0x468
pci 0000:00:0c.0: calling quirk_cardbus_legacy+0x0/0x38
pci 0000:00:0c.0: calling quirk_usb_early_handoff+0x0/0x468
pci 0000:00:0d.0: calling quirk_cardbus_legacy+0x0/0x38
pci 0000:00:0d.0: calling quirk_usb_early_handoff+0x0/0x468
pci 0000:00:0e.0: calling quirk_cardbus_legacy+0x0/0x38
pci 0000:00:0e.0: calling quirk_usb_early_handoff+0x0/0x468
pci 0000:00:0f.0: calling quirk_cardbus_legacy+0x0/0x38
pci 0000:00:0f.0: calling quirk_usb_early_handoff+0x0/0x468
pci 0000:00:10.0: calling quirk_cardbus_legacy+0x0/0x38
pci 0000:00:10.0: calling quirk_usb_early_handoff+0x0/0x468
pci 0000:00:12.0: calling quirk_cardbus_legacy+0x0/0x38
pci 0000:00:12.0: calling quirk_usb_early_handoff+0x0/0x468
pci 0000:00:14.0: calling quirk_cardbus_legacy+0x0/0x38
pci 0000:00:14.0: calling quirk_usb_early_handoff+0x0/0x468
pci 0000:00:16.0: calling quirk_cardbus_legacy+0x0/0x38
pci 0000:00:16.0: calling quirk_usb_early_handoff+0x0/0x468
pci 0000:00:18.0: calling quirk_cardbus_legacy+0x0/0x38
pci 0000:00:18.0: calling quirk_usb_early_handoff+0x0/0x468
pci 0000:00:19.0: calling quirk_cardbus_legacy+0x0/0x38
pci 0000:00:19.0: calling quirk_usb_early_handoff+0x0/0x468
pci 0000:00:1a.0: calling quirk_cardbus_legacy+0x0/0x38
pci 0000:00:1a.0: calling quirk_usb_early_handoff+0x0/0x468
pci 0000:00:1b.0: calling quirk_cardbus_legacy+0x0/0x38
pci 0000:00:1b.0: calling quirk_usb_early_handoff+0x0/0x468
pci 0000:00:1c.0: calling quirk_cardbus_legacy+0x0/0x38
pci 0000:00:1c.0: calling quirk_usb_early_handoff+0x0/0x468
pci 0000:00:1d.0: calling quirk_cardbus_legacy+0x0/0x38
pci 0000:00:1d.0: calling quirk_usb_early_handoff+0x0/0x468
pci 0000:00:1e.0: calling quirk_cardbus_legacy+0x0/0x38
pci 0000:00:1e.0: calling quirk_usb_early_handoff+0x0/0x468
pci 0000:00:1f.0: calling quirk_cardbus_legacy+0x0/0x38
pci 0000:00:1f.0: calling quirk_usb_early_handoff+0x0/0x468


~raghav


---------- Forwarded message ----------
From: raghav r <rocks.lnx@xxxxxxxxx>
Date: Wed, Jul 7, 2010 at 1:16 PM
Subject: PCI device scanning failure
To: linux-pci@xxxxxxxxxxxxxxx


Hello,

I have a device connected to the Rootcomplex.( RC ).
This is the only a single function  End Point device attached.

while booting, Subsystem is trying to scan my Rootcomplex for possible
attached devices,in the function " pci_scan_child_bus " ,
its trying to scan the devices beyond the RC bridge ( pci_scan_bridge ).

Here its going in a recursive loop and trying to acccess memory ( in
read_config method ) beyond the mapped range, resulting in abort.

Also while scanning its updating bus numbers ( different primary,
secondary and sub ) in
the RC config registers itself.

I'm mapping enough memory to be used for PCI.

my questions,

1. how much memory should i allocate ( is it required to allocated
enough memory to scan whole device limit range)
2. For how many buses/devices pci_scan_child_bus is recursive

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