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.

H264 encode demo application crashes with DSP MMU error on DM3730 EVM

Other Parts Discussed in Thread: DM3730

Hi All,

I am running the encode demo in DVSDK 4.02.00.06 on DM3730 EVM board.  Default H264 encoder parameters in the demo application are used (H.264 Base Profile Encoder version 1.00.02.00). DSP Server memory map is also the default one shown below. The application runs fine for a period of time ranging from 2 minutes to 4 hours, then crashes with DSP MMU error fault error:

DSP MMU Error Fault!  MMU_IRQSTATUS = [0x1]. Virtual DSP addr reference that generated the interrupt = [ 0xff123fa0].

The virtual DSP address field in the error message is different for each crash.  The MPEG4 encoder works fine for the same configuration. We have experimented with different DSP server memory map configurations with no luck. Also suspected stack overflow and increased encode algorithm stack size to 32K; however it did not help either.

Is there a known bug with the H264 codec? Any suggestions are welcome.

Memory Map for 256MB EVM SDRAM:

Linux: 80M

Cmem: 100M starting from 0x88000000

var mem_ext = [

{

    comment:    "RESET_VECTOR: off-chip memory for the reset vector table",

    name:       "RESET_VECTOR",

    base:       0x85900000,

    len:        0x00001000,

    space:      "code/data"

},

{

    comment:    "DSPLINK: off-chip memory reserved for DSPLINK code and data",

    name:       "DSPLINKMEM",

    base:       0x85901000,

    len:        0x000FF000,

    space:      "code/data"

},

{

    comment:    "DDRALGHEAP: off-chip memory for dynamic algmem allocation",

    name:       "DDRALGHEAP",

    base:       0x85a00000,

    len:        0x02000000,

    space:      "code/data"

},

{

    comment:    "DDR2: off-chip memory for application code and data",

    name:       "DDR2",

    base:       0x87a00000,

    len:        0x00600000,

    space:      "code/data"

},

{

    comment:    "L4CORE: L4-Core Interconnect Address Space",

    name:       "L4CORE",

    base:       0x48000000,

    len:        0x01000000,

    space:      "data"

},

{

    comment:    "L4PER: L4-Peripheral Interconnect Address Space",

    name:       "L4PER",

    base:       0x49000000,

    len:        0x00100000,

    space:      "data"

},

];

 

Best regards,

Umut

  • Mehmet,

    The DSP fault address reported above (0xFF123FA0) looks like a DSPLink error code. My guess is that some code (maybe in DSPLink itself) is using the return value as a pointer instead of checking for error.

    ~ Ramsey

  • Hi,

    It seems the DSP MMU error has something to do with the DM3730 clock rate. I recently discovered that the error only occurs when 'mpurate=1000' is set in bootargs. H264 encoder runs fine for 'mpurate=800'.

    Is there any other setting I should do for 1GHz operation? May be another question to ask is whether the DM3730 EVM, kernel, codec engine - dsplink framework or the H264 codec is ready for 1GHz clock rate.

    Thanks and best regards,

    Umut