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.

Issues when not loading HDVICP firmware

Hi All,

I am working on a DM8148 Custom board , i am using latest ezsdk 5.05 . We are doing power management . Our OMX application doesn't do any encoding or decoding of captured streams ,so we wanted to disable the hdvicp firmware loading so that we can save the power consumed when HDVICP M3 is powered on . We tried below options to disable the HDVICP M3 . 

Configuration 1 :

1. In prcm_config source , i commented out the line to disable the CLK to IVAHD0 

static void prcmInit()
{

/* Only IVA-HD is being powered on by this PRCM utility */

/* Bringup->IVAHD0 */
//IVAHD0ClkEnable(); /**Commenting to save power ***/

TRACE_PRINT("PRCM Initialization completed \n");
}

2. We are not loading the HDVICP firmware . When the hdvicp firmware is not loaded we are able to save 0.2 Watts .

With the above setup , when i run our OMX application ,it hangs at the point where the capture component is not moving into execute state . 

Configuration 2 :

1. We disabled the CLK to IVAHD0 in the prcm_config utility .

2 . We are loading the HDVICP firmware .

With this setup ,the same OMX application is running fine without any problems . But we are able to save only 0.075 Watts .

Based on our observation ,additional 0.125 Watts is consumed by DDR3 when the HDVICP firmware is loaded . We want to try the Configuration 1 where CLK to IVAHD0 is disabled and the HDVICP firmware is not loaded so that we can save 0.2 Watts .

Can anyone help us in understanding why the OMX application hangs when we try the configuration 1 ? What can be done in the Configuration 1 so that the OMX app runs fine without any problems .

Thanks,

