use 8 megapixel camera on omap4460

I use 8 megapixel camera OV8825 on OMAP4460 and modified ducati imx_060 for using OV8825.Now can work on preivew and record mode, but can not work on capture mode. Any idea?

OV8825 is a RAW RGB 10-bit(BGGR) camera.The ducati debug messages are below:

[ 1.765] [ERR=2625] src/new_sensor_MSP.c:[534]:Sen Read ID: 34853, expected ID:34853
[ 1.765]
[ 1.765] [ERR=2626] OV8825/src/OV8825.c:[1104]:!!! Sensor active!

[ 1.834] [ERR=4355] OV8825/src/OV8825.c:[1232]:Set Sensor configuration:SEN_MODE_PREVIEW
[ 1.835] [ERR=4356] src/msp_camera_api.c:[1462]:COLOR Pattern: 2
[ 1.835]
[ 1.835] [ERR=4357] src/new_csi_MSP.c:[450]:Default complex IO configuration for CSI:0
[ 1.835] [ERR=4358] src/csi2rx_api.c:[502]:number = 0, imagebuf = @b49000a0
[ 1.835] [ERR=4359] src/new_csi_MSP.c:[450]:Default complex IO configuration for CSI:0
[ 1.835] [ERR=4360] src/csi2rx_api.c:[502]:number = 1, imagebuf = @b5c38ea0
[ 1.836] [ERR=4369] src/face_detect_alg_integration_module.c:[759]:initFaceDetectPrivateContext: Loading DCC parameters for face detect failed. Loading default values.
[ 1.837] [ERR=4376] src/hal_manager.c:[579]:hai_manager_config_camera: HAL Camera configuring... (Compile Time: Nov 21 2011 19:46:13)
[ 1.843] [ERR=4378] src/awb_fw.c:[914]:auto_white_balance_create: AWBFW : AWB DCC ERRORS. DUMMY TUNNING LOADED.
[ 1.848] [ERR=4381] source/af_fw_dcc.c:[195]:affw_parse_dcc_content: AFFW : Invalid AF DCC server data! Use Defaults!
[ 1.849] [ERR=4382] source/af_fw_dcc.c:[217]:affw_parse_dcc_content: AFFW : Invalid HLLC DCC server data!
[ 1.849] [ERR=4383] source/af_fw_dcc.c:[239]:affw_parse_dcc_content: AFFW : Invalid AFFW DCC server data!
[ 1.849] [ERR=4384] source/af_fw_dcc.c:[264]:affw_parse_dcc_content: AFFW : Invalid CAF DCC server data!
[ 1.859] [ERR=4385] src/eeprom_lib.c:[521]:eeprom_lib_sensetivity_array: EEPROM:NULL pointer magic X 57005
[ 1.943] serviceMgr: received msg type: 4 from addr: 1025
[ 1.944] serviceMgr: OMX_DISCONNECT: len 4, addr: 101
[ 1.944] RcmServer_serverThrFxn_P: Exiting thread.
[ 1.944] deleteService: removed RcmServer at endpoint: 101

[ 50.808] [ERR=70922] src/hal_manager.c:[579]:hai_manager_config_camera: HAL Camera configuring... (Compile Time: Nov 21 2011 19:46:13)
[ 50.814] [ERR=70923] src/awb_fw.c:[914]:auto_white_balance_create: AWBFW : AWB DCC ERRORS. DUMMY TUNNING LOADED.
[ 50.821] [ERR=70927] src/msp_camera_api.c:[3367]:NO Camera FLASH module
[ 50.821]
[ 50.821] [ERR=70934] OV8825/src/OV8825.c:[1211]:Set Sensor configuration:SEN_MODE_CAPTURE
[ 50.822] [ERR=70977] dspbios/kgenerator/kg_preflash.c:[185]:kg_preflash_required: ERROR: Disable PREFLASH sequence because HARDWARE missing
[ 50.824] [ERR=70990] src/eeprom_lib.c:[521]:eeprom_lib_sensetivity_array: EEPROM:NULL pointer magic X 57005
[ 50.827] [ERR=70998] src/new_csi_MSP.c:[450]:Default complex IO configuration for CSI:0
[ 50.827] [ERR=70999] src/csi2rx_api.c:[502]:number = 0, imagebuf = @00000000

  • What resolution capture are you trying? IMX060 is 12MP which can not be supported from an 8MP sensor. Ensure that image capture resolution passed from HLOS is <= 8MP

    sensor drivers need to have different CSI, ISP and sensor settings for preview and capture modes. Please make sure that you have made necessary modifications for all the parameters in the sensor driver. 

    There are 2 parts to this problem -

    1, sensor mode + CSI settings

    2. ISP+JPEG Processing pipeline on OMAP

    The second one is easy to validate. You can keep the sensor in preview mode settings and use those settings for capture. Make sure that capture resolution is set <= sensor output resolution. For e.g. if you use 2x2 binning sensor resolution is 2MP.

    Once this is done you can define a full resolution mode and see if CSI I/O is able to grab the image from the sensor before processing it in ISP.

    Once this is working

  • In reply to Mayank Mangla:

    In fact, Capture and Preview mode use the same setting for 1600x1200 resolution, but only can preview,failed to capture.I also modified from OV5640 camera, but result is the same.

    I guess the problem perhaps about camera dcc binary, but I don't know how to generate dcc binary for camera.

  • In reply to Ray Tang:

    if you are judging by the logs, DCC errors you are seeing are harmless.

  • In reply to Mayank Mangla:

    [ 50.827] [ERR=70998] src/new_csi_MSP.c:[450]:Default complex IO configuration for CSI:0


    [ 50.827] [ERR=70999] src/csi2rx_api.c:[502]:number = 0, imagebuf = @00000000

  • In reply to Ray Tang:

    the logs show imagebuf equal zero, the imagebuf address sure be a none zero value when capture sucessfully.why the imagebuf address equal zero?

  • In reply to Ray Tang:

    Probably memory allocation is failing. I will be happy to review your driver changes. If possible, please share your code through your  TI representative. Do not attach code on this forum because Ducati code is not opensource.

  • In reply to Mayank Mangla:

    I tested nearly the same code and resolution for OV8825 and  OV2655  and OV5640,OV2655 and OV5640 camera could capture successfully. OV8825's difference is only native register setting and  OV8825_desc.c setting for sensor type to  SENSOR_TYPE_BAYER_RAW10 COLPTN_BGGR. Any idea?

    The ducati version is Linux_27.IS.1_Ducati which I used.

    How to share code through you TI representative?

  • In reply to Ray Tang:

    when I replaced first camera definition in the file of camera_descriptor.c, swap OV2655 to first camera and OV8825 to second camera. after this swap ducati generate error information on debug message as below:

    [ 7.515] [t=0x0be85ecc] xdc.runtime.Memory: ERROR: line 52: out of memory: heap=0x8511f770, size=1143172
    [ 7.516] xdc.runtime.Memory: line 52: out of memory: heap=0x8511f770, size=1143172
    [ 7.526] [t=0x0c264bc6] xdc.runtime.Memory: ERROR: line 52: out of memory: heap=0x8511f770, size=1143172
    [ 7.526] xdc.runtime.Memory: line 52: out of memory: heap=0x8511f770, size=1143172
    [ 7.536] [t=0x0c63400a] xdc.runtime.Memory: ERROR: line 52: out of memory: heap=0x8511f770, size=1143172
    [ 7.536] xdc.runtime.Memory: line 52: out of memory: heap=0x8511f770, size=1143172
    [ 7.546] [t=0x0ca05496] xdc.runtime.Memory: ERROR: line 52: out of memory: heap=0x8511f770, size=1143172
    [ 7.546] xdc.runtime.Memory: line 52: out of memory: heap=0x8511f770, size=1143172

    how to resolve above error?

  • In reply to Ray Tang:

    what is the native resolution defined for these sensors in xxxx_defs.h? 

  • In reply to Mayank Mangla:

    All defined 1600x1200 resolution in xxxx_defs.h

    #define OVxxxx_ACTIVE_PIXELS_H 1600 
    #define OVxxxx_ACTIVE_PIXELS_V 1200 

    #define OVxxxx_NATIVE_SIZE_H 1600 
    #define OVxxxx_NATIVE_SIZE_V 1200