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.

Why the dsplink examples on dm6467 evm run failed SOMETIMES?

hi,

    I use the arago project to build and run dsplink examples on dm6467 evm. when I run the script ti-dsplink-examples-run.sh, it may fail sometimes on message multi sample. the following output is the successful message and the failed message.

 

 

root@dm6467-evm:/usr/share/ti/ti-dsplink-examples# ./ti-dsplink-examples-run.sh
Running Loop Sample App
=============== Sample Application : LOOP ==========
==== Executing sample for DSP processor Id 0 ====
Entered LOOP_Create ()
Leaving LOOP_Create ()
Entered LOOP_Execute ()
Transferred 1000 buffers
Transferred 2000 buffers
Leaving LOOP_Execute ()
Entered LOOP_Delete ()
Leaving LOOP_Delete ()
====================================================
Running Message Sample App
========== Sample Application : MESSAGE ==========
Entered MESSAGE_Create ()
Leaving MESSAGE_Create ()
Entered MESSAGE_Execute ()
Transferring 10000 iterations took 2 seconds 409958 microseconds.
RoundTrip Time for 1 message is 240 microseconds.
Leaving MESSAGE_Execute ()
Entered MESSAGE_Delete ()
Leaving MESSAGE_Delete ()
====================================================
Running Message Multi Sample App
======= Sample Application : MESSAGEMULTI App [1] =======
App [ 1]: Entered MESSAGEMULTI_Create ()
App [ 1]: gppMsgqName [GPPMSGQ1]
App [ 1]: dspMsgqName [DSPMSGQ1]
App [ 1]: PROC_setup status [0x8000]
App [ 1]: PROC_attach status [0x8000]
App [ 1]: POOL_open MQT_POOL_ID status [0x8000]
App [ 1]: MSGQ_open status [0x8000]
App [ 1]: PROC_load status [0x8000]
App [ 1]: PROC_start status [0x8000]
App [ 1]: POOL_open App Pool status [0x8000]
App [ 1]: MSGQ_transportOpen status [0x8000]
App [ 1]: NOTIFY_register status [0x8000]
App [ 1]: NOTIFY_notify status [0x8000]
App [ 1]: Leaving MESSAGEMULTI_Create ()
App [ 1]: Entered MESSAGEMULTI_Execute ()
App [ 1]: Transferred 100 messages
App [ 1]: Leaving MESSAGEMULTI_Execute ()
App [ 1]: Entered MESSAGEMULTI_Delete ()
App [ 1]: MSGQ_release status [0x8000]
App [ 1]: MSGQ_transportClose status [0x800d]
App [ 1]: NOTIFY_unregister status [0x8000]
App [ 1]: PROC_stop status [0x8000]
App [ 1]: MSGQ_close status [0x8000]
App [ 1]: POOL_close App Pool status [0x800d]
App [ 1]: POOL_close MQT_POOL_ID status [0x800d]
App [ 1]: PROC_detach status [0x8009]
App [ 1]: PROC_destroy status [0x8008]
App [ 1]: Leaving MESSAGEMULTI_Delete ()
================================================
Running MultiProcessor List Sample App
========== Sample Application : MP_LIST ==========
Entered MP_LIST_Create ()
Leaving MP_LIST_Create ()
Entered MP_LIST_Execute ()
Verified 100 list based transfer
Leaving MP_LIST_Execute ()
Entered MP_LIST_Delete ()
Leaving MP_LIST_Delete ()
====================================================
Running MultiProcessorCriticalSection Transfer Sample App
========== Sample Application : MPCSXFER ==========
Entered MPCSXFER_Create ()
Leaving MPCSXFER_Create ()
Entered MPCSXFER_Execute ()
GPP->DSP: Transferred 100 buffers
DSP->GPP: Transferred 100 buffers
GPP->DSP: Transferred 200 buffers
DSP->GPP: Transferred 200 buffers
GPP->DSP: Transferred 300 buffers
DSP->GPP: Transferred 300 buffers
GPP->DSP: Transferred 400 buffers
DSP->GPP: Transferred 400 buffers
GPP->DSP: Transferred 500 buffers
DSP->GPP: Transferred 500 buffers
GPP->DSP: Transferred 600 buffers
DSP->GPP: Transferred 600 buffers
GPP->DSP: Transferred 700 buffers
DSP->GPP: Transferred 700 buffers
GPP->DSP: Transferred 800 buffers
DSP->GPP: Transferred 800 buffers
GPP->DSP: Transferred 900 buffers
DSP->GPP: Transferred 900 buffers
GPP->DSP: Transferred 1000 buffers
DSP->GPP: Transferred 1000 buffers
Leaving MPCSXFER_Execute ()
Entered MPCSXFER_Delete ()
Leaving MPCSXFER_Delete ()
====================================================
Running Ringio Sample App
========== Sample Application : RING_IO ==========
Bytes to transfer :128
Data buffer size  :2048
Entered RING_IO_Create ()
Leaving RING_IO_Create ()
Entered RING_IO_ReaderClient ()
Entered RING_IO_WriterClient ()
GPP-->DSP:Sent Data Transfer Start Attribute
GPP-->DSP:Sent Data Transfer Start Notification
GPP-->DSP:Total Bytes Transmitted  128
RingIO_setAttribute succeeded to set the  RINGIO_DATA_END. Status = [0x8100]
GPP-->DSP:Sent Data Transfer End Attribute
GPP-->DSP:Sent Data Transfer End Notification
Leaving RING_IO_WriterClient ()
GPP<--DSP:Received Data TransferStart Attribute
GPP<--DSP:Received Data TransferEnd Attribute
GPP<--DSP:Bytes Received 128
GPP<--DSP:Received Data Transfer End Notification
Leaving RING_IO_ReaderClient ()
Entered RING_IO_Delete ()
Leaving RING_IO_Delete ()
====================================================
Running Scale Sample App
=============== Sample Application : SCALE ==========
Entered SCALE_Create ()
Leaving SCALE_Create ()
Entered SCALE_Execute ()
Changed the scale factor to: 2
Changed the scale factor to: 3
Changed the scale factor to: 4
Changed the scale factor to: 5
Changed the scale factor to: 6
Changed the scale factor to: 7
Changed the scale factor to: 8
Changed the scale factor to: 9
Changed the scale factor to: 10
Transferred 100 buffers
Changed the scale factor to: 11
Changed the scale factor to: 12
Changed the scale factor to: 13
Changed the scale factor to: 14
Changed the scale factor to: 15
Changed the scale factor to: 16
Changed the scale factor to: 17
Changed the scale factor to: 18
Changed the scale factor to: 19
Changed the scale factor to: 20
Transferred 200 buffers
Changed the scale factor to: 21
Changed the scale factor to: 22
Changed the scale factor to: 23
Changed the scale factor to: 24
Changed the scale factor to: 25
Changed the scale factor to: 26
Changed the scale factor to: 27
Changed the scale factor to: 28
Changed the scale factor to: 29
Changed the scale factor to: 30
Transferred 300 buffers
Changed the scale factor to: 31
Changed the scale factor to: 32
Changed the scale factor to: 33
Changed the scale factor to: 34
Changed the scale factor to: 35
Changed the scale factor to: 36
Changed the scale factor to: 37
Changed the scale factor to: 38
Changed the scale factor to: 39
Changed the scale factor to: 40
Transferred 400 buffers
Changed the scale factor to: 41
Changed the scale factor to: 42
Changed the scale factor to: 43
Changed the scale factor to: 44
Changed the scale factor to: 45
Changed the scale factor to: 46
Changed the scale factor to: 47
Changed the scale factor to: 48
Changed the scale factor to: 49
Changed the scale factor to: 50
Transferred 500 buffers
Leaving SCALE_Execute ()
Entered SCALE_Delete ()
Leaving SCALE_Delete ()
====================================================
root@dm6467-evm:/usr/share/ti/ti-dsplink-examples# ./ti-dsplink-examples-run.sh
Running Loop Sample App
=============== Sample Application : LOOP ==========
==== Executing sample for DSP processor Id 0 ====
Entered LOOP_Create ()
Leaving LOOP_Create ()
Entered LOOP_Execute ()
Transferred 1000 buffers
Transferred 2000 buffers
Leaving LOOP_Execute ()
Entered LOOP_Delete ()
Leaving LOOP_Delete ()
====================================================
Running Message Sample App
========== Sample Application : MESSAGE ==========
Entered MESSAGE_Create ()
Leaving MESSAGE_Create ()
Entered MESSAGE_Execute ()
Transferring 10000 iterations took 2 seconds 469828 microseconds.
RoundTrip Time for 1 message is 246 microseconds.
Leaving MESSAGE_Execute ()
Entered MESSAGE_Delete ()
Leaving MESSAGE_Delete ()
====================================================
Running Message Multi Sample App
======= Sample Application : MESSAGEMULTI App [1] =======
App [ 1]: Entered MESSAGEMULTI_Create ()
App [ 1]: gppMsgqName [GPPMSGQ1]
App [ 1]: dspMsgqName [DSPMSGQ1]
App [ 1]: PROC_setup status [0x8000]
App [ 1]: PROC_attach status [0x8000]
App [ 1]: POOL_open MQT_POOL_ID status [0x8000]
App [ 1]: MSGQ_open status [0x8000]
App [ 1]: PROC_load status [0x8000]
App [ 1]: PROC_start status [0x80008052]
App [ 1]: PROC_start () failed. status [0x80008052]
App [ 1]: Leaving MESSAGEMULTI_Create ()
App [ 1]: Entered MESSAGEMULTI_Delete ()
App [ 1]: MSGQ_release status [0x8000800b]
App [ 1]: MSGQ_release () failed. status [0x8000800b]
App [ 1]: MSGQ_transportClose status [0x80008000]
App [ 1]: NOTIFY_unregister status [0x8000802d]
App [ 1]: PROC_stop status [0x8000800b]
App [ 1]: MSGQ_close status [0x8000]
App [ 1]: POOL_close App Pool status [0x80008000]
App [ 1]: POOL_close MQT_POOL_ID status [0x800d]
App [ 1]: PROC_detach status [0x8009]
App [ 1]: PROC_destroy status [0x8008]
App [ 1]: Leaving MESSAGEMULTI_Delete ()
================================================
Running MultiProcessor List Sample App
========== Sample Application : MP_LIST ==========
Entered MP_LIST_Create ()
Leaving MP_LIST_Create ()
Entered MP_LIST_Execute ()
Verified 100 list based transfer
Leaving MP_LIST_Execute ()
Entered MP_LIST_Delete ()
Leaving MP_LIST_Delete ()
====================================================
Running MultiProcessorCriticalSection Transfer Sample App
========== Sample Application : MPCSXFER ==========
Entered MPCSXFER_Create ()
Leaving MPCSXFER_Create ()
Entered MPCSXFER_Execute ()
GPP->DSP: Transferred 100 buffers
DSP->GPP: Transferred 100 buffers
GPP->DSP: Transferred 200 buffers
DSP->GPP: Transferred 200 buffers
GPP->DSP: Transferred 300 buffers
DSP->GPP: Transferred 300 buffers
GPP->DSP: Transferred 400 buffers
DSP->GPP: Transferred 400 buffers
GPP->DSP: Transferred 500 buffers
DSP->GPP: Transferred 500 buffers
GPP->DSP: Transferred 600 buffers
DSP->GPP: Transferred 600 buffers
GPP->DSP: Transferred 700 buffers
DSP->GPP: Transferred 700 buffers
GPP->DSP: Transferred 800 buffers
DSP->GPP: Transferred 800 buffers
GPP->DSP: Transferred 900 buffers
DSP->GPP: Transferred 900 buffers
GPP->DSP: Transferred 1000 buffers
DSP->GPP: Transferred 1000 buffers
Leaving MPCSXFER_Execute ()
Entered MPCSXFER_Delete ()
Leaving MPCSXFER_Delete ()
====================================================
Running Ringio Sample App
========== Sample Application : RING_IO ==========
Bytes to transfer :128
Data buffer size  :2048
Entered RING_IO_Create ()
Leaving RING_IO_Create ()
Entered RING_IO_ReaderClient ()
Entered RING_IO_WriterClient ()
GPP-->DSP:Sent Data Transfer Start Attribute
GPP-->DSP:Sent Data Transfer Start Notification
GPP-->DSP:Total Bytes Transmitted  128
RingIO_setAttribute succeeded to set the  RINGIO_DATA_END. Status = [0x8100]
GPP-->DSP:Sent Data Transfer End Attribute
GPP-->DSP:Sent Data Transfer End Notification
Leaving RING_IO_WriterClient ()
GPP<--DSP:Received Data TransferStart Attribute
GPP<--DSP:Received Data TransferEnd Attribute
GPP<--DSP:Bytes Received 128
GPP<--DSP:Received Data Transfer End Notification
Leaving RING_IO_ReaderClient ()
Entered RING_IO_Delete ()
Leaving RING_IO_Delete ()
====================================================
Running Scale Sample App
=============== Sample Application : SCALE ==========
Entered SCALE_Create ()
Leaving SCALE_Create ()
Entered SCALE_Execute ()
Changed the scale factor to: 2
Changed the scale factor to: 3
Changed the scale factor to: 4
Changed the scale factor to: 5
Changed the scale factor to: 6
Changed the scale factor to: 7
Changed the scale factor to: 8
Changed the scale factor to: 9
Changed the scale factor to: 10
Transferred 100 buffers
Changed the scale factor to: 11
Changed the scale factor to: 12
Changed the scale factor to: 13
Changed the scale factor to: 14
Changed the scale factor to: 15
Changed the scale factor to: 16
Changed the scale factor to: 17
Changed the scale factor to: 18
Changed the scale factor to: 19
Changed the scale factor to: 20
Transferred 200 buffers
Changed the scale factor to: 21
Changed the scale factor to: 22
Changed the scale factor to: 23
Changed the scale factor to: 24
Changed the scale factor to: 25
Changed the scale factor to: 26
Changed the scale factor to: 27
Changed the scale factor to: 28
Changed the scale factor to: 29
Changed the scale factor to: 30
Transferred 300 buffers
Changed the scale factor to: 31
Changed the scale factor to: 32
Changed the scale factor to: 33
Changed the scale factor to: 34
Changed the scale factor to: 35
Changed the scale factor to: 36
Changed the scale factor to: 37
Changed the scale factor to: 38
Changed the scale factor to: 39
Changed the scale factor to: 40
Transferred 400 buffers
Changed the scale factor to: 41
Changed the scale factor to: 42
Changed the scale factor to: 43
Changed the scale factor to: 44
Changed the scale factor to: 45
Changed the scale factor to: 46
Changed the scale factor to: 47
Changed the scale factor to: 48
Changed the scale factor to: 49
Changed the scale factor to: 50
Transferred 500 buffers
Leaving SCALE_Execute ()
Entered SCALE_Delete ()
Leaving SCALE_Delete ()
====================================================

 

