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.

Intermittent HDVPSS Firmware Load Failure on EZSDK 5.04

Other Parts Discussed in Thread: TLC59108

With the latest EZSDK release (5.04), my EVM fails to boot about 30% of the time with the following error, which causes the system to grind to a halt. (I've trimmed the path in the assertion for brevity.)

Has anyone else seen this or know what could cause this?

Loading HDVICP2 Firmware
DM814X prcm_config_app version: 2.0.0.1
Doing PRCM settings...
        PRCM for IVHD0 is in Progress, Please wait.....  
                        BW Phy Addr : 0x48180600 Data : 0x00000001
                        AW Phy Addr : 0x48180600 Data : 0x00000002
                        Phy Addr : 0x48180c04 Data : 0x00000037
                        BW Phy Addr : 0x48180620 Data : 0x00070000
                        AW Phy Addr : 0x48180620 Data : 0x00070002
                        BW Phy Addr : 0x48180624 Data : 0x00030000
                        AW Phy Addr : 0x48180624 Data : 0x00010002
                        Phy Addr : 0x48180600 Data : 0x00000102
                        BW Phy Addr : 0x48180c10 Data : 0x00000007
                        AW Phy Addr : 0x48180c10 Data : 0x00000003
                        Phy Addr : 0x48180c14 Data : 0x00000004
                        BW Phy Addr : 0x58088000 Data : 0xeafffffe
                        AW Phy Addr : 0x58088000 Data : 0xeafffffe
                        BW Phy Addr : 0x58098000 Data : 0xeafffffe
                        AW Phy Addr : 0x58098000 Data : 0xeafffffe
                        BW Phy Addr : 0x48180c10 Data : 0x00000003
                        AW Phy Addr : 0x48180c10 Data : 0x00000000
                        Phy Addr : 0x48180c14 Data : 0x00000007
        PRCM for IVHD0 is Done Successfully  
PRCM Initialization completed
SysLink version : 2.10.03.20
SysLink module created on Date:May  4 2012 Time:14:56:59
FIRMWARE: Memory map bin file not passed
Usage : firmware_loader <Processor Id> <Location of Firmware> <start|stop> [-mmap <memory_map_file>] [-i2c <0|1>]
===Mandatory arguments===
<Processor Id>         0: DSP, 1: Video-M3, 2: Vpss-M3
<Location of Firmware> firmware binary file
<start|stop>           to start/stop the firmware
===Optional arguments===
-mmap                  input memory map bin file name
-i2c                   0: i2c init not done by M3, 1(default): i2c init done by M3
FIRMWARE: isI2cInitRequiredOnM3: 0
FIRMWARE: Default memory configuration is used
MemCfg: DCMM (Dynamically Configurable Memory Map) Version :  2.1.2.1
FIRMWARE: Memory Configuration status : In Progress
FIRMWARE: 1 start Successful
Loading HDVPSS Firmware
FIRMWARE: Memory map bin file not passed
Usage : firmware_loader <Processor Id> <Location of Firmware> <start|stop> [-mmap <memory_map_file>] [-i2c <0|1>]
===Mandatory arguments===
<Processor Id>         0: DSP, 1: Video-M3, 2: Vpss-M3
<Location of Firmware> firmware binary file
<start|stop>           to start/stop the firmware
===Optional arguments===
-mmap                  input memory map bin file name
-i2c                   0: i2c init not done by M3, 1(default): i2c init done by M3
FIRMWARE: isI2cInitRequiredOnM3: 0
FIRMWARE: Default memory configuration is used
MemCfg: DCMM (Dynamically Configurable Memory Map) Version :  2.1.2.1
Assertion at Line no: 301 in $EZSDK/component-sources/syslink_2_10_03_20/packages/ti/syslink/ipc/hlos/knl/Linux/IpcDrv.c: (status >= 0) : failed
FIRMWARE: Ipc_CONTROLCMD_STARTCALLBACK Error: ProcMgr status 0xffffffff
FIRMWARE: Could not start: -1

Here's the relevant lines from /etc/init.d/load_firmware.sh. Note that we don't need the M3 to control the I2C bus.

case "$1" in
    start)
        echo "Loading HDVICP2 Firmware"
        prcm_config_app s
        modprobe syslink
        #insmod /lib/modules/2.6.37/kernel/drivers/dsp/syslink.ko
        until [[ -e /dev/syslinkipc_ProcMgr && -e /dev/syslinkipc_ClientNotifyMgr ]]
        do                                                
            sleep 0.5
        done
        firmware_loader $HDVICP2_ID /usr/share/ti/ti-media-controller-utils/dm814x_hdvicp.xem3 start -i2c 0
        echo "Loading HDVPSS Firmware"
        firmware_loader $HDVPSS_ID /usr/share/ti/ti-media-controller-utils/dm814x_hdvpss.xem3 start -i2c 0
        modprobe vpss sbufaddr=0xBFB00000 mode=hdmi:720p-60 i2c_mode=0 debug=1
        modprobe ti81xxfb vram=0:24M,1:16M,2:6M
