This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

c6678 SRIO register information

I'm reading 

"KeyStone Architecture

Literature Number: SPRUGW1B
November 2012
Serial Rapid IO (SRIO)"

There is something i don't understand about the registers of that subsistem

In LSU_REG4 the field SrcID_MAP Defines which sourceID register use for the transaction and the document says that DeviceID Register 1 through DeviceID Register 15 inherit their values from the Base Routing Registers (TLM port n BRR pattern & match registers)

I don't understand how TLM Port(n) Base Routing Register 0 Pattern & Match Register (TLM_SP(n)_BRR_0_PATTERN_MATCH) are matched to the deviceid registers

is:

TLM_SP0_BRR_0_PATTERN_MATCH = RIO_DEVICEID_REG0 register

TLM_SP0_BRR_1_PATTERN_MATCH = RIO_DEVICEID_REG1 register

TLM_SP0_BRR_2_PATTERN_MATCH = RIO_DEVICEID_REG2 register

TLM_SP0_BRR_3_PATTERN_MATCH = RIO_DEVICEID_REG3 register

TLM_SP1_BRR_0_PATTERN_MATCH = RIO_DEVICEID_REG4 register

... and so on or it's different?

And are these registers used both for tx and rx operations?

And how it's used The base device ID CSR (BASE_ID) register? It's used in tx/rx or it's bypassed by the TLM Port(n) Base Routing Register Pattern & Match Registers?

Thanks

Gabriele

  • Hello Gabriele

     So you can either be in promiscuous mode, i.e. accepting all incoming DESTIDs, or you can be in a mode that only allows the 16 local IDs to be accepted.  16 = BASE_ID + 15 BRR registers.

     For more information on TLM Port(n) Base Routing Registers, take a look at this E2E:

    http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/128207.aspx

     These registers are used for both tx and rx.  I did not understand that last question. 

    Elush

  • Ok, but i still don't understand how SrcID_MAP can select the deviceID to use from TLM Port(n) Base Routing Register  Pattern & Match Register.

    For example datasheet says that 

    0b0000 — Uses contents of RIO_DEVICEID_REG0 register

    0b0001 — Uses contents of RIO_DEVICEID_REG1 register

    and so on...

    So, what is the corresponding TLM Port(n) Base Routing Register  Pattern & Match Register that will be used?

    A code of 0b0000 correspond to TLM_SP0_BRR_0_PATTERN_MATCH register?

  • Gabriele


    TLM_SP(n)_BRR_(x)_PATTERN_MATCH works with n being the core and x being the port. So TLM_SP0_BRR_0_PATTERN_MATCH is for packets from/to Core0 Port 0.


    Elush

  • Ok, but so how does SrcID_MAP works with it?


    If i select a value of 0b0000 Datasheet says that he uses contents of RIO_DEVICEID_REG0 register and that this inherit their values from the Base Routing Registers but how exactly?

  • Gabriele

    Your initial assumption was correct when you said, 

    TLM_SP0_BRR_0_PATTERN_MATCH = RIO_DEVICEID_REG0 register

    TLM_SP0_BRR_1_PATTERN_MATCH = RIO_DEVICEID_REG1 register

    TLM_SP0_BRR_2_PATTERN_MATCH = RIO_DEVICEID_REG2 register

    TLM_SP0_BRR_3_PATTERN_MATCH = RIO_DEVICEID_REG3 register

    TLM_SP1_BRR_0_PATTERN_MATCH = RIO_DEVICEID_REG4 register

    The two different variables needs to be addressed in the next SRIO User Guide.


    The purpose of the BRR's is for accepting packets. There are modes for explicit checking of an incoming packet's DESTID versus the BRR contents.

    The RIO_DEVICEID_REGn (n = 1 to 15) are inputs to the logical layer and not part of the MMR space. They inherit the values found in the Base Routing Registers.

    Elush


  • Ok, thanks :)

    I shuld have understood how it works for tx operation.

    And so if I'm not mistaken during unicast receive operations are checked device id registers RIO_DEVICEID_REGn (for n = 1 to n = 15),  where RIO_DEVICEID_REG1 = BASE_ID

    ("The device’s main baseID (0x1060) is now automatically copied into the RIO_DEVICEID_REG1 by hardware, and does not require a separate write by software." 2.3.12)

    That means that for reception of messages are used registers from TLM_SP0_BRR_2_PATTERN_MATCH = RIO_DEVICEID_REG2 to

    TLM_SP3_BRR_3_PATTERN_MATCH = RIO_DEVICEID_REG15, right?

  • Gabriele

    You are correct!

    Elush

  • Perfect! Thanks for your support