[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4E96DE8A.6050404@jp.fujitsu.com>
Date: Thu, 13 Oct 2011 21:50:18 +0900
From: Kenji Kaneshige <kaneshige.kenji@...fujitsu.com>
To: Abdelghani Ouchabane <abdelghani@...no.com>
CC: Bjorn Helgaas <bhelgaas@...gle.com>, linux-kernel@...r.kernel.org,
linux-pci@...r.kernel.org
Subject: Re: PCIe can not rescan for new PCIe device ( FPGA board )
Thank you for the information. Though I don't have any good news for you,
I think as follows based on the info.
- There are two hot-plug capable PCIe slots on your machine.
- But, it seems you are using fakephp driver, not pciehp (is that
correct?). The fakephp cannot handle hot-plug event such as presence
change event on the slot. This is why the bus is not scanned automatically.
- Unfortunately, the bus would not be scanned automatically even if you
use pciehp. As I told you in the previous email, current pciehp don't
scan the bus automatically only if the slot is hot-plug surprise
capable. According to the lspci output, your hotplug controller is not
hot-plug surprise capable.
- I don't think pciehp solve invalid register read problem. According to
the lspci output, power controller capability isn't present on your
hotplug controller. On such environment, pciehp driver does almost the
same thing as fakephp does (just scan the bus/remove the pci device data
structure) except hot-plug event handling.
But it's worth whole trying pciehp.
By the way, have you tried acpiphp? It might help you.
Regards,
Kenji Kaneshige
(2011/10/12 17:35), Abdelghani Ouchabane wrote:
> On 12/10/11 08:36, Kenji Kaneshige wrote:
>> Hello,
>>
>> According to your dmesg output, pciehp driver doesn't detect any PCIe
>> hotplug slot. Can you send the following information?
>>
>> - ls -lR /sys/bus/pci/slots
>> - lspci -vvvv (as root user)
>
> Hallo,
>
> - I tested my system with:
> * A standard WiFi card (Network controller: Ralink corp. RT2860 ---
> Belkin Device 817c --- Kernel modules: rt2800pci).
> * My FPGA board.
>
> - I did the following:
>
> * I booted the system without the express card& without my FPGA board.
> 1 - Introduce the express card& my FPGA board after the system has
> booted up.
> 2 - lspci -vt doesn't show the express card& FPGA board, express card
> divers did not loaded (lsmod).
> 3 - lspci -vt doesn't show my FPGA board.
> 4 - Rescan the PCIe bus "echo 1> /sys/bus/pci/rescan"
> 5 - The express card gets detected (lspci), drivers get loaded (lsmod),
> But ifconfig doesn't show the interface (wlan0).
> 6 - My FPGA board gets detected (lspci), but I could not access its
> registers 0xffffffff.
> dmesg :
> [ 152.045433] pci 0000:01:00.0: [1814:0781] type 0 class 0x000280
> [ 152.045602] pci 0000:01:00.0: reg 10: [mem 0x00000000-0x0000ffff]
> [ 152.045854] pci 0000:01:00.0: PME# supported from D0 D3hot
> [ 152.045980] pci 0000:01:00.0: PME# disabled
> [ 152.046263] radeon 0000:00:01.0: BAR 6: [??? 0x00000000 flags 0x2] has
> bogus alignment
> [ 152.046452] pci 0000:01:00.0: BAR 0: assigned [mem 0x40400000-0x4040ffff]
> [ 152.046606] pci 0000:01:00.0: BAR 0: set to [mem
> 0x40400000-0x4040ffff] (PCI address [0x40400000-0x4040ffff])
> [ 152.075665] cfg80211: Calling CRDA to update world regulatory domain
> [ 152.116429] rt2800pci 0000:01:00.0: enabling device (0000 -> 0002)
> [ 152.116598] rt2800pci 0000:01:00.0: PCI INT A -> GSI 16 (level, low)
> -> IRQ 16
> [ 152.116770] rt2800pci 0000:01:00.0: setting latency timer to 64
> [ 152.127146] phy0 -> rt2x00pci_regbusy_read: Error - Indirect register
> access failed: offset=0x00000580, value=0xffffffff
> [ 152.137537] phy0 -> rt2x00pci_regbusy_read: Error - Indirect register
> access failed: offset=0x00000580, value=0xffffffff
> [ 152.147926] phy0 -> rt2x00pci_regbusy_read: Error - Indirect register
> access failed: offset=0x00000580, value=0xffffffff
> [ 152.158332] phy0 -> rt2x00pci_regbusy_read: Error - Indirect register
> access failed: offset=0x00000580, value=0xffffffff
> [ 152.168723] phy0 -> rt2x00pci_regbusy_read: Error - Indirect register
> access failed: offset=0x00000580, value=0xffffffff
> [ 152.179115] phy0 -> rt2x00pci_regbusy_read: Error - Indirect register
> access failed: offset=0x00000580, value=0xffffffff
> [ 152.189489] phy0 -> rt2x00pci_regbusy_read: Error - Indirect register
> access failed: offset=0x00000580, value=0xffffffff
> [ 152.199864] phy0 -> rt2x00pci_regbusy_read: Error - Indirect register
> access failed: offset=0x00000580, value=0xffffffff
> [ 152.210256] phy0 -> rt2x00pci_regbusy_read: Error - Indirect register
> access failed: offset=0x00000580, value=0xffffffff
> [ 152.220634] phy0 -> rt2x00pci_regbusy_read: Error - Indirect register
> access failed: offset=0x00000580, value=0xffffffff
> [ 152.231088] phy0 -> rt2x00pci_regbusy_read: Error - Indirect register
> access failed: offset=0x00000580, value=0xffffffff
> [ 152.241463] phy0 -> rt2x00pci_regbusy_read: Error - Indirect register
> access failed: offset=0x00000580, value=0xffffffff
> [ 152.251865] phy0 -> rt2x00pci_regbusy_read: Error - Indirect register
> access failed: offset=0x00000580, value=0xffffffff
> [ 152.262270] phy0 -> rt2x00pci_regbusy_read: Error - Indirect register
> access failed: offset=0x00000580, value=0xffffffff
> [ 152.276185] phy0 -> rt2x00pci_regbusy_read: Error - Indirect register
> access failed: offset=0x00000580, value=0xffffffff
> [ 152.290055] phy0 -> rt2x00pci_regbusy_read: Error - Indirect register
> access failed: offset=0x00000580, value=0xffffffff
> [ 152.303865] phy0 -> rt2x00pci_regbusy_read: Error - Indirect register
> access failed: offset=0x00000580, value=0xffffffff
> [ 152.307477] phy0 -> rt2800_init_eeprom: Error - Invalid RT chipset
> detected.
> [ 152.311073] phy0 -> rt2x00lib_probe_dev: Error - Failed to allocate
> device.
> [ 152.314700] rt2800pci 0000:01:00.0: PCI INT A disabled
> [ 172.830318] pci 0000:02:00.0: [1234:0002] type 0 class 0x001180
> [ 172.833754] pci 0000:02:00.0: reg 10: [mem 0x00000000-0x00000fff 64bit
> pref]
> [ 172.837127] pci 0000:02:00.0: reg 18: [mem 0x00000000-0x0003ffff 64bit
> pref]
> [ 172.840456] pci 0000:02:00.0: reg 20: [mem 0x00000000-0x00000fff 64bit
> pref]
> [ 172.843964] radeon 0000:00:01.0: BAR 6: [??? 0x00000000 flags 0x2] has
> bogus alignment
> [ 172.847331] pci 0000:02:00.0: BAR 2: assigned [mem
> 0x40200000-0x4023ffff 64bit pref]
> [ 172.850728] pci 0000:02:00.0: BAR 2: set to [mem 0x40200000-0x4023ffff
> 64bit pref] (PCI address [0x40200000-0x4023ffff])
> [ 172.854231] pci 0000:02:00.0: BAR 0: assigned [mem
> 0x40240000-0x40240fff 64bit pref]
> [ 172.857771] pci 0000:02:00.0: BAR 0: set to [mem 0x40240000-0x40240fff
> 64bit pref] (PCI address [0x40240000-0x40240fff])
> [ 172.861339] pci 0000:02:00.0: BAR 4: assigned [mem
> 0x40241000-0x40241fff 64bit pref]
> [ 172.864997] pci 0000:02:00.0: BAR 4: set to [mem 0x40241000-0x40241fff
> 64bit pref] (PCI address [0x40241000-0x40241fff])
>
>
> 7 - Reset the express card "echo 1>
> /sys/bus/pci/devices/0000\:01\:00.0/reset". But ifconfig still doesn't
> show the interface (wlan0)
> dmesg :
> [ 731.717117] pci 0000:01:00.0: restoring config space at offset 0x1
> (was 0x100400, writing 0x100002)
>
> 8 - Reset my FPGA board "echo 1>
> /sys/bus/pci/devices/0000\:02\:00.0/reset". Still I could not access
> into my FPGA registers.
> logs :
> [root@...alhost ~]# echo 1> /sys/bus/pci/devices/0000\:02\:00.0/reset
> -bash: echo: write error: Invalid argument
> dmesg :
> [ 910.928564] pci 0000:02:00.0: restoring config space at offset 0x1
> (was 0x100400, writing 0x100000)
>
>
> * I have attached to you the requested information.
>
> Many thanks,
> Ghani
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists