您好。
我们正在使用 Luckfox Aura / RV1126B,摄像头传感器是 Sony IMX415,4-lane MIPI CSI-2。
默认模式可以正常工作:
- 3864x2192
- RAW10
- NO_HDR
- 30 fps
- MIPI data rate: about 892 Mbps/lane
- xvclk: 37.125 MHz
- 没有 MIPI CSI-2 错误
现在我们想启用 IMX415 的 WDR/HDR 模式。为此需要更高的 MIPI data rate。我们先尝试 NO_HDR 高速模式,用来确认 RV1126B 的 CSI2 D-PHY 是否可以稳定接收高速数据。
测试过的高速配置:
- 3864x2192
- RAW10
- NO_HDR
- 60 fps 配置
- 4-lane MIPI CSI-2
- xvclk: 27 MHz
- MIPI data rate: about 1486 Mbps/lane
但是在 1486 Mbps/lane 下无法正常接收。
当 RX D-PHY calibration 开启时,kernel log 如下:
[ 24.534592] rockchip-csi2-dphy0: dphy0, data_rate_mbps 1486
[ 24.534614] rockchip-csi2-dphy csi2-dphy0: enable dphy calibration: data_rate_mbps=1486 lanes=4 lane_mode=1 phy_index=0
[ 24.534629] (0x21c00000)MIPI_CSI2 ERR2:0xf0000
[ 24.534642] rockchip-csi2-dphy csi2-dphy0: csi2_dphy_s_stream stream on:1, dphy0, ret 0
[ 24.534654] imx415 4-0037: s_stream: 1. 3864x2192, hdr: 0, bpp: 10
[ 24.620888] imx415 4-0037: set vblank 0x3a vts 2250
[ 24.623615] imx415 4-0037: timing readback: hmax=0x0226 vts=0x008ca cur_vts=2250 max_fps=10000/600000
[ 24.653253] (0x21c00000)MIPI_CSI2 ERR1:0xf (sot sync,lane: 0 1 2 3)
[ 25.535146] (0x21c00000)MIPI_CSI2 ERR2:0x10000000
[ 25.653751] (0x21c00000)MIPI_CSI2 ERR1:0xc (sot sync,lane: 2 3)
当 RX D-PHY calibration 关闭时,错误类型会变化:
[ 164.632677] rockchip-csi2-dphy0: dphy0, data_rate_mbps 1486
[ 164.632703] rockchip-csi2-dphy csi2-dphy0: csi2_dphy_s_stream stream on:1, dphy0, ret 0
[ 164.632715] imx415 4-0037: s_stream: 1. 3864x2192, hdr: 0, bpp: 10
[ 164.724056] imx415 4-0037: set vblank 0x3a vts 2250
[ 164.726780] imx415 4-0037: timing readback: hmax=0x0226 vts=0x008ca cur_vts=2250 max_fps=10000/600000
[ 164.756535] (0x21c00000)MIPI_CSI2 ERR1:0x10000000 (ecc2)
[ 164.756558] (0x21c00000)MIPI_CSI2 ERR2:0x10000000
[ 164.756809] rkcif-mipi-lvds: Warning: vblank need >= 1000us if isp work in online, cur 429 us
[ 165.756540] (0x21c00000)MIPI_CSI2 ERR1:0x10000000 (ecc2)
[ 165.756567] (0x21c00000)MIPI_CSI2 ERR2:0x10000100 (ecc,vc: 0)
[ 166.756557] (0x21c00000)MIPI_CSI2 ERR1:0x440 (fs/fe mis,vc: 2) (f_seq,vc: 2)
[ 166.756584] (0x21c00000)MIPI_CSI2 ERR2:0x10004500 (ecc,vc: 0 2) (err id,vc: 2)
也就是说:
- 开启 calibration 时主要是 SOT sync error。
- 关闭 calibration 时主要是 ECC / frame sequence / virtual channel 错误。
- 这说明 D-PHY 接收端配置可能不正确。
另外我们测试了一个 1440 Mbps/lane 配置:
- xvclk: 72 MHz
- MIPI data rate: 1440 Mbps/lane
- 3864x2192 RAW10
这个模式 MIPI 可以启动,没有持续的 SOT/ECC 错误,但是实际帧率大约只有 29 fps,不是我们需要的高速/WDR模式。
目前 RV1126B SDK 中的 D-PHY 驱动是:
drivers/phy/rockchip/phy-rockchip-csi2-dphy-hw.c
RV1126B 使用的 hsfreq table 是:
{1399, 0x23}, {1599, 0x2d}, {1799, 0x32}
所以 1486 Mbps/lane 会选择 hsfreq = 0x2d。
请问:
1. RV1126B CSI2 D-PHY 是否支持 IMX415 4-lane 1486 Mbps/lane 或更高速度?
2. 1486 Mbps/lane 时应该使用什么 hsfreq / ths_settle 参数?
3. RX D-PHY calibration 在 1486 Mbps/lane 时应该开启还是关闭?
4. 是否有 RV1126B + IMX415 WDR/HDR 的参考 device tree、sensor register table 或 kernel patch?
5. RV1126B 的 CSI2 D-PHY 是否还有其他需要配置的寄存器,例如 hs_prepare / hs_zero / hs_trail / skew calibration 等?
谢谢。

