iMX8m Mipi CSI - Base address switching Change Err.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

iMX8m Mipi CSI - Base address switching Change Err.

1,835 Views
pranesh
Contributor I

We are trying to integrate Sony IMX412 camera sensor for iMX8m platform. IMX412 is a Bayer sensor and it is configured as RAW10 mode, 1280x720 15fps 2 lanes, 300Mbps/lane setting. The sensor was properly configured as per the settings. Our Linux BSP version is 4.9.51-imx-ga523a59977a6 ("coral/release-chef" branch). We changed MIPI receiver clock setting into assigned-clock-rates = <266000000>, <400000000>, <66000000>. Refer below.

mipi_csi_1: mipi_csi1@30a70000 {
compatible = "fsl,mxc-mipi-csi2_yav";
reg = <0x0 0x30a70000 0x0 0x1000>; /* MIPI CSI1 Controller base addr */
interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk IMX8MQ_CLK_DUMMY>,
<&clk IMX8MQ_CLK_CSI1_CORE_DIV>,
<&clk IMX8MQ_CLK_CSI1_ESC_DIV>,
<&clk IMX8MQ_CLK_CSI1_PHY_REF_DIV>;
clock-names = "clk_apb", "clk_core", "clk_esc", "clk_pxl";
assigned-clocks = <&clk IMX8MQ_CLK_CSI1_CORE_DIV>,
<&clk IMX8MQ_CLK_CSI1_PHY_REF_DIV>,
<&clk IMX8MQ_CLK_CSI1_ESC_DIV>;
assigned-clock-rates = <266000000>, <400000000>, <66000000>; 
power-domains = <&mipi_csi1_pd>;
csis-phy-reset = <&src 0x4c 7>;
phy-gpr = <&gpr 0x88>;
status = "disabled";
};

We used Gstreamer for video streaming but it was not rendering due to Base address switching error.

We have a few questions. @Tom Zheng igorpadykov

1. What are the scenarios for this "Base address switching Change Err."? and How to Solve this issue?

2. I disabled this Base switch address in mx6s_capture.c then I was not getting the proper image(Refer attached picture).

0 Kudos
Reply
1 Reply

1,439 Views
igorpadykov
NXP Employee
NXP Employee

Hi Pranesh

one can try with latest L4.19.35 linux  Documentation

linux-imx - i.MX Linux kernel 

and check Fixing 'base address switching Change Err' which occurs randomly 

"Base address switching Change Err" happens when frame switching occurs before DMA complete to transfer the data. This base address switch is used only when receiving interlaced data (like the signals from TV decoders).

Reason may be that camera uses interlaced format and driver is not setting correctly the video format.

One can refer to ov5640_v3.c :  mf->field = V4L2_FIELD_NONE; So driver should be set to V4L2_FIELD_INTERLACED.

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
Reply