and when failed, the kernel debug message is :

 

DSP-side configuration mismatch/failure
0              -> success
Positive value -> DSP-side failure code.
(Uint32) -1    -> DSP-side component was not initialized.

    ProcId received : 0, Expected : 0
    DRV configuration status    [0xffffffff]
    IPS configuration status    [0xffffffff]
    POOL configuration status   [0xffffffff]
    MPCS configuration status   [0xffffffff]
    MPLIST configuration status [0xffffffff]
    MQT configuration status    [0xffffffff]
    DATA configuration status   [0xffffffff]
    RINGIO configuration status [0xffffffff]

 

What is the problem?

 

  • Hello,

    We have seen this problem earlier when a customer was using incorrect ubl and uboot version. To give some history on that customer issue: The PSP release 1.30.01.91 is the latest PSP release that supports UBL in NAND. All the previous PSP releases 1.30.00.82 and before didn’t support UBL in NAND. They only supported UBL in I2C or SPI EEPROM. Below is the link to release notes of PSP 1.30.01.91 https://www-a.ti.com/downloads/sds_support/targetcontent/psp/mv_lsp_1_30/patch_release/docs/Release_Notes_PSP_01_30_01_091.html

    The customer was trying either older UBL or UBOOT versions that didn’t support UBL in NAND. This resulted in MDSTAT register of DSP module (0x01c41840) with value of 0x00001f03 at U-boot prompt. The register value implied that DSP module was enabled and it was released from reset. As such, DSP was free running at u-boot prompt. Since there was no valid code on the DSP at u-boot time, the DSP was running junk code that could cause memory corruption and result in intermittent failures. When the ubl and uboot version from v1.30.01.91 was used, the MDSTAT value came as 0x00001e03 implying the DSP module was enabled and it was in reset at u-boot prompt. Moving to the correct version fixed the problem for that customer. Note that DM6467 silicon rev. 1.0 had errata that prevented usage of NAND boot.

    I will need some more information from you to see why you are seeing this issue.

    Could you tell me details of the silicon rev/evm that you are on? Also, the versions of the ubl/u-boot that you are using? This will enable me to see what could be causing the problem.

    Deepali

  • Thanks Deepali, I don't know the reversion of EVM, but I can tell you the the serial number of the evm is DHB_0908030, is this information useful? and the ubl version is 1.33, u-boot version is 1.2.0 。

  • I just tried the new version of ubl (1.5.0 from http://sourceforge.net/projects/dvflashutils/ ) and uboot (2009.08),  but the problem still exist!  and from the kernel dmesg there is a line :

    Davinci dm6467_rev3.x variant 0x1

     

     

  • Hello,

    In spite of moving to ew ubl, there have been few cases in which problem persists. We spent a lot of time trying to root cause but unfortunately could not.

    This is the reason why, this is mentioned as a known issue in Release Notes.

    DSPLN00000734 <PROC> DSP-side configuration mismatch/failure is thrown if a test is run infinite number of times

    Description : <PROC> DSP-side configuration mismatch/failure is thrown if a test is run infinite number of times

    Workaround: Power cycle the EVM and re-try.

    Deepali

  • Hello,

    In spite of moving to new ubl, there have been few cases in which problem persists. We spent a lot of time trying to root cause but unfortunately could not.

    This is the reason why, this is mentioned as a known issue in Release Notes.

    DSPLN00000734 <PROC> DSP-side configuration mismatch/failure is thrown if a test is run infinite number of times

    Description : <PROC> DSP-side configuration mismatch/failure is thrown if a test is run infinite number of times

    Workaround: Power cycle the EVM and re-try.

    Deepali

  • Is that the problem? I can return to right status after that and don't need to Power cycle the EVM.