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.

TDA4VE-Q1: How to reset CSIRX

Part Number: TDA4VE-Q1
Other Parts Discussed in Thread: TDA4VM

Tool/software:

Hi, TI experts,

We want to reset csirx on our tda4ve board by following below steps:

CameraFxns_4_to_1.streamOff(0);
appLogWaitMsecs(1);

/* Stop streams only if this is last active Virtual context */
*((volatile unsigned int *)(0x04504100)) = 0x02;
/* Stop all virtual channel */

/* VC0 */
regval = *((volatile unsigned int *)(0x04500020));
*((volatile unsigned int *)(0x04500020)) = (regval & 0x7FFFFFFF);
/* VC1 */
regval = *((volatile unsigned int *)(0x04500040));
*((volatile unsigned int *)(0x04500040)) = (regval & 0x7FFFFFFF);/* VC2 */
regval = *((volatile unsigned int *)(0x04500060));
*((volatile unsigned int *)(0x04500060)) = (regval & 0x7FFFFFFF);

/* VC3 */
regval = *((volatile unsigned int *)(0x04500080));
*((volatile unsigned int *)(0x04500080)) = (regval & 0x7FFFFFFF);
appLogWaitMsecs(10);

/* assert pixel interface reset */
regval = *((volatile unsigned int *)(0x04500010));
*((volatile unsigned int *)(0x04500010)) = (regval & 0xFFFFFFFE);

/* reset streams before configuration */
*((volatile unsigned int *)(0x04504100)) = 0x10;

regval = *((volatile unsigned int *)(0x04504104));
/* Wait for stream to become IDLE */
while (((regval & (1 << 8))!= 0x0U) && ((regval & (0xF << 4)) != 0x0U))
{
regval = *((volatile unsigned int *)(0x04504104));
}

/* Enable DMA context for PSIL thread */
/* VC0 */
regval = *((volatile unsigned int *)(0x04500020));
*((volatile unsigned int *)(0x04500020)) = (regval | 0x80000000);
/* VC1 */
regval = *((volatile unsigned int *)(0x04500040));
*((volatile unsigned int *)(0x04500040)) = (regval | 0x80000000);
/* VC2 */
regval = *((volatile unsigned int *)(0x04500060));
*((volatile unsigned int *)(0x04500060)) = (regval | 0x80000000);

/* VC3 */
regval = *((volatile unsigned int *)(0x04500080));
*((volatile unsigned int *)(0x04500080)) = (regval | 0x80000000);

/* start streams */
*((volatile unsigned int *)(0x04504100)) = 0x01;
appLogWaitMsecs(10);

CameraFxns_4_to_1.streamOn(0);

buy afther doing above steps, the streams can not be recover.


can you help to find what was wrong?  

log was attached below:

root@j721s2-evm:/# ./teSuccess to init SerDes!, cost time: 3349 ms
st-csirx-reset.sh ----------frame rate: 0.00

Installing i2c module...
[   22.597404] i2c_dev: i2c /dev entries driver

may be you want to run:
detect: i2cdetect -y -r 0
read:   i2ctransfer -f -y 0 w2@0x42 0x01 0xfc r1
write:  i2ctransfer -f -y 0 w3@0x42 0x00 0x01 0x14

i2c_dev                20480  0
/dev/mem opened.
Memory mapped at address 0xffff99f82000.
Read at address  0x04504100 (0xffff99f82100): 0x00000001
Write at address 0x04504100 (0xffff99f82100): 0x00000002, readback 0x00000002
/dev/mem opened.
Memory mapped at address 0xffff80041000.
Read at address  0x04500020 (0xffff80041020): 0x8C00001E
Write at address 0x04500020 (0xffff80041020): 0x0C00001E, readback 0x0C00001E
Original value: 0x8C00001E
New value: 0x0C00001E
/dev/mem opened.
Memory mapped at address 0xffff894b9000.
Read at address  0x04500040 (0xffff894b9040): 0x8C00005E
Write at address 0x04500040 (0xffff894b9040): 0x0C00005E, readback 0x0C00005E
Original value: 0x8C00005E
New value: 0x0C00005E
/dev/mem opened.
Memory mapped at address 0xffffa92e2000.
Read at address  0x04500060 (0xffffa92e2060): 0x8C00009E
Write at address 0x04500060 (0xffffa92e2060): 0x0C00009E, readback 0x0C00009E
Original value: 0x8C00009E
New value: 0x0C00009E
/dev/mem opened.
Memory mapped at address 0xffff99678000.
Read at address  0x04500080 (0xffff99678080): 0x8C0000DE
Write at address 0x04500080 (0xffff99678080): 0x0C0000DE, readback 0x0C0000DE
Original value: 0x8C0000DE
New value: 0x0C0000DE
/dev/mem opened.
Memory mapped at address 0xffffa8d78000.
Read at address  0x04504100 (0xffffa8d78100): 0x00000002
Write at address 0x04504100 (0xffffa8d78100): 0x00000010, readback 0x00000010
/dev/mem opened.
Memory mapped at address 0xffff82161000.
Read at address  0x04500010 (0xffff82161010): 0x00000E01
Write at address 0x04500010 (0xffff82161010): 0x00000E00, readback 0x00000E00
Original value: 0x00000E01
New value: 0x00000E00
���ڵȴ���׼����λ
----------frame rate: 11.24
/dev/mem opened.
Memory mapped at address 0xffffa1113000.
Read at address  0x04500020 (0xffffa1113020): 0x0C00001E
Write at address 0x04500020 (0xffffa1113020): 0x8C00001E, readback 0x8C00001E
Original value: 0x0C00001E
New value: 0x8C00001E
/dev/mem opened.
Memory mapped at address 0xffff8bf1c000.
Read at address  0x04500040 (0xffff8bf1c040): 0x0C00005E
Write at address 0x04500040 (0xffff8bf1c040): 0x8C00005E, readback 0x8C00005E
Original value: 0x0C00005E
New value: 0x8C00005E
/dev/mem opened.
Memory mapped at address 0xffffa1a97000.
Read at address  0x04500060 (0xffffa1a97060): 0x0C00009E
Write at address 0x04500060 (0xffffa1a97060): 0x8C00009E, readback 0x8C00009E
Original value: 0x0C00009E
New value: 0x8C00009E
/dev/mem opened.
Memory mapped at address 0xffffbbb4e000.
Read at address  0x04500080 (0xffffbbb4e080): 0x0C0000DE
Write at address 0x04500080 (0xffffbbb4e080): 0x8C0000DE, readback 0x8C0000DE
Original value: 0x0C0000DE
New value: 0x8C0000DE
/dev/mem opened.
Memory mapped at address 0xffffac850000.
Read at address  0x04504100 (0xffffac850100): 0x00000000
Write at address 0x04504100 (0xffffac850100): 0x00000001, readback 0x00000001
root@j721s2-evm:/#
root@j721s2-evm:/#
root@j721s2-evm:/#

Our SDK version is 9.2

Thanks