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.

PROCESSOR-SDK-J721S2: CSIRX Error event callback

Part Number: PROCESSOR-SDK-J721S2

Tool/software:

Following version used for J721S2 platform:

PSDK - 10.01

QNX710

Query:

Application registers CSIRX events using IOCTL_CSIRX_REGISTER_EVENT. To handle error events from driver.

We understand this is async call to application with error information in terms of error masks.

We would like to clarify if this call back occurs for any change in error mask?

like any new addition of error, removal of errors or complete reset of errors?

At safety application side we need to understand if we can use this same call back to set and reset errors.

If this call back does not occur for reset/clear of error how application can reset it?

  • Hi Parth,

    Yes, if you register this callback for the set of error events, the same would be called when any of one or more error events occurs in CSIRX. 

    Regards,

    Brijesh

  • Hello Brijesh,

    Thanks for confirmation. 

    Can you please confirm if error call back will be received when all or any error is reset/clear? 

    Since Application needs to know when to stop reporting or take action on active error.

    Example: 4bit error mask received with callback

    First Error detected  -> 0001

    New Error Identified -> 0011

    1 Error removed -> 0010

    Final Error removed -> 0000

    Do we get a error callback as per above sequence?  If not then what would be trigger point for application to clear this error? 

  • Hi Parth,

    Whenever error is received and is detected by CSIRX, it will be reported by this callback. Now if there are multiple errors at this time, single callback will be called with error mask, indicating multiple errors. 

    Regards,

    Brijesh 

  • Hi Brijesh,

    Does it mean there will be no indication when error is removed? How application can remove this error? Can Application consider Frame callback to reset this error?

  • Hi Parth,

    What do you mean by error is removed? Error once reported, unless and until, it is cleared, the status will show it and then interrupt would be generated.. 

    Regards,

    Brijesh

  • Hi Brijesh, 

    To simplify the clarifications, we have two questions.

    1) After the interrupt status is cleared, if I don't get the errorCallback() and get the frameCallback() does that mean all the errors can be reset. 

    2) Also If I don't clear the interrupt status, provided if the error is still persistent would I get frameCallback() or errorCallback(). 

    Thanks,

    Ramakrishnan V

  • Hi Ramakrishnan ,

    1) After the interrupt status is cleared, if I don't get the errorCallback() and get the frameCallback() does that mean all the errors can be reset. 

    Not sure what you mean by reset, but yes, it means that there are no further errors.

    2) Also If I don't clear the interrupt status, provided if the error is still persistent would I get frameCallback() or errorCallback(). 

    Well, this will be taken care by driver. 

    Regards,

    Brijesh

  • Hi Brijesh, 

    Thanks for the quick response. 

    Point 1) is clear, but regarding point 2) wanted to know what would be behavior of the CSIRX driver, whether it would give a frameCallback() or errorCallback() in case of same error persisted but without clearing interrupt status.

  • Hi Ramakrishnan,

    I guess you are using PDK driver for getting this callback, so in this case, interrupt status will be cleared by the driver, so if there are further errors, error callback would be called, but if there is no further error, framecallback would be called. 

    framecallback can still be called even in case of certain errors, like CRC. In case CRC error, error would be reported, but CSRIX will continue to capture the data and so framecallback would still be called.  

    Regards,

    Brijesh

  • Hi Brijesh, 

    In the CRC case, I didn't clearly understand what you meant. whether on that cycle 'n' where the error was reported, it calls errorCallback() and following that it calls the frameCallback() on 'n+1' cycle. Also if that is the case how would I know if the CRC is still persistent or it had been cleared by the driver because I have the Csirx_EventStatus only on a errorCallback(). Can I get the Csirx_EventStatus status in frameCallback also?

  • Hi,

    What do you mean by cycle here? When CRC error comes within a frame, this error callback will be immediately called, but this frame will be still captured in the memory, so there will still be frameCallback from the driver.. 

    From the status of this error perspective, this error will be immediately cleared in the register by the driver. No EventStatus will not be available in the frameCallback.

    Regards,

    Brijesh 

  • Hi Brijesh, 

    Thanks for your response. Can we have a call to clarify it better, for example along with CRC error do you have other errors where both errorCallback and frameCallback can come together? Basically a small table for the list of CSIRX errors where errorCallback can only come or errorCallback and frameCallback can come together.

  • Hi Ramakrishnan,

    CSIRX errors (ECC, CRC, Data ID errors etc.) are typically for a packet, so if there is a issue in just one packet and subsequent packets are correct, we will get frameCallback.. 

    Regards,

    Brijesh