N Sivaramkrishna .

  • Hello,

    "With the above setup , when i run our OMX application ,it hangs at the point where the capture component is not moving into execute state ."

    Could you run LoggerSMDump for more information.

    http://processors.wiki.ti.com/index.php/OMX_Viewing_Media_Controller_Traces

    Best Regards,

    Margarita

  • Hi ,

    I am attaching the logs captured using LoggerSMDump utility ,It seems to be hanging at Capture Driver Priming the buffers .

    N:VPSS P:2 #:01890 T:0000000e16efa877 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFDC> Entering<OMX_BASE_CmdEventHandler> @line<434>
    N:VPSS P:2 #:01891 T:0000000e1703f015 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFDC> Entering<OMX_BASE_PROCESS_CmdEvent> @line<526>
    N:VPSS P:2 #:01892 T:0000000e17163531 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFDC> @<OMX_BASE_PROCESS_CmdEvent> @line<538> msg<Processing OMX_CommandStateSet>
    N:VPSS P:2 #:01893 T:0000000e1729885b M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFDC> Entering<_OMX_BASE_HandleStateTransition> @line<316>
    N:VPSS P:2 #:01894 T:0000000e173c437f M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFDC> @<_OMX_BASE_HandleStateTransition> @line<376> msg<Idle to Executing Transition>
    N:VPSS P:2 #:01895 T:0000000e1766df3b M:xdc.runtime.Main S:Mosaic configuration DONE!!
    N:VPSS P:2 #:01896 T:0000000e1990540b M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFDC> Entering<OMX_BASE_CB_ReturnEventNotify> @line<100>
    N:VPSS P:2 #:01897 T:0000000e19a2c321 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFDC> @<OMX_BASE_CB_ReturnEventNotify> @line<115> msg<Notify client for state transition>
    N:VPSS P:2 #:01898 T:0000000e19b8c201 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFDC> Leaving<OMX_BASE_CB_ReturnEventNotify> @line<224> with error<0:ErrorNone>
    N:VPSS P:2 #:01899 T:0000000e19ccf8f7 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFDC> Leaving<_OMX_BASE_HandleStateTransition> @line<483> with error<0:ErrorNone>
    N:VPSS P:2 #:01900 T:0000000e19e0b987 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFDC> Leaving<OMX_BASE_PROCESS_CmdEvent> @line<784> with error<0:ErrorNone>
    N:VPSS P:2 #:01901 T:0000000e19fc760d M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFDC> Leaving<OMX_BASE_CmdEventHandler> @line<466> with error<0:ErrorNone>
    N:VPSS P:2 #:01902 T:0000000e1a119615 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFDC> Entering<OMX_BASE_CmdCompleteEventHandler> @line<483>
    N:VPSS P:2 #:01903 T:0000000e1a246b9d M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFDC> Entering<OMX_BASE_PROCESS_CmdCompleteEvent> @line<809>
    N:VPSS P:2 #:01904 T:0000000e1a375bd9 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFDC> @<OMX_BASE_PROCESS_CmdCompleteEvent> @line<821> msg<Processing OMX_CommandStateSet>
    N:VPSS P:2 #:01905 T:0000000e1a4d867b M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFDC> Entering<_OMX_BASE_HandleStateTransitionComplete> @line<506>
    N:VPSS P:2 #:01906 T:0000000e1a60eeab M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFDC> @<_OMX_BASE_HandleStateTransitionComplete> @line<614> msg<Idle to Executing Transition>
    N:VPSS P:2 #:01907 T:0000000e1a7dafc1 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFDC> Leaving<_OMX_BASE_HandleStateTransitionComplete> @line<704> with error<0:ErrorNone>
    N:VPSS P:2 #:01908 T:0000000e1a91fd6b M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFDC> Entering<_OMX_BASE_EventNotifyToClient> @line<881>
    N:VPSS P:2 #:01909 T:0000000e1ac53b0f M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> Entering<OMX_BASE_SendCommand> @line<499>
    N:VPSS P:2 #:01910 T:0000000e1adde7cf M:xdc.runtime.Main S:OMX_BASE_SendCommand:OMX_CommandStateSet, nParam1: 3
    N:VPSS P:2 #:01911 T:0000000e1af7e0b1 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> Leaving<OMX_BASE_SendCommand> @line<669> with error<0:ErrorNone>
    N:VPSS P:2 #:01912 T:0000000e1b1d9683 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFDC> Entering<OMX_BASE_DIO_Control> @line<455>
    N:VPSS P:2 #:01913 T:0000000e1b47d627 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFDC> Leaving<OMX_BASE_DIO_Control> @line<463> with error<0:ErrorNone>
    N:VPSS P:2 #:01914 T:0000000e1b5fe30b M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFDC> Leaving<_OMX_BASE_EventNotifyToClient> @line<1172> with error<0:ErrorNone>
    N:VPSS P:2 #:01915 T:0000000e1b730dd3 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFDC> Leaving<OMX_BASE_PROCESS_CmdCompleteEvent> @line<930> with error<0:ErrorNone>
    N:VPSS P:2 #:01916 T:0000000e1b86d68d M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFDC> Leaving<OMX_BASE_CmdCompleteEventHandler> @line<496> with error<0:ErrorNone>
    N:VPSS P:2 #:01917 T:0000000e1bad596b M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFDC> Entering<OMX_BASE_CmdEventHandler> @line<434>
    N:VPSS P:2 #:01918 T:0000000e1bc02901 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFDC> Leaving<OMX_BASE_CmdEventHandler> @line<466> with error<0:ErrorNone>
    N:VPSS P:2 #:01919 T:0000000e1be6975d M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> Entering<OMX_BASE_CmdEventHandler> @line<434>
    N:VPSS P:2 #:01920 T:0000000e1bfcbb1b M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> Entering<OMX_BASE_PROCESS_CmdEvent> @line<526>
    N:VPSS P:2 #:01921 T:0000000e1c0fca39 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> @<OMX_BASE_PROCESS_CmdEvent> @line<538> msg<Processing OMX_CommandStateSet>
    N:VPSS P:2 #:01922 T:0000000e1c23de7f M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> Entering<_OMX_BASE_HandleStateTransition> @line<316>
    N:VPSS P:2 #:01923 T:0000000e1c364f8d M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> @<_OMX_BASE_HandleStateTransition> @line<376> msg<Idle to Executing Transition>
    N:VPSS P:2 #:01924 T:0000000e1c74b39b M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> Entering<OMX_BASE_CB_ReturnEventNotify> @line<100>
    N:VPSS P:2 #:01925 T:0000000e1c893007 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> @<OMX_BASE_CB_ReturnEventNotify> @line<115> msg<Notify client for state transition>
    N:VPSS P:2 #:01926 T:0000000e1c9f5037 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> Leaving<OMX_BASE_CB_ReturnEventNotify> @line<224> with error<0:ErrorNone>
    N:VPSS P:2 #:01927 T:0000000e1cb5ecf1 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> Leaving<_OMX_BASE_HandleStateTransition> @line<483> with error<0:ErrorNone>
    N:VPSS P:2 #:01928 T:0000000e1cd254e7 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> Leaving<OMX_BASE_PROCESS_CmdEvent> @line<784> with error<0:ErrorNone>
    N:VPSS P:2 #:01929 T:0000000e1ce7a50b M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> Leaving<OMX_BASE_CmdEventHandler> @line<466> with error<0:ErrorNone>
    N:VPSS P:2 #:01930 T:0000000e1cfcf287 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> Entering<OMX_BASE_CmdCompleteEventHandler> @line<483>
    N:VPSS P:2 #:01931 T:0000000e1d1089d3 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> Entering<OMX_BASE_PROCESS_CmdCompleteEvent> @line<809>
    N:VPSS P:2 #:01932 T:0000000e1d240887 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> @<OMX_BASE_PROCESS_CmdCompleteEvent> @line<821> msg<Processing OMX_CommandStateSet>
    N:VPSS P:2 #:01933 T:0000000e1d3a23bb M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> Entering<_OMX_BASE_HandleStateTransitionComplete> @line<506>
    N:VPSS P:2 #:01934 T:0000000e1d537bed M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> @<_OMX_BASE_HandleStateTransitionComplete> @line<614> msg<Idle to Executing Transition>
    N:VPSS P:2 #:01935 T:0000000e1d68f071 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> Leaving<_OMX_BASE_HandleStateTransitionComplete> @line<704> with error<0:ErrorNone>
    N:VPSS P:2 #:01936 T:0000000e1d7fa837 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> Entering<_OMX_BASE_EventNotifyToClient> @line<881>
    N:VPSS P:2 #:01937 T:0000000e1db4231f M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFCC> Entering<OMX_BASE_SendCommand> @line<499>
    N:VPSS P:2 #:01938 T:0000000e1dd2689d M:xdc.runtime.Main S:OMX_BASE_SendCommand:OMX_CommandStateSet, nParam1: 3
    N:VPSS P:2 #:01939 T:0000000e1de56f7f M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFCC> Leaving<OMX_BASE_SendCommand> @line<669> with error<0:ErrorNone>
    N:VPSS P:2 #:01940 T:0000000e1e0bce4b M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> Entering<OMX_BASE_DIO_Control> @line<455>
    N:VPSS P:2 #:01941 T:0000000e1e3bb99f M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> Leaving<OMX_BASE_DIO_Control> @line<463> with error<0:ErrorNone>
    N:VPSS P:2 #:01942 T:0000000e1e512b11 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> Entering<OMX_BASE_DIO_Control> @line<455>
    N:VPSS P:2 #:01943 T:0000000e1e7d83c1 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> Leaving<OMX_BASE_DIO_Control> @line<463> with error<0:ErrorNone>
    N:VPSS P:2 #:01944 T:0000000e1e923951 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> Entering<OMX_BASE_DIO_Control> @line<455>
    N:VPSS P:2 #:01945 T:0000000e1ec3e207 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> Leaving<OMX_BASE_DIO_Control> @line<463> with error<0:ErrorNone>
    N:VPSS P:2 #:01946 T:0000000e1ed94fc9 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> Leaving<_OMX_BASE_EventNotifyToClient> @line<1172> with error<0:ErrorNone>
    N:VPSS P:2 #:01947 T:0000000e1eeeeec5 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> Leaving<OMX_BASE_PROCESS_CmdCompleteEvent> @line<930> with error<0:ErrorNone>
    N:VPSS P:2 #:01948 T:0000000e1f060a01 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> Leaving<OMX_BASE_CmdCompleteEventHandler> @line<496> with error<0:ErrorNone>
    N:VPSS P:2 #:01949 T:0000000e1f1a5e21 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> Entering<OMX_BASE_CmdEventHandler> @line<434>
    N:VPSS P:2 #:01950 T:0000000e1f3263f9 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFPC.DEIMDUALOUT> Leaving<OMX_BASE_CmdEventHandler> @line<466> with error<0:ErrorNone>
    N:VPSS P:2 #:01951 T:0000000e1f5d9453 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFCC> Entering<OMX_BASE_CmdEventHandler> @line<434>
    N:VPSS P:2 #:01952 T:0000000e1f72910f M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFCC> Entering<OMX_BASE_PROCESS_CmdEvent> @line<526>
    N:VPSS P:2 #:01953 T:0000000e1f8509e3 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFCC> @<OMX_BASE_PROCESS_CmdEvent> @line<538> msg<Processing OMX_CommandStateSet>
    N:VPSS P:2 #:01954 T:0000000e1f99b877 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFCC> Entering<_OMX_BASE_HandleStateTransition> @line<316>
    N:VPSS P:2 #:01955 T:0000000e1fb331c9 M:xdc.runtime.Main S:Module<OMX.TI.VPSSM3.VFCC> @<_OMX_BASE_HandleStateTransition> @line<376> msg<Idle to Executing Transition>
    N:VPSS P:2 #:01956 T:0000000e1fca136f M:xdc.runtime.Main S:Starting Capture Driver
    N:VPSS P:2 #:01957 T:0000000e1fd67d77 M:xdc.runtime.Main S:VFCC Capture_drvOverflowDetectAndReset::Line 3657::VIP Reset Happend, reset count:: 1 portId : 0
    N:VPSS P:2 #:01958 T:0000000e1fe89b4d M:xdc.runtime.Main S:VFCC VIP Id:0
    N:VPSS P:2 #:01959 T:0000000e207ddd8f M:xdc.runtime.Main S:RESET Count:: 1 , curTime:: 151139
    N:VPSS P:2 #:01960 T:0000000e208b9033 M:xdc.runtime.Main S:Capture Driver Started!!
    N:VPSS P:2 #:01961 T:0000000e20b7b55b M:xdc.runtime.Main S:Priming the buffers to the Capture Driver
    N:VPSS P:2 #:01962 T:0000000e23a79007 M:xdc.runtime.Main S:Priming the buffers to the Capture Driver

    Here is the Console log ,

    capture compoenent is created
    found handle 0x1460f0 for component OMX.TI.VPSSM3.VFCC
     control TVP compoenent is created
    Capture Params: Buffer Size computed: 622080
    set input port params (width = 720, height = 576)
    After paramport settings
    configure for TVP ctrl component
    enable capture output port
    got event
    Enable/Disable Event
     SDcapture compoenent is created
    found handle 0x14d8d8 for component OMX.TI.VPSSM3.VFCC
     control TVP SD compoenent is created
    Capture Sd :Buffer Size computed: 622080
    set input port SD params (width = 720, height = 576)enable capture SD output port
    got event
    Enable/Disable Event
     dei compoenent is created
    set input port params (width = 720, height = 576)
    Dei input Params: Buffer Size computed: 622080
    set output port params (width = 720, height = 576)set output port params (width = 720, height = 576)Dei Output Params: Buffer Size computed: 622080
    set number of channelsset input resolutionset output resolutionenable dei input port
    got event
    Enable/Disable Event
    enable dei output port 0
    got event
    Enable/Disable Event
    enable dei output port 1
    got event
    Enable/Disable Event
     dei Sd compoenent is created
    set DEI-Sd input port params (width = 720, height = 576)
    Dei Sd Input Params: Buffer Size computed: 622080
    set output port params (width = 720, height = 576)
    DeiSD: set output port params (width = 720, height = 576)
    Dei Sd Output Params: Buffer Size computed: 829440
    set number of channelsset input resolutionset output resolutionenable dei Sd input port
    got event
    Enable/Disable Event
    enable dei Sd output port 0
    got event
    Enable/Disable Event
    enable dei Sd output port 1
    got event
    Enable/Disable Event
    found handle 0x160af8 for component OMX.TI.VPSSM3.VFDC
     got display handle
    found handle 0x164b00 for component OMX.TI.VPSSM3.CTRL.DC
    Display Params : Buffer Size computed: 622080
    set display input port params (width = 720, height = 576)
    setting input and output memory type to default
    enable input port
    got event
    Enable/Disable Event
    found handle 0x168608 for component OMX.TI.VPSSM3.VFDC
    found handle 0x16c610 for component OMX.TI.VPSSM3.CTRL.DC
    setting for Display Sd
    Setting Display mode 4 : Sd VFDC Params
    Buffer Size computed: 829440
    set Display Sd input port params (width = 720, height = 576)
    Applying mosaic settings for DVO1 /DVO2 display ports
    setting input and output memory type to default
    enable Sd input port
    got event
    Enable/Disable Event
     connect call for capture-Dei
      connect call for dei-display
      connect call for captureSd-DeiSd
      connect call for deiSd-displaySd
     got event
    State changed to:
     OMX_StateIdle
    Control TVP component moved to IDLE state
    got event
    State changed to:
     OMX_StateIdle
    Control TVP-SD component moved to IDLE state
     Capture outport buffers allocated
     got event
    State changed to:
     OMX_StateIdle
     Capture is in IDLE state
     Capture Sdoutport buffers allocated
     got event
    State changed to:
     OMX_StateIdle
     Capture Sd is in IDLE state
     Dei input port use buffer done
      DEI outport buffers allocated
     got event
    State changed to:
     OMX_StateIdle
     DEI is in IDLE state
     Dei SD input port use buffer done
      DEI SD outport buffers allocated
     got event
    State changed to:
     OMX_StateIdle
     DEI SD is in IDLE state
    got event
    State changed to:
     OMX_StateIdle
     ctrl-dc state IDLE
     got event
    State changed to:
     OMX_StateIdle
     ctrl-dc Sd state IDLE
     use the buffers allocated at DEI output
     display buffers allocated waiting for IDLE
    got event
    State changed to:
     OMX_StateIdle
     display state IDLE
     use the buffers allocated at DEI SD output
    got event
    State changed to:
     OMX_StateIdle
     display-sd state IDLE
     got event
    State changed to:
     OMX_StateExecuting
     display control state execute
     got event
    State changed to:
     OMX_StateExecuting
     display state execute
     got event
    State changed to:
     OMX_StateExecuting
     dei state execute
     about to call sem_pend for cap
    The OMX app hangs at the above point , OMX app has got two Capture components . Its a dual capture and dual display application . Why the capture 
    component is not moving into execute state when the HDVICP firmware is not loaded ,Can you help us in solving this problem ? 
    Thanks,
    N Sivaramkrishna .