* MPC8641D PCI-Express problem
@ 2008-03-25 8:02 Marco Stornelli
2008-03-25 12:55 ` Kumar Gala
0 siblings, 1 reply; 6+ messages in thread
From: Marco Stornelli @ 2008-03-25 8:02 UTC (permalink / raw)
To: LinuxPPC-Embedded
Hi,
do you remember my problem with the pci-express? I have an mpc8641d_hpcn
(rev. 2.0) board connected via pci-express with the Xilinx ML555
evaluation board. I'm using the 2.6.24 kernel. I'm observing this
strange behavior:
1) I turn on the board and I stop the U-boot
2) I load the FPGA microcode
3) I start the system
4) I load the driver module and I read a version register in the FPGA
5) The system crashes with a "machine check exception: transfer error
ack signal"
6) reboot
7) same procedure (without load the FPGA again)
8) now I can read the registers!
If I repeat the procedure again it doesn't work anymore. I think it's a
problem with pci-express controller. Have you got any suggestions?
Thanks.
Marco
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: MPC8641D PCI-Express problem
2008-03-25 8:02 MPC8641D PCI-Express problem Marco Stornelli
@ 2008-03-25 12:55 ` Kumar Gala
2008-03-25 13:03 ` Marco Stornelli
0 siblings, 1 reply; 6+ messages in thread
From: Kumar Gala @ 2008-03-25 12:55 UTC (permalink / raw)
To: Marco Stornelli; +Cc: LinuxPPC-Embedded
On Mar 25, 2008, at 3:02 AM, Marco Stornelli wrote:
> Hi,
>
> do you remember my problem with the pci-express? I have an
> mpc8641d_hpcn (rev. 2.0) board connected via pci-express with the
> Xilinx ML555 evaluation board. I'm using the 2.6.24 kernel. I'm
> observing this strange behavior:
>
> 1) I turn on the board and I stop the U-boot
> 2) I load the FPGA microcode
> 3) I start the system
> 4) I load the driver module and I read a version register in the FPGA
> 5) The system crashes with a "machine check exception: transfer
> error ack signal"
> 6) reboot
> 7) same procedure (without load the FPGA again)
> 8) now I can read the registers!
>
> If I repeat the procedure again it doesn't work anymore. I think
> it's a problem with pci-express controller. Have you got any
> suggestions?
>
> Thanks.
Where are you loading the FPGA microcode (linux, u-boot)? Also, is
the FPGA the only device connected over PCIe?
- k
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: MPC8641D PCI-Express problem
2008-03-25 12:55 ` Kumar Gala
@ 2008-03-25 13:03 ` Marco Stornelli
2008-03-25 21:28 ` I Need to Reset a PPC405EP PCI Bridge From a Kernel Driver Without Reboot Darcy Watkins
2008-03-27 12:52 ` MPC8641D PCI-Express problem Kumar Gala
0 siblings, 2 replies; 6+ messages in thread
From: Marco Stornelli @ 2008-03-25 13:03 UTC (permalink / raw)
To: Kumar Gala; +Cc: LinuxPPC-Embedded
Kumar Gala ha scritto:
>
> On Mar 25, 2008, at 3:02 AM, Marco Stornelli wrote:
>> Hi,
>>
>> do you remember my problem with the pci-express? I have an
>> mpc8641d_hpcn (rev. 2.0) board connected via pci-express with the
>> Xilinx ML555 evaluation board. I'm using the 2.6.24 kernel. I'm
>> observing this strange behavior:
>>
>> 1) I turn on the board and I stop the U-boot
>> 2) I load the FPGA microcode
>> 3) I start the system
>> 4) I load the driver module and I read a version register in the FPGA
>> 5) The system crashes with a "machine check exception: transfer error
>> ack signal"
>> 6) reboot
>> 7) same procedure (without load the FPGA again)
>> 8) now I can read the registers!
>>
>> If I repeat the procedure again it doesn't work anymore. I think it's
>> a problem with pci-express controller. Have you got any suggestions?
>>
>> Thanks.
>
> Where are you loading the FPGA microcode (linux, u-boot)? Also, is the
> FPGA the only device connected over PCIe?
>
> - k
>
I load the FPGA with JTAG and with a Xilinx program without a specific
linux driver or u-boot. Yes, it is the only device connected over PCIe.
\Marco
^ permalink raw reply [flat|nested] 6+ messages in thread
* I Need to Reset a PPC405EP PCI Bridge From a Kernel Driver Without Reboot
2008-03-25 13:03 ` Marco Stornelli
@ 2008-03-25 21:28 ` Darcy Watkins
2008-03-27 12:52 ` MPC8641D PCI-Express problem Kumar Gala
1 sibling, 0 replies; 6+ messages in thread
From: Darcy Watkins @ 2008-03-25 21:28 UTC (permalink / raw)
To: LinuxPPC-Embedded
Hello,
I have a peculiar problem dealing with an mPCI wireless network card on
an AMCC405EP based system (spin-off of a Taihu). The task is to load
the FPGA firmware in the card, reset the PCI card (to reset an ASIC, get
it to reload from EEPROM but without resetting the PowerPC and of course
without clearing the firmware in the FPGA), then to rescan (using a fake
hotplug scheme) to find the PCI device, then finally upload a secondary
firmware file to a flash device on the card.
I need this for two reasons. One is to solve a chicken-and-egg type
problem to recover a failed radio card after a botched up upgrade. The
other is to avoid reboots (and wasted time per radio card) as they are
programmed and calibrated in a jig on a manufacturing production line.
I tried setting and then clearing the CPC0_SRR (software reset register)
bit to reset the PCI bridge. I think that this wipes out the PCI bus
completely. Since PCI is initialized by U-Boot, the kernel doesn't
appear to know what to do. I get a data machine check oops at the point
where the device drivers load up and start.
I tried simply saving the 16 words of PCIL0 register content before
toggling the SRR bit, and then restoring them afterwards. No
difference. Next I notice a whole bank of configuration registers and
am wondering just what needs to explicitly be preserved.
Before I go into saving and restoring more registers, or cloning the
4xx_pci.c code from u-Boot into my fake hotplug rescan driver to
reinitialize the PCI subsystem, does anyone have suggestions?
Regards,
Darcy
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: MPC8641D PCI-Express problem
2008-03-25 13:03 ` Marco Stornelli
2008-03-25 21:28 ` I Need to Reset a PPC405EP PCI Bridge From a Kernel Driver Without Reboot Darcy Watkins
@ 2008-03-27 12:52 ` Kumar Gala
2008-03-28 15:15 ` marco.stornelli
1 sibling, 1 reply; 6+ messages in thread
From: Kumar Gala @ 2008-03-27 12:52 UTC (permalink / raw)
To: Marco Stornelli; +Cc: LinuxPPC-Embedded
On Mar 25, 2008, at 8:03 AM, Marco Stornelli wrote:
> Kumar Gala ha scritto:
>> On Mar 25, 2008, at 3:02 AM, Marco Stornelli wrote:
>>> Hi,
>>>
>>> do you remember my problem with the pci-express? I have an
>>> mpc8641d_hpcn (rev. 2.0) board connected via pci-express with the
>>> Xilinx ML555 evaluation board. I'm using the 2.6.24 kernel. I'm
>>> observing this strange behavior:
>>>
>>> 1) I turn on the board and I stop the U-boot
>>> 2) I load the FPGA microcode
>>> 3) I start the system
>>> 4) I load the driver module and I read a version register in the
>>> FPGA
>>> 5) The system crashes with a "machine check exception: transfer
>>> error ack signal"
>>> 6) reboot
>>> 7) same procedure (without load the FPGA again)
>>> 8) now I can read the registers!
>>>
>>> If I repeat the procedure again it doesn't work anymore. I think
>>> it's a problem with pci-express controller. Have you got any
>>> suggestions?
>>>
>>> Thanks.
>> Where are you loading the FPGA microcode (linux, u-boot)? Also, is
>> the FPGA the only device connected over PCIe?
>> - k
> I load the FPGA with JTAG and with a Xilinx program without a
> specific linux driver or u-boot. Yes, it is the only device
> connected over PCIe.
The issue may be related to the PCIe link training. Are you able to
access the FPGA in u-boot? Can you try reseting the PCIe controller
after you've loaded up the FPGA (see u-boot code in drivers/pci/
fsl_pci_init.c and look for CONFIG_FSL_PCIE_RESET)
- k
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: MPC8641D PCI-Express problem
2008-03-27 12:52 ` MPC8641D PCI-Express problem Kumar Gala
@ 2008-03-28 15:15 ` marco.stornelli
0 siblings, 0 replies; 6+ messages in thread
From: marco.stornelli @ 2008-03-28 15:15 UTC (permalink / raw)
To: Kumar Gala; +Cc: LinuxPPC-Embedded
>
> On Mar 25, 2008, at 8:03 AM, Marco Stornelli wrote:
>> Kumar Gala ha scritto:
>>> On Mar 25, 2008, at 3:02 AM, Marco Stornelli wrote:
>>>> Hi,
>>>>
>>>> do you remember my problem with the pci-express? I have an
>>>> mpc8641d_hpcn (rev. 2.0) board connected via pci-express with the
>>>> Xilinx ML555 evaluation board. I'm using the 2.6.24 kernel. I'm
>>>> observing this strange behavior:
>>>>
>>>> 1) I turn on the board and I stop the U-boot
>>>> 2) I load the FPGA microcode
>>>> 3) I start the system
>>>> 4) I load the driver module and I read a version register in the
>>>> FPGA
>>>> 5) The system crashes with a "machine check exception: transfer
>>>> error ack signal"
>>>> 6) reboot
>>>> 7) same procedure (without load the FPGA again)
>>>> 8) now I can read the registers!
>>>>
>>>> If I repeat the procedure again it doesn't work anymore. I think
>>>> it's a problem with pci-express controller. Have you got any
>>>> suggestions?
>>>>
>>>> Thanks.
>>> Where are you loading the FPGA microcode (linux, u-boot)? Also, is
>>> the FPGA the only device connected over PCIe?
>>> - k
>> I load the FPGA with JTAG and with a Xilinx program without a
>> specific linux driver or u-boot. Yes, it is the only device
>> connected over PCIe.
>
> The issue may be related to the PCIe link training. Are you able to
> access the FPGA in u-boot? Can you try reseting the PCIe controller
> after you've loaded up the FPGA (see u-boot code in drivers/pci/
> fsl_pci_init.c and look for CONFIG_FSL_PCIE_RESET)
>
> - k
>
Ok I can try but I'm using the U-Boot 1.3.0 provided by Freescale with the
board, so I have to change the firmware, updating the U-Boot to the
version 1.3.2 to use CONFIG_FSL_PCIE_RESET. However, I've had the same
idea, but I check (with a warning) this case in the kernel function
fsl_check_pcie_link() (where the kernel check the value of LTSSM) but I've
never seen the warning during the start-up.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2008-03-28 15:16 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-03-25 8:02 MPC8641D PCI-Express problem Marco Stornelli
2008-03-25 12:55 ` Kumar Gala
2008-03-25 13:03 ` Marco Stornelli
2008-03-25 21:28 ` I Need to Reset a PPC405EP PCI Bridge From a Kernel Driver Without Reboot Darcy Watkins
2008-03-27 12:52 ` MPC8641D PCI-Express problem Kumar Gala
2008-03-28 15:15 ` marco.stornelli
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.