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.

Interpreting the SRIO Doorbell message bits

Hi,

My Hardware design has a TI DSP C6674 processor, which is currently working with SRIO NWRITE transactions and SRIO DOORBELL.

Currently SRIO DOORBELL handler is running when door bell is issued from other processor. My handler gives an UART print when doorbell comes (temporary for debug)

As its mentioned in data sheet that DOOR BELL message for dsps supports only 6bits out of 16bits.

My query is how can I fetch doorbell message bits from my interrupt handler.

Awaiting for your inputs.

Thanks

Mani Kumar

  • Hi Mani,

    Figure 2-22 Examples of DOORBELL_INFO Designations
    in the SRIO User's Guide explains how this is mapped.

    Kind regards,
    one and zero
  • Hi,

    I had gone through that and I understood about it.

    My query is how to read that data from ISR Handler??

    My ISR Handler :

    static void myDioTxCompletionIsr1 (UArg argument)
    {
    char str[200];
    /* Pass the control to the driver DIO Tx Completion ISR handler */
    //Srio_dioTxCompletionIsr ((Srio_DrvHandle)argument, hSrioCSL);

    sprintf(str,"\r\n\nReceived Doorbell... , data : 0x%X\r\n\n",
    argument);
    dcsp_dsp_cli_print(str);

    /* Wake up the pending task */
    srioLsuIsrServiced = 1;

    /* Debug: Increment the ISR count */
    srioDbgDioIsrCnt++;

    /* Debug: Clear sRIO Doorbell interrupt */
    *(UInt32 *)(0x02900188) = 0xFFFFFFFF;

    return;
    }

    As shown in Figure 2-22, I'm sending doorbell info as : 0x9 from other processor, but ISR argument gives a value : 0x820D80.

    So, how to get that value from ISR as 0x9 is my doubt.

    Thanks
    Mani Kumar
  • Hi Mani,

    you've got 4 registers each having 16 flags. So that's 64 bits equals 2^6 info bits.
    So if you have the flag ICS9 in the register DOORBELL0_ICSR is set, this means you have sent the Doorbell message with infofield 0x9.

    Kind regards,
    one and zero