[U-Boot] 460GT PCIe configuration

vb vb at vsbe.com
Tue Mar 10 23:13:09 CET 2009


On Tue, Mar 10, 2009 at 2:23 PM, Leon Woestenberg
<leon.woestenberg at gmail.com> wrote:
> Hello Vadim, Stefan,
>

Hi Leon, thank you for your interest, the problem I was dealing with
has been long fixed.

What happened was that in the Read transaction response the FPGA was
setting one of the header attributes to a value different from what
the transaction originator (460GT root complex) requested. The
analyzer was not even highlighting that as a potential issue (even
though it was showing the discrepancy between request and response
headers).

It turned out that the 460GT PCIe core was much more sensitive (some
would say closer to the spec and thus more correct) than some other
CPUs, and was just ignoring the PCIe responses with incorrect header
contents, eventually generating PCIe timeouts which caused and were
reported as PLB timeouts (because this is where the CPU was waiting).

Very poor error reporting mechanism, but we have to do with what we
have to do :-)

cheers,
/vb



> On Wed, Jan 14, 2009 at 5:42 PM, vb <vb at vsbe.com> wrote:
>> On Wed, Jan 14, 2009 at 7:03 AM, Stefan Roese <sr at denx.de> wrote:
>>> On Tuesday 13 January 2009, vb wrote:
>>>
>>>> I have several different targets with different PCIe components, but
>>>> all using the same base CPU subsystem design, and on some of them PCIe
>>>> components misbehave, namely, PCIe memory read transactions fail with
>>>> a machine check after a timeout, even though the PCIe side of things
>>>> is fine (when looking with a protocol analyzer).
>>>
>> on our own design). The one which fails is based on the very similar
>> 460GT based platform, but uses an Altera FPGA with a standard Altera
>> PCIe interface implementation.
>>
>> What happens is that config space transactions (both read and write)
>> and memory writes work fine, but attempts to read Altera's memory
>> mapped space causes a machine check with very vague error reporting.
>>
>
> Vadim, I am currently designing a Altera FPGA PCIe application and
> testing on the AMCC460EX as one of the targets, so I may provide some
> hints on where to look. I debugged *without* protocol analyser and
> also hit some emachine check exceptions when the FPGA logic was still
> misbehaving.
>
> Let me just throw some hints and references your way, hope they might be useful:
>
> Do you use a reference design?
> Does the FPGA application respond to the reads?
> Do you map the BARs correctly?
> Do you use 32-bit read/writes, 32-bit alignment?
>
> In the linux-next GIT tree, my driver for the Altera PCIe Chaining DMA
> design is included:
> drivers/staging/altpciechdma/altpciechdma.c
>
> Best regards,
> --
> Leon
>


More information about the U-Boot mailing list