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.

OMAP4 ISS ISIF cannot get data

Other Parts Discussed in Thread: SYSCONFIG

Hi,

    I am using OMAP4 ISS ISP to capture data from CSI2A interface, the pipeline is ov5640->CSI2A->IPIPEIF->ISIF.

I want to capture the data at the memory, whose address is set by (ISIF_CADU,ISIF_CADL), but the the data of the memory is always 0x0. In addiditon, i can caputre the effective data from CSI2A, the data caputured by CSI2A is like this: 0x40 0x7d 0x40 0x78 0x36 0x7c 0x35 0x77. and the format of the data generated by ov5640 is YUV4:2:2 16bits, the resolution is 1280*720.

one detail: the ISP ISIF can receive VD0 interrupt per 720 horizontal lines, i read the memory(ISIF_CADU,ISIF_CADL)  in the context of  VD0 ISR, and find the data being zero.

the register dumped as follow:

                       omap4iss omap4iss: ###IPIPEIF CFG1=0x00000000
[ 33.104339] omap4iss omap4iss: ###IPIPEIF CFG2=0x00000048
[ 33.104339] omap4iss omap4iss: ###ISIF SYNCEN=0x00000003
[ 33.104339] omap4iss omap4iss: ###ISIF CADU=0x00000551
[ 33.104370] omap4iss omap4iss: ###ISIF CADL=0x00000000
[ 33.104370] omap4iss omap4iss: ###ISIF MODESET=0x00002000
[ 33.104370] omap4iss omap4iss: ###ISIF CCOLP=0x00000000
[ 33.104400] omap4iss omap4iss: ###ISIF SPH=0x00000000
[ 33.104400] omap4iss omap4iss: ###ISIF LNH=0x000004ff
[ 33.104400] omap4iss omap4iss: ###ISIF LNV=0x000002cf
[ 33.104431] omap4iss omap4iss: ###ISIF VDINT0=0x000002cf
[ 33.104431] omap4iss omap4iss: ###ISIF HSIZE=0x00000000
[ 33.104431] omap4iss omap4iss: ###ISIF CCDCFG=0x00000002
[ 33.104461] omap4iss omap4iss: ###ISIF FMTCFG=0x00000000
[ 33.104461] omap4iss omap4iss: ###ISIF LINCFG0=0x00000000
[ 33.104492] omap4iss omap4iss: ###ISIF CSCCTL=0x00000000
[ 33.104492] omap4iss omap4iss: ###ISIF CLAMPCFG=0x00000000
[ 33.104492] omap4iss omap4iss: ###ISIF DFCCTL=0x00000000
[ 33.104522] omap4iss omap4iss: ###ISIF 2DLSCCFG=0x00006600
[ 33.104522] omap4iss omap4iss: ###ISIF REC656IF=0x00000000
[ 33.104522] omap4iss omap4iss: ###ISIF HDW=0x00000012
[ 33.104553] omap4iss omap4iss: ###ISIF VDW=0x00000010
[ 33.104553] omap4iss omap4iss: ###ISIF PPLN=0x000004ff
[ 33.104553] omap4iss omap4iss: ###ISIF LPFR=0x000002cf
[ 33.104583] omap4iss omap4iss: ###ISIF CGAMMAWD=0x00000000
[ 33.104583] omap4iss omap4iss: ###ISP5 SYSCONFIG=0x00000021
[ 33.104583] omap4iss omap4iss: ###ISP5 CTRL=0x0180c7f8
[ 33.104614] omap4iss omap4iss: ###ISP5 IRQSTATUS(0)=0x00000000
[ 33.104614] omap4iss omap4iss: ###ISP5 IRQENABLE_SET(0)=0x00000000
[ 33.104614] omap4iss omap4iss: ###ISP5 IRQENABLE_CLR(0)=0x00000000

                        omap4iss omap4iss: ###CSI2 SYSCONFIG=0x00001000