#        configure_lcd
        modprobe ti81xxhdmi
        modprobe tlc59108
      ;;

And here's my kernel args (i.e. UBoot's "bootargs"):

console=ttyO0,115200n8 rootwait rw mem=364M mem=324@0x9F900000 vmalloc=500M earlyprintk notifyk.vpssm3_sva=0xBF900000 vram=50M root=/dev/nfs nfsroot=192.168.0.100:/nfs/dm8148-5_04_00_11 ip=dhcp

The changes I've made to the default EVM setup are as follows...just for reference.

  • Rebuild kernel to contain inotify support
  • Because of the above, I was forced to rebuild and reinstall modules, syslink, and sgx-driver, and then do the depmod dance described here: http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/p/140714/611510.aspx#611510
  • Removed the Expansion I/O board. We provide video input directly to the connector on the base board via a custom board. No I2C configuration is needed.
  • Hi, Jon, did you fix this problem. it that hardware problem or software? we also get error when loading hdvpss firware, and it failed to start on our constom 8168 board.

  • Hi Kevin,


    I did overcome this, but it's been so long since this post I can't recall what the fix was.  (I honestly forgot I had this post here...)

    If you're not already using it, I'd suggest trying out the EZSDK 5.05.02.00 and see if any updates there address the issue you're seeing.

    The other thing I'd recommend is doublechecking your bootargs and kernel module parameters with respect to the provided notifyk and VPSS addresses.   There's some documentation on the wiki on this:

    http://processors.wiki.ti.com/index.php/EZSDK_Memory_Map#Memory_Map_in_the_current_EZSDK_.28version_5.02_onwards.29

    Sorry I couldn't be of more help on this one.  I know how frustrating it is to find threads with no solution. I'll review my notes and post back if I recall anything.  At the time I posted here, I believe I had been working on the DM8148EVM.  I don't recall seeing this issue on our own hardware, but quite a bit of software had changed by the time we got that in-house.

  •  Thank you for you answer Jon, yes, I am using the EZSDK 5.05.02.00, and the firmware address are exactly the same as the EVM'S bootargs, I test this on the ti8168 EVM board, no problem when loading the firmware!  Thanks again for you information.

  • Kevin,


    Sounds like the problem follows the new hardware then?


    I'd advise you to start a new forum thread so the TI folks will see it. It's generally tough for them to see new additions to older posts.

    Include the information you noted above, and some error logs showing the failures.  If you'd be kind enough to CC me on the post, I'll try to join if anything jogs my memory regarding what I may have experienced in the past.

    Given that you've already got Linux up and running, I assume you've tested our your DDR interface and confident that all is well there?


    Best of luck,

    Jon

  • Jon,

    Thanks for you suggestion, yes I will post a new thread on this problem, cause right now most the problem I met were related to hardware, my custom board have 1GB DDR3 as 8168evm board, same configure with the interface EMIF0 AND EMIF1, I did the memory test before booting into Linux, no error while reading and writing the memory, so, that might not be the problem, I still waiting for the rest of my protocol boards, I am not sure right now if this is a common problem on my design, hope that is not, anyhow, thank  you so much, have a good night~

    Warm regards,

    Kevin