[IMX8] CSI Fencing Timeout

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

[IMX8] CSI Fencing Timeout

6,370 次查看
khaledbalbaa
Contributor I

In the APIs MIPIDeinit and MIPIEnable I remarked that we are counting from 0 to 10,000,000 after  setting the register PHY_FENCE_CTRL waiting for the register PHY_FENCE_STATUS to be set to the same value as the CTRL register

As we know, this register is responsible for the virtual CSI channels and in our case we would like to not have any virtual channels, so we are setting the CTRL register to 0x0F and waiting for the status register to be also 0x0F, but we are waiting to the end of the timeout and the register still the same (0x00)

Questions:

1. Am I using the correct value to set the CSI with no virtual channel?

2. Why am I receiving a timeout?

3. Can the status register take this much time between the CTRL register write and the status register setting? Or this timeout could be reduced?

0 项奖励
回复
9 回复数

6,344 次查看
khaledbalbaa
Contributor I

Sorry forgot to mention it

We are working on IMX8DX processor

0 项奖励
回复

6,332 次查看
khaledbalbaa
Contributor I

@joanxie I am working with I.MX8 DX processor as mentioned

0 项奖励
回复

6,266 次查看
joanxie
NXP TechSupport
NXP TechSupport

sorry for missing this message, how about now?

 

0 项奖励
回复

6,257 次查看
khaledbalbaa
Contributor I

@joanxie 

Still having the same question actually

 

The register I am asking about is named STREAM_FENCING_CONTROL, offset 0x48 in CSI registers

0 项奖励
回复

6,230 次查看
joanxie
NXP TechSupport
NXP TechSupport

got the reply from the expert team:

"The stream_fencing is used to tell the MIPI CSI2 stop data transfer to pixel link.

For example, software can write "Fence VC0" to STREAM_FENCING_CONTROL register, then after MIPI CSI2 stops to transfer VC0 data to pixel link, the status "VC0 is fenced" can be read from STREAM_FENCING_STATUS register.

 

MIPI CSI2 reset can recover it.

"

 

0 项奖励
回复

6,225 次查看
khaledbalbaa
Contributor I

Hello @joanxie 

Thanks for the reply, but I think you have missed some of my question

My question was:

In the APIs MIPIDeinit and MIPIEnable I remarked that we are counting from 0 to 10,000,000 after  setting the register PHY_FENCE_CTRL waiting for the register PHY_FENCE_STATUS to be set to the same value as the CTRL register

As we know, this register is responsible for the virtual CSI channels and in our case we would like to not have any virtual channels, so we are setting the CTRL register to 0x0F and waiting for the status register to be also 0x0F, but we are waiting to the end of the timeout and the register still the same (0x00)

Questions:

1. Am I using the correct value to set the CSI with no virtual channel?

2. Why am I receiving a timeout?

3. Can the status register take this much time between the CTRL register write and the status register setting? Or this timeout could be reduced?

0 项奖励
回复

6,172 次查看
joanxie
NXP TechSupport
NXP TechSupport

I found another register named "Ignore Virtual Channel Register", the default is 0, which mean can accept all of VC, how about setting this to 1 since you don't want o use any VC

 

0 项奖励
回复

6,337 次查看
joanxie
NXP TechSupport
NXP TechSupport

what CTRL register do you mean? PHY_FENCE_CTRL?? I couldn't find this register from the reference manual, could you tell me how you decide the value of these registers?

0 项奖励
回复

6,348 次查看
joanxie
NXP TechSupport
NXP TechSupport

what processor are you talking about? imx8qm?

0 项奖励
回复