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.

dvr rdk v03.50.00.06 with 2GB DDR configuration



Hello,
I am testing on dm8168 with dvr rdk v03.50.00.06 with 2GB DDR configuration.
dvr_rdk/Rules.make:
DVR_RDK_BOARD_TYPE := DM816X_TI_EVM
LINUX_MEM := LINUX_MEM_512M
DDR_MEM := DDR_MEM_2048M
And modify “kernel/arch/arm/mach-omap2/Makefile.boot” for loading Linux on the address 0xc0000000.
It seems fail to run the MCFW demo program. Any idea for this?
Thanks!
--------------------------------------------------
root@dm816x:/opt/dvr_rdk/ti816x# ./bin/dvr_rdk_demo_mcfw_api.out
=========
Main Menu
=========
1: VCAP + VENC + VDEC + VDIS - Progressive SD Encode + Decode
2: VCAP + VENC + VDIS - SD Encode ONLY
3: VCAP + VENC + VDIS - HD Encode ONLY
4: VDEC + VDIS - SD/HD Decode ONLY
e: Exit
Enter Choice: 4
Sample ini files available in ./demo_ini folder.
Enter the .ini filename with full path : /data/720x480x4.ini
*** a new param codec is needed for ini, if you not sure about this
*** please reference demo_ini/704x576_02_32CH.ini
*** H264: codec = h264
*** MPEG4: codec = mpeg4
*** MJPEG: codec = mjpeg
*** Two new params numbuf & displaydelay has been added for ini, if not defaults are set
*** Generate header files ***
This will take very long time if the file is large.
- For first time you MUST select YES.
- If you already have the header file on disk, you can select NO.
Do you want to generate header ? (YES - y, NO - n) : n
0: Opening file [/data/test6.264] of 720 x 480 Codec: h264...
0: WARNING: Either the Num of output buffers not set or Default value was set as zero
1: Opening file [/data/test6.264] of 720 x 480 Codec: h264...
1: WARNING: Either the Num of output buffers not set or Default value was set as zero
2: Opening file [/data/test6.264] of 720 x 480 Codec: h264...
2: WARNING: Either the Num of output buffers not set or Default value was set as zero
3: Opening file [/data/test6.264] of 720 x 480 Codec: h264...
3: WARNING: Either the Num of output buffers not set or Default value was set as zero
gVdecVdis_config.numRes : 1 gVdecVdis_config.numChnlInRes[0] : 4
File open ... DONE !!!
--------------- CHANNEL DETAILS-------------
Dec Channels => 4
Disp Channels => 4
-------------------------------------------
0: SYSTEM: System Common Init in progress !!!
0: SYSTEM: IPC init in progress !!!
14: SYSTEM: CPU [DSP] syslink proc ID is [0] !!!
14: SYSTEM: CPU [VIDEO-M3] syslink proc ID is [1] !!!
15: SYSTEM: CPU [VPSS-M3] syslink proc ID is [2] !!!
15: SYSTEM: CPU [HOST] syslink proc ID is [3] !!!
15: SYSTEM: Creating MsgQ Heap [IPC_MSGQ_MSG_HEAP_3] ...
17: SYSTEM: Creating MsgQ [HOST_MSGQ] ...
19: SYSTEM: Creating MsgQ [HOST_ACK_MSGQ] ...
21: SYSTEM: Opening MsgQ [DSP_MSGQ] ...
21: SYSTEM: Opening MsgQ [VIDEO-M3_MSGQ] ...
22: SYSTEM: Opening MsgQ [VPSS-M3_MSGQ] ...
22: SYSTEM: Notify register to [DSP] line 0, event 15 ...
23: SYSTEM: Notify register to [VIDEO-M3] line 0, event 15 ...
24: SYSTEM: Notify register to [VPSS-M3] line 0, event 15 ...
24: SYSTEM: IPC init DONE !!!
25: SYSTEM: Creating ListMP [HOST_IPC_OUT_24] in region 0 ...
28: SYSTEM: Creating ListMP [HOST_IPC_IN_24] in region 0 ...
29: SYSTEM: ListElem Shared Addr = 0x41047880
30: SYSTEM: Creating ListMP [HOST_IPC_OUT_25] in region 0 ...
33: SYSTEM: Creating ListMP [HOST_IPC_IN_25] in region 0 ...
34: SYSTEM: ListElem Shared Addr = 0x41065380
36: SYSTEM: Creating ListMP [HOST_IPC_OUT_19] in region 0 ...
38: SYSTEM: Creating ListMP [HOST_IPC_IN_19] in region 0 ...
39: SYSTEM: ListElem Shared Addr = 0x41082e80
40: SYSTEM: Creating ListMP [HOST_IPC_OUT_20] in region 0 ...
43: SYSTEM: Creating ListMP [HOST_IPC_IN_20] in region 0 ...
44: SYSTEM: ListElem Shared Addr = 0x410a8680
45: SYSTEM: Creating ListMP [HOST_IPC_OUT_21] in region 0 ...
48: SYSTEM: Creating ListMP [HOST_IPC_IN_21] in region 0 ...
49: SYSTEM: ListElem Shared Addr = 0x410cde80
65: SYSTEM: System Common Init Done !!!
ch[0], h264
ch[1], h264
ch[2], h264
ch[3], h264
[host] HDMI Ctrl :Initializing
[host] HDMI Ctrl :Initialized
[host] HDMI Ctrl :Sink Connected
[FBDEV]
[FBDEV] FB: Starting !!!
[FBDEV] FB: Opened device [/dev/fb0] (fd=31) !!!
[FBDEV]
[FBDEV] Fix Screen Info
[FBDEV] ---------------
[FBDEV] Line Length - 2560
[FBDEV] Physical Address = dea00000
[FBDEV] Buffer Length = 8388608
[FBDEV]
[FBDEV]
[FBDEV] Var Screen Info
[FBDEV] ---------------
[FBDEV] Xres - 1280
[FBDEV] Yres - 720
[FBDEV] Xres Virtual - 1280
[FBDEV] Yres Virtual - 720
[FBDEV] Bits Per Pixel - 16
[FBDEV] Pixel Clk - 6734
[FBDEV] Rotation - 0
[FBDEV]
[FBDEV]
[FBDEV] Reg Params Info
[FBDEV] ---------------
[FBDEV] region 0, postion 0 x 0, prioirty 1
[FBDEV] first 1, last 1
[FBDEV] sc en 0, sten en 0
[FBDEV] tran en 0, type 0, key 0
[FBDEV] blend 0, alpha 0
[FBDEV] bb en 0, alpha 0
[FBDEV]
[FBDEV]
[FBDEV] ### BUF SIZE = 1843200 Bytes !!!
[FBDEV]
[FBDEV]
[FBDEV] Fix Screen Info
[FBDEV] ---------------
[FBDEV] Line Length - 2560
[FBDEV] Physical Address = dea00000
[FBDEV] Buffer Length = 8388608
[FBDEV]
[FBDEV]
[FBDEV] Var Screen Info
[FBDEV] ---------------
[FBDEV] Xres - 1280
[FBDEV] Yres - 720
[FBDEV] Xres Virtual - 1280
[FBDEV] Yres Virtual - 720
[FBDEV] Bits Per Pixel - 16
[FBDEV] Pixel Clk - 6734
[FBDEV] Rotation - 0
[FBDEV]
[FBDEV]
[FBDEV] Reg Params Info
[FBDEV] ---------------
[FBDEV] region 0, postion 0 x 0, prioirty 1
[FBDEV] first 1, last 1
[FBDEV] sc en 0, sten en 0
[FBDEV] tran en 0, type 0, key 0
[FBDEV] blend 0, alpha 0
[FBDEV] bb en 0, alpha 0
[FBDEV]
[FBDEV]
[FBDEV] ### BUF SIZE = 1843200 Bytes !!!
[FBDEV]
[FBDEV] grpx_fb_draw ...
[FBDEV] grpx_fb_draw ... Done !!!
[FBDEV] FB: Start DONE !!!
[FBDEV]
245: MCFW : CPU Revision [ES1.1] !!!
245: MCFW : Detected [UNKNOWN] Board !!!
245: MCFW : Base Board Revision [REV A] !!!
[m3vpss ] Unhandled Exception:
[m3vpss ] Exception occurred in ThreadType_Task
[m3vpss ] handle: 0x33ef40b0.
[m3vpss ] stack base: 0x33f9b680.
[m3vpss ] stack size: 0x8000.
[m3vpss ] R0 = 0x10000000 R8 = 0x92dd8b30
[m3vpss ] R1 = 0x00000090 R9 = 0xffffffff
[m3vpss ] R2 = 0xf0000000 R10 = 0xffffffff
[m3vpss ] R3 = 0x07080010 R11 = 0xffffffff
[m3vpss ] R4 = 0x00000008 R12 = 0x00000090
[m3vpss ] R5 = 0x92dd8b30 SP(R13) = 0x33fa3598
[m3vpss ] R6 = 0x00000000 LR(R14) = 0x92b78155
[m3vpss ] R7 = 0x00000000 PC(R15) = 0x92b69b40
[m3vpss ] PSR = 0x41000000
[m3vpss ] ICSR = 0x0440f803
[m3vpss ] MMFSR = 0x00
[m3vpss ] BFSR = 0x04
[m3vpss ] UFSR = 0x0000
[m3vpss ] HFSR = 0x40000000
[m3vpss ] DFSR = 0x00000000
[m3vpss ] MMAR = 0xe000ed34
[m3vpss ] BFAR = 0xe000ed38
[m3vpss ] AFSR = 0x00000000
[m3vpss ] Terminating Execution...
  • Can you disable call to System_disableTilerAllocator from the usecase file multich_vdec_vdis.c and check if you still see the crash.

  • It works! Thanks!!

    Could you explain more about this?

  • When System_disableTilerAllocator is called, it creates a normal frame buffer heap over the tiler physical memory .This is because usecase doesn't use tiled memory so the memory allocated to tiled memory is reused for frame buffers. This requires the tiler physical memory to be mapped on VPSS M3 . In 2G build there are not enough pages  to map the tiler physical memory to VPSS M3 so it is incorrect to dsableTilerAllocator. The correct fix for this is:

    /dvr_rdk/mcfw/src_bios6/links_m3vpss/system/systemLink_tsk_m3vpss.c

    Int32 SystemLink_cmdHandler(SystemLink_Obj * pObj, UInt32 cmd, Void * pPrm)

             case SYSTEM_COMMON_CMD_TILER_DISABLE_ALLOCATOR:
            {
                #ifdef TI816X_2G_DDR
                Vps_printf("WARNING!!.Tiler Memory cannot be accessed by M3 in 2G build.Will not disable");
                #else
                status = Utils_tilerAllocatorDisable();
                #endif
                break;
            }
            case SYSTEM_COMMON_CMD_TILER_ENABLE_ALLOCATOR:
            {
                #ifdef TI816X_2G_DDR
                Vps_printf("WARNING!!.Tiler Memory cannot be accessed by M3 in 2G build.Will not enable");
                #else
                status = Utils_tilerAllocatorEnable();
                #endif
                break;
            }