Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
18 years ago

PCI Express: configuration

Hi all,

I'm working on the transaction layer of my custom PCI Express IP. The problem is that when I answer to the Config Read T0 request from de root complex, with a Completion W/ Data containing the Vendor ID and Device ID, the root complex send me back an ACK, and nothing then. The computer doesn't boot and I'm completely lost with that. I checked with some samples provided by Catalyst Enterprises, my completion w/ data is correct and the vendor and device ID too..

Could somebody help me with that or some configuration examples like TLPs, etc ?

Thank you very much.

2 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Are all of the other fields of the completion correct?

    • Requester ID, Tag, TC, and Attribute fields should be copied as is from the Type 0 Config Request.

    • Completer ID should be copied from the Request Bus, Device, and Function number fields of the Type 0 Config Request. (These values need to be saved for all future completions.)

    • EP, BCM, CS, and TD fields should be zero (In most cases).

    • Length, Byte Count, and Lower address need to be set appropriately based on the original request.

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Hi,

    Thanks for your answer.

    For a Configuration Read, TC and Attr should be zero.

    I use the Requester ID I received: 0x0000, so the Completer ID is 0x0100 and I put it in the completion. EP, BCM, CS and TD are 0. The length is 1, the Byte Count for IO and Configuration Completions is always 4. Lower address is 0. So I really don't understand the problem. Especially, I checked with the Catalyst SPX software: I compared my completions and there is no reason apparently. Anyway I'll put the TLP I receive and the one I send:

    From the chipset:

    Start-Sequence N

    FB -0001

    FMT/Type-Length-Requester ID-Tag/BE-Bus/Dev/Fct-Reg Number - CRC

    0400 -0001 -0000 -0503 -0100 -0000 -780381B7

    End

    FD

    I reply with:

    Start-Sequence N

    FB -0000

    FMT/Type-Length-Completer ID-BCM/BCOunt-Requester ID- Tag Lower Address

    4A00 -0001 -0100 -0004 -0000 -0500

    - Data - Crc

    -A2150300 - .....

    End

    FD

    The Chipset ACK my Completion but no further actions are processed.