[ 33.104675] omap4iss omap4iss: ###CSI2 SYSSTATUS=0x00000001
[ 33.104705] omap4iss omap4iss: ###CSI2 IRQENABLE=0x00007b01
[ 33.104705] omap4iss omap4iss: ###CSI2 IRQSTATUS=0x00000000
[ 33.104705] omap4iss omap4iss: ###CSI2 CTRL=0x0029a111
[ 33.104736] omap4iss omap4iss: ###CSI2 DBG_H=0x00000000
[ 33.104736] omap4iss omap4iss: ###CSI2 COMPLEXIO_CFG=0x6a000321
[ 33.104736] omap4iss omap4iss: ###CSI2 COMPLEXIO_IRQSTATUS=0x00000000
[ 33.104766] omap4iss omap4iss: ###CSI2 SHORT_PACKET=0x00000000
[ 33.104766] omap4iss omap4iss: ###CSI2 COMPLEXIO_IRQENABLE=0x07ffffff
[ 33.104797] omap4iss omap4iss: ###CSI2 DBG_P=0x00000000
[ 33.104797] omap4iss omap4iss: ###CSI2 TIMING=0x7fff61ff
[ 33.104797] omap4iss omap4iss: ###CSI2 CTX_CTRL1(0)=0x400000c5
[ 33.104827] omap4iss omap4iss: ###CSI2 CTX_CTRL2(0)=0x0092009e
[ 33.104827] omap4iss omap4iss: ###CSI2 CTX_DAT_OFST(0)=0x00000000
[ 33.104827] omap4iss omap4iss: ###CSI2 CTX_PING_ADDR(0)=0xa9800000
[ 33.104858] omap4iss omap4iss: ###CSI2 CTX_PONG_ADDR(0)=0xa9800000
[ 33.104858] omap4iss omap4iss: ###CSI2 CTX_IRQENABLE(0)=0x00000002
[ 33.104858] omap4iss omap4iss: ###CSI2 CTX_IRQSTATUS(0)=0x0000000d
[ 33.104888] omap4iss omap4iss: ###CSI2 CTX_CTRL3(0)=0x00000000

  • Hi.

    I didn't work with CSI mode of omap4 ISS but at least in CPI mode it is working fine.

    It is good that you have at least ISS hi level IRQ.

    Next...if you try to get ISIF working i think you should wait ISIF's IRQ. not hi level ISS IRQ but according your register settings:

    [ 33.104614] omap4iss omap4iss: ###ISP5 IRQENABLE_SET(0)=0x00000000

    seems you disabled all ISP IRQ's :)

    So until you will get ISIF's IRQ you shouldn't check memory buffers.

    Please check again your register settings according TRM and i think that you will find other incorrect register settings.

     

    WBR,

  • Hi, Rumjantsev:

           because i dumped the ISP5 IRQ register after disable interrupts by calling omap4iss_isp_disable_interrupts(), now i dump the register again before disabling interrupt. now the ISP IRQ register is below, other registers associated with ISIF and IPIPEIF is the same as before. From the value of IRQENABLE_SET(0), i enable the ISIF_INT0 interrupt, and actually cpu receives this interrupt per frame and the corresponding isr is executed, but the value of ISIF output memory checked in isr  is always zero. so i am wondering that whether ISIF_INT0 indicates the end of writing operation to memory (ISIF_CADU,ISIF_CADL) ? if not ,is there other interrupt to indicate the end of ISIF writing operation? 

                                               ISP5 SYSCONFIG=0x00000021
    [   35.369781] omap4iss omap4iss: ###ISP5 CTRL=0x0180c7f8
    [   35.369781] omap4iss omap4iss: ###ISP5 IRQSTATUS(0)=0x00000000
    [   35.369781] omap4iss omap4iss: ###ISP5 IRQENABLE_SET(0)=0x800cc001
    [   35.369812] omap4iss omap4iss: ###ISP5 IRQENABLE_CLR(0)=0x800cc001

  • Hi,

    First, yes, ISIF_INT0 interrupt signalled that ISIF is finished to transfer data to memory.

    In CPI mode  i can't send data to memory whithout using of ISP even i don't need any preprocess operations...but in CSI mode you can send data to memory whithout ISP.

    I think it is better to send data to memory after deserialization. I mean not to use IPIPEF-ISIF. One of main CSI mode advantages is that you don't  have to use ISP at all. Please see OMAP4ISS driver to see how to do this.

    After you sure that you receive correct data in buffers you can switch on IPIPEIF-ISIF path.

    By the way why do you want to do with YUV data in ISIF? Do you want to do some of data preprocessing?

    WBR,

  • Hi, Rumjantsev:

            thanks for your informative reply.

            in fact, i am using ISS ISP to convert the YUV4:2:2 to NV12, the pipeline i want to use is:

    OV5640 -> CSI2a-> IPIPEIF ->Resizer, and according to the trm of omap4, when both INPSRC1 and INPSRC2 of IPIPEIF_CFG1 is set to zero, the data will flows from IPIPEIF to ISIF, and then back to IPIPEIF again. so the actual pipeline is :       ov5640->CSI2A-> IPIPEIF -> ISIF->IPIPEIF -> Resizer.

             when i use this pipeline to capture data, i find that csi2a can capture the correct data, but resizer cann't get the correct data, CPU cann't receive INT_DMA  from ISP RZA module.   so for to debug, i want to check the data captured by ISIF, and find that data captured by ISIF is always zero.

             my final object is to capture data from Resizer,  could you help me to check what is wrong with the configuration, below is the reigster contents:

     

                    omap4iss omap4iss: RSZ Err: FIFO_IN_BLK:1, FIFO_OVF:0,                

    omap4iss omap4iss: RSZ Err: FIFO_IN_BLK:0, FIFO_OVF:1,                

    omap4iss omap4iss: ###RSZ SYSCONFIG=0x00000101 [  683.087890]

    omap4iss omap4iss: ###RSZ IN_FIFO_CTRL=0x00000000 [  683.087921]

    omap4iss omap4iss: ###RSZ FRACDIV=0x00000000 [  683.087951]

    omap4iss omap4iss: ###RSZ SRC_EN=0x00000001 [  683.087982]

    omap4iss omap4iss: ###RSZ SRC_MODE=0x00000002 [  683.088012]

    omap4iss omap4iss: ###RSZ SRC_FMT0=0x00000001 [  683.088043]

    omap4iss omap4iss: ###RSZ SRC_FMT1=0x00000000 [  683.088073]

    omap4iss omap4iss: ###RSZ SRC_VPS=0x00000000 [  683.088104]

    omap4iss omap4iss: ###RSZ SRC_VSZ=0x000002ce [  683.088134]

    omap4iss omap4iss: ###RSZ SRC_HPS=0x00000000 [  683.088165]

    omap4iss omap4iss: ###RSZ SRC_HSZ=0x000004ff [  683.088195]

    omap4iss omap4iss: ###RSZ DMA_RZA=0x00000000 [  683.088226]

    omap4iss omap4iss: ###RSZ DMA_RZB=0x00000000 [  683.088256]

    omap4iss omap4iss: ###RSZ DMA_STA=0x00000001 [  683.088317]

    omap4iss omap4iss: ###RSZ GCK_MMR=0x00000001 [  683.088348]

    omap4iss omap4iss: ###RSZ GCK_SDR=0x00000001 [  683.088378]

    omap4iss omap4iss: ###RSZ IRQ_RZA=0x00000000 [  683.088409]

    omap4iss omap4iss: ###RSZ IRQ_RZB=0x00000000 [  683.088439]

    omap4iss omap4iss: ###RSZ YUV_Y_MIN=0x00000000 [  683.088470]

    omap4iss omap4iss: ###RSZ YUV_Y_MAX=0x000000ff [  683.088500]

    omap4iss omap4iss: ###RSZ YUV_C_MIN=0x00000000 [  683.088531]

    omap4iss omap4iss: ###RSZ YUV_C_MAX=0x000000ff [  683.088562]

    omap4iss omap4iss: ###RSZ SEQ=0x00000000 [  683.088592]

    omap4iss omap4iss: ###RZA EN=0x00000001 [  683.088623]

    omap4iss omap4iss: ###RZA MODE=0x00000000 [  683.088653]

    omap4iss omap4iss: ###RZA 420=0x00000003 [  683.088684]

    omap4iss omap4iss: ###RZA I_VPS=0x00000000 [  683.088775]

    omap4iss omap4iss: ###RZA I_HPS=0x00000000 [  683.088806]

    omap4iss omap4iss: ###RZA O_VSZ=0x000002ce [  683.088836]

    omap4iss omap4iss: ###RZA O_HSZ=0x000004ff [  683.088867]

    omap4iss omap4iss: ###RZA V_PHS_Y=0x00000000 [  683.088897]

    omap4iss omap4iss: ###RZA V_PHS_C=0x00000000 [  683.088928]

    omap4iss omap4iss: ###RZA V_DIF=0x00000100 [  683.088958]

    omap4iss omap4iss: ###RZA V_TYP=0x00000000 [  683.088989]

    omap4iss omap4iss: ###RZA V_LPF=0x00000000 [  683.089019]

    omap4iss omap4iss: ###RZA H_PHS=0x00000000 [  683.089050]

    omap4iss omap4iss: ###RZA H_DIF=0x00000100 [  683.089080]

    omap4iss omap4iss: ###RZA H_TYP=0x00000000 [  683.089111]

    omap4iss omap4iss: ###RZA H_LPF=0x00000000 [  683.089141]

    omap4iss omap4iss: ###RZA DWN_EN=0x00000000 [  683.089172]

    omap4iss omap4iss: ###RZA SDR_Y_BAD_H=0x0000ac30 [  683.089202]

    omap4iss omap4iss: ###RZA SDR_Y_BAD_L=0x00000000 [  683.089263]

    omap4iss omap4iss: ###RZA SDR_Y_SAD_H=0x0000ac30 [  683.089294]

    omap4iss omap4iss: ###RZA SDR_Y_SAD_L=0x00000000 [  683.089324]

    omap4iss omap4iss: ###RZA SDR_Y_OFT=0x00000500 [  683.089355]

    omap4iss omap4iss: ###RZA SDR_Y_PTR_S=0x00000000 [  683.089385]

    omap4iss omap4iss: ###RZA SDR_Y_PTR_E=0x000002cf [  683.089416]

    omap4iss omap4iss: ###RZA SDR_C_BAD_H=0x0000ac3e [  683.089447]

    omap4iss omap4iss: ###RZA SDR_C_BAD_L=0x00000b00 [  683.089477]

    omap4iss omap4iss: ###RZA SDR_C_SAD_H=0x0000ac3e [  683.089508]

    omap4iss omap4iss: ###RZA SDR_C_SAD_L=0x00000b00 [  683.089538]

    omap4iss omap4iss: ###RZA SDR_C_OFT=0x00000500 [  683.089569]

    omap4iss omap4iss: ###RZA SDR_C_PTR_S=0x00000000 [  683.089599]

    omap4iss omap4iss: ###RZA SDR_C_PTR_E=0x000002cf

    [  684.085266] omap4iss omap4iss: ###IPIPEIF CFG1=0x00000000 [  684.085296]

    omap4iss omap4iss: ###IPIPEIF CFG2=0x00000048 [  684.085327]

    omap4iss omap4iss: ###ISIF SYNCEN=0x00000003 [  684.085357]

    omap4iss omap4iss: ###ISIF CADU=0x00000551 [  684.085388]

    omap4iss omap4iss: ###ISIF CADL=0x00000000 [  684.085418]

    omap4iss omap4iss: ###ISIF MODESET=0x00002000 [  684.085449]

    omap4iss omap4iss: ###ISIF CCOLP=0x00000000 [  684.085479]

    omap4iss omap4iss: ###ISIF SPH=0x00000000 [  684.085510]

    omap4iss omap4iss: ###ISIF LNH=0x000004ff [  684.085571]

    omap4iss omap4iss: ###ISIF LNV=0x000002cf [  684.085601]

    omap4iss omap4iss: ###ISIF VDINT0=0x000002cf [  684.085632]

    omap4iss omap4iss: ###ISIF HSIZE=0x00000000 [  684.085662]

    omap4iss omap4iss: ###ISIF CCDCFG=0x00000002 [  684.085693]

    omap4iss omap4iss: ###ISIF FMTCFG=0x00000000 [  684.085723]

    omap4iss omap4iss: ###ISIF LINCFG0=0x00000000 [  684.085754]

    omap4iss omap4iss: ###ISIF CSCCTL=0x00000000 [  684.085784]

    omap4iss omap4iss: ###ISIF CLAMPCFG=0x00000000 [  684.085815]

    omap4iss omap4iss: ###ISIF DFCCTL=0x00000000 [  684.085845]

    omap4iss omap4iss: ###ISIF 2DLSCCFG=0x00006600 [  684.085876]

    omap4iss omap4iss: ###ISIF REC656IF=0x00000000 [  684.085906]

    omap4iss omap4iss: ###ISIF HDW=0x00000012 [  684.085937]

    omap4iss omap4iss: ###ISIF VDW=0x00000010 [  684.085968]

    omap4iss omap4iss: ###ISIF PPLN=0x000004ff [  684.085998]

    omap4iss omap4iss: ###ISIF LPFR=0x000002cf [  684.086029]

    omap4iss omap4iss: ###ISIF CGAMMAWD=0x00000000 [  684.086059]

    omap4iss omap4iss: ###ISP5 SYSCONFIG=0x00000021 [  684.086090]

    omap4iss omap4iss: ###ISP5 CTRL=0x0180d7f8 [  684.086120]

    omap4iss omap4iss: ###ISP5 IRQSTATUS(0)=0x00000000 [  684.086151]

    omap4iss omap4iss: ###ISP5 IRQENABLE_SET(0)=0x800cc001 [  684.086181]

    omap4iss omap4iss: ###ISP5 IRQENABLE_CLR(0)=0x800cc001[  684.086334]

    omap4iss omap4iss: ###CSI2 SYSCONFIG=0x00001000 [  684.086364]

    omap4iss omap4iss: ###CSI2 SYSSTATUS=0x00000001 [  684.086395]

    omap4iss omap4iss: ###CSI2 IRQENABLE=0x00007b01 [  684.086456]

    omap4iss omap4iss: ###CSI2 IRQSTATUS=0x00000000 [  684.086486]

    omap4iss omap4iss: ###CSI2 CTRL=0x0029a111 [  684.086517]

    omap4iss omap4iss: ###CSI2 DBG_H=0x00000000 [  684.086547]

    omap4iss omap4iss: ###CSI2 COMPLEXIO_CFG=0x6a000321 [  684.086578]

    omap4iss omap4iss: ###CSI2 COMPLEXIO_IRQSTATUS=0x00000000 [  684.086608]

    omap4iss omap4iss: ###CSI2 SHORT_PACKET=0x00000000 [  684.086639]

    omap4iss omap4iss: ###CSI2 COMPLEXIO_IRQENABLE=0x07ffffff [  684.086669]

    omap4iss omap4iss: ###CSI2 DBG_P=0x00000000 [  684.086700]

    omap4iss omap4iss: ###CSI2 TIMING=0x7fff61ff [  684.086730]

    omap4iss omap4iss: ###CSI2 CTX_CTRL1(0)=0x400000c5 [  684.086761]

    omap4iss omap4iss: ###CSI2 CTX_CTRL2(0)=0x0076009e [  684.086791]

    omap4iss omap4iss: ###CSI2 CTX_DAT_OFST(0)=0x00000000 [  684.086822]

    omap4iss omap4iss: ###CSI2 CTX_PING_ADDR(0)=0xa9800000 [  684.086883]

    omap4iss omap4iss: ###CSI2 CTX_PONG_ADDR(0)=0xa9800000 [  684.086914]

    omap4iss omap4iss: ###CSI2 CTX_IRQENABLE(0)=0x00000002 [  684.086944]

    omap4iss omap4iss: ###CSI2 CTX_IRQSTATUS(0)=0x0000000d [  684.086975]

    omap4iss omap4iss: ###CSI2 CTX_CTRL3(0)=0x00000000

                   

  • I see. I didn't use resizer module....additionally to IPIPEIF-ISIF i use H3A module to calculate focus of images.

    In general ISIF module working fine with Bayer RGB data and YCrCb data (YCbCr / 8 bit / 4:2:2).

    I'm working with both this types in the same driver. So i think you should check ISIF settings again.

    And after ISIF_INT i have data in memory buffer

    WBR,

  • Hi Guohui Li

     I am also facing same issue here, Have you fixed this issue ?  If so can please give me some hits to fix this issue.

    I my case...

    SENSOR -> CSI2A -> BL -> SDRAM  data path is working

    SENSOR -> CSI2A -> IPIPE-IF -> ISIF -> BL -> SDRAM is also working file, But

    SENSOR -> CSI2A -> IPIPE-IF -> ISIF -> IPIPE-IF -> RSZ -> BL -> SDRAM  data path is not working.

    My data path selection settings are....

    INPSRC1 and INPSRC2 of IPIPEIF_CFG1 is set to zero

    Regards,

    Gajanan Ambi

  • yes, we fix the problem. now ISS resizer can convert the video stream to NV12 and then IVA-HD can encode it to h264 stream directly.
    since our work is for a commercial product, so we need some fee to provide the source code to  you. 
    if you want to pay for it, please contact me in further by email: guohuili@xfengche.com
    thanks.
  • Hi Guohui Li,

      I resolved all related issues and also able to get proper video. Thank you.