专栏底层软件mipi rx0通过serdes接入两个800M 的ovx8b摄像头,出现丢帧问题

mipi rx0通过serdes接入两个800M 的ovx8b摄像头,出现丢帧问题

已解决
szc2024-12-24
207
48
  1. 硬件获取渠道及型号:立昇智能科技提供的J5 SOM EDK
  2.  系统镜像版本:root@j5dvb:~# cat /etc/versionmipi@mipi debug 20231219-124328
  3.  问题模块:vpm

  4. 问题描述:       为了避开敏感词汇, ov x 8b 中间加了空格

J5 mipi rx0通过serdes接入两个800M 的ovx8b摄像头,格式是3840 * 2160,30fps, 点亮两个摄像头,出现丢帧问题。

单独点亮一个800M的摄像头,可以正常出图,没有丢帧问题。

修改fps为28后, 点亮两个摄像头后,没有丢帧问题。
想问下  J5 mipi rx0 的最大接收速率是多少,这个问题是否是由于 mipi rx0  接收速率限制导致?

mipi rx3 cimdma 的最大接收速率是多少? 

J5使用的是非连续时钟,当dphy速率超过1.5g,是否需要支持deskew?

 

 

出错日志如下:

[ 1386.680149] [diag_netlink_snd_msg:1221]message send, module:36, event:14, status:3, fchm_err_code:204 [ 1386.680160] [diag_netlink_snd_msg:1224]checksum = 946686638 [ 1386.682225] [A][time_3: 946686185 s, 192221 us] A: mback_msg: 36-14-2 204 [ 1386.687110] [A][time_1 :946686185 s, 197109 us], ncf = 136! [ 1386.687115] vps mipi_host0: irq status 0x4 [ 1386.687124] vps mipi_host0: bndry_frm_fatal: 0x2 [ 1386.687165] vps mipi_host0 stl: int fatal 4(bndry_frm_fatal):0x2 error [ 1386.687250] [diag_handle_cb, 884](warn): module_id = 43, event_id = 18 don't need handle! [ 1386.687255] (Diag): receive HW event! [ 1386.687257] [A][time_2 :946686185 s, 197256 us] A: Rcv_msg: 43-18-2 136, snd_event_num:109, handle_event_num:107 [ 1386.687271] [fchm_ncf_irq_handler, 105]NON-Critical error happened, module_name:mipihost0, ncf = 136! [ 1386.687282] [diag_netlink_snd_msg:1221]message send, module:43, event:18, status:3, fchm_err_code:136 [ 1386.687292] [diag_netlink_snd_msg:1224]checksum = 946686594 [ 1386.689261] [A][time_3: 946686185 s, 199257 us] A: mback_msg: 43-18-2 136 [ 1386.699838] pym_check_exit_state cnt 9 pym->irq_status = 4 [ 1386.713304] [A][time_1 :946686185 s, 223302 us], ncf = 204! [ 1386.713314] cim ipi0 height error [ 1386.713321] [S0] vio_push_drop_info too many drop info used, transfer from request queue [ 1386.713325] [S0] vio_push_drop_info frame id 33 [ 1386.713346] [CIM stl]:cim_size_err_check ipi0 size error

附件:
底层软件
征程5
+1
评论4
0/1000
  • 费小财
    Lv.5

    你这个看着是size error,是不是配置错误的

    2024-12-24
    0
    42
    • szc回复费小财:

      不是配置的问题。我不修改配置,只是替换为输出28fps的 摄像头驱动 ,就可以正常出图了

      2024-12-24
      0
    • szc回复szc:
      上传了配置文件,在压缩文件 ovx8b_config.zip 。该Des和nvidia平台mipi dphy接口对接,速率可以达到2.4G。 nvidia平台 在dphy速率超过1.5G后,需要使用deskew功能。不知道J5平台是否支持
      2024-12-24
      0
    • 费小财回复szc:

      也需要的,默认代码是支持的

      2024-12-25
      0
    • 费小财回复szc:

      hb_mipi_ovx8b_raw12_30fps_2160P.json" 这个json也发出来看下

      2024-12-25
      0
    • 费小财回复szc:
      "deserial_0":{ "deserial_name":"max9296", "deserial_addr":"0x6f", "bus_type":0, "bus_num":1, "power_mode":0, "gpio_pin":[453,309], "lane_speed":2500, "gpio_level":[0,0] },

      加一个这个 "lane_speed":2500
      2024-12-25
      0
    • szc回复费小财:

      加上了,但是没有什么效果。有什么办法可以看deskew功能是否生效吗。

      2024-12-27
      0
    • 费小财回复szc:

      加了lane speed,你读下寄存器看下配置有没有问题的

      2024-12-27
      0
    • szc回复费小财:
      lane speed 配置的是对的。发现解串器发送deskew消息,地平线soc的dphy芯片会有下面的报错信息。 地平线的dphy芯片对deskew消息有什么要求吗,譬如initial calibration,校准长度之类的。
      vps mipi_host0: irq status 0x500bf vps mipi_host0: phy_fatal: 0xf vps mipi_host0: pkt_fatal: 0x1 vps mipi_host0: bndry_frm_fatal: 0x5 vps mipi_host0: seq_frm_fatal: 0x1 vps mipi_host0: crc_frm_fatal: 0x1 vps mipi_host0: pld_crc_fatal: 0x1 vps mipi_host0: ecc_corrected: 0x5 vps mipi_host0: phy: 0x2 vps mipi_host0: ipi: 0x2 vps mipi_host0: irq status 0x500bf vps mipi_host0: phy_fatal: 0xf vps mipi_host0: pkt_fatal: 0x1 vps mipi_host0: bndry_frm_fatal: 0x5 vps mipi_host0: seq_frm_fatal: 0x1 vps mipi_host0: crc_frm_fatal: 0x1 vps mipi_host0: pld_crc_fatal: 0x1 vps mipi_host0: ecc_corrected: 0x5 vps mipi_host0: phy: 0x2 vps mipi_host0: ipi: 0x2 --> reset [S0] vio_push_drop_info frame id 114 cim_set_mipi_ipi_reset: mipi rx0 vc_mask 0x1 vps mipi_host0 stl: int fatal 1(phy_fatal):0xf error vps mipi_host0 stl: event 10:0xf01 code=152 ignored vps mipi_host0 stl: event 10:0x102 code=152 ignored vps mipi_host0: irq status 0x500a2 vps mipi_host0 stl: event 10:0x504 code=152 ignored vps mipi_host0: pkt_fatal: 0x1 vps mipi_host0 stl: event 10:0x105 code=152 ignored vps mipi_host0: pld_crc_fatal: 0x1 vps mipi_host0: ecc_corrected: 0x1 vps mipi_host0 stl: event 10:0x106 code=152 ignored vps mipi_host0: phy: 0x2 vps mipi_host0 stl: event 10:0x107 code=152 ignored vps mipi_host0: ipi: 0x2 reset [S0] vio_push_drop_info frame id 114 cim_set_mipi_ipi_reset: mipi rx0 vc_mask 0x1 vps mipi_host0 stl: int fatal 1(phy_fatal):0xf error vps mipi_host0 stl: event 10:0xf01 code=152 ignored vps mipi_host0 stl: event 10:0x102 code=152 ignored vps mipi_host0: irq status 0x500a2 vps mipi_host0 stl: event 10:0x504 code=152 ignored vps mipi_host0: pkt_fatal: 0x1 vps mipi_host0 stl: event 10:0x105 code=152 ignored vps mipi_host0: pld_crc_fatal: 0x1 vps mipi_host0: ecc_corrected: 0x1 vps mipi_host0 stl: event 10:0x106 code=152 ignored vps mipi_host0: phy: 0x2 vps mipi_host0 stl: event 10:0x107 code=152 ignored vps mipi_host0: ipi: 0x2 --> reset cim_set_mipi_ipi_reset: mipi rx0 vc_mask 0x1
      2024-12-30
      0
    • szc:
      [ 1543.357384] cim_set_mipi_ipi_reset: mipi rx0 vc_mask 0x1 [ 1543.357383] vps mipi_host0 stl: event 10:0x509 code=152 ignored [ 1543.357392] vps mipi_host0 stl: event 10:0x20a code=152 ignored [ 1543.357400] vps mipi_host0 stl: event 10:0x20d code=152 ignored [ 1543.357405] [fchm_ncf_irq_handler, 105]NON-Critical error happened, module_name:mipihost0, ncf = 152! [ 1543.422191] [A][time_1 :946686341 s, 946808 us], ncf = 204! [ 1543.422201] cim ipi0 height error [ 1543.422211] [S0] vio_push_drop_info frame id 115 [ 1543.422239] [CIM stl]:cim_size_err_check ipi0 size error
      2024-12-30
      0
    • 费小财回复szc:

      这个错误还是配置的错误,还是要确定lane speed 配置,最好抓一份完整的logcat日志看看

      2024-12-30
      0
    • 费小财回复szc:

      ( 2120): [4787.585449][VIN]:[hb_vin_board_parse_cfg][738]deserial_num = 1 I/ ( 2120): [4787.585449][VIN]:[hb_vin_deserial_parse_cfg][262]deserial_index 0 bus_type = 0 I/ ( 2120): [4787.585449][VIN]:[hb_vin_deserial_parse_cfg][267]deserial_index 0 bus_num = 1 I/ ( 2120): [4787.585449][VIN]:[hb_vin_deserial_parse_cfg][278]deserial_index 0 serial_addr = 0x6f I/ ( 2120): [4787.585449][VIN]:[hb_vin_deserial_parse_cfg][283]deserial_index 0 deserial_name = artemis I/ ( 2120): [4787.585449][VIN]:[hb_vin_deserial_parse_cfg][299]deserial_index 0 power_mode = 0 I/ ( 2120): [4787.585449][VIN]:[hb_vin_deserial_parse_cfg][310]array_index 0 gpio_pin 453 I/ ( 2120): [4787.585449][VIN]:[hb_vin_deserial_parse_cfg][310]array_index 1 gpio_pin 309 I/ ( 2120): [4787.585449][VIN]:[hb_vin_deserial_parse_cfg][322]deserial_index 0 array_index 0 gpio_level 0 I/ ( 2120): [4787.585449][VIN]:[hb_vin_deserial_parse_cfg][322]deserial_index 0 array_index 1 gpio_level 0

      2024-12-30
      0
    • 费小财回复szc:

      lane speed还是没有配置啊

      2024-12-30
      0
    • szc回复费小财:

      解串器是通过ko驱动文件进行配置的。这个配置在英伟达平台,可以跑到2.4g。

      2024-12-30
      0
    • 费小财回复szc:

      我们平台要通过那个参数的,你加下参数应该就好了

      2024-12-30
      0
    • szc回复费小财:
      不好意思,前面跑错用例了。现在是配置了 "lane_speed":2500 ,配置了2个camera。但是我在logcat中没有看到lane_speed 的打印,不知道怎么看lane_speed是否生效了。或者内核代码是哪个文件,我看下代码

      "power_mode":0, "gpio_pin":[453,309], "lane_speed":2500, "gpio_level":[0,0]
      2024-12-30
      0
    • szc:

      我更新了log压缩文件,是 deskew2Camera3.zip

      2024-12-30
      0
    • szc回复szc:

      我看了下我得到的内核代码,在 hb_vin_deserial_parse_cfg函数中没有解析 lane_speed的代码,hb_j5dev.json中配置了也不会生效。

      2024-12-30
      0
    • 费小财回复szc:

      不是内核解析的,hal上层解析传给底层的,你不配置就会用默认值,默认值是跑不了2个8M的

      2024-12-30
      0
    • szc回复费小财:
      哦,那log中怎么看是否是生效呢。hal上层解析是通过脚本解析的吗。
      我执行的命令如下,不知道会不会解析lane_speed
      sh vio_test_case.sh quad2_sen_cim_isp0_pym0_4k_ovx8b_test

      vio_test_case.sh 文件中的命令是

      elif test "$1" == "quad2_sen_cim_isp0_pym0_4k_ovx8b_test"; then echo "========= Run $1" ${COMMON_DIR}vpm_gtest -v "/userdata/app/bin/vps/vpm/cfg/quad2_sen_cim_isp0_pym0_4k_ovx8b_test/vpm_config.json" -e 0 -r 1000 -S 1 -c "/userdata/app/bin/vps/vpm/cfg/quad2_sen_cim_isp0_pym0_4k_ovx8b_test/hb_j5dev.json" -M 3\ -x ${cam_rstart} -X ${vio_rstart} \ --gtest_filter=VpmScenarioTest.multi_streams_pym \ # --gtest_output=xml:${OUTPUT_DIR_PREFIX}output/vps_$1_test_result.xml
      2024-12-30
      0
    • 费小财回复szc:

      就我上面的粘贴的日志,如果配置了就会有对应的打印

      2024-12-31
      0
    • szc回复费小财:

      具体打印内容是什么呢。现在配置了,但是没有看到打印。

      2024-12-31
      0
    • 费小财回复szc:
      [4787.585449][VIN]:[hb_vin_board_parse_cfg][738]deserial_num = 1 I/ ( 2120): [4787.585449][VIN]:[hb_vin_deserial_parse_cfg][262]deserial_index 0 bus_type = 0 I/ ( 2120): [4787.585449][VIN]:[hb_vin_deserial_parse_cfg][267]deserial_index 0 bus_num = 1 I/ ( 2120): [4787.585449][VIN]:[hb_vin_deserial_parse_cfg][278]deserial_index 0 serial_addr = 0x6f I/ ( 2120):
      [4787.585449][VIN]:[hb_vin_deserial_parse_cfg][283]deserial_index 0 deserial_name = artemis I/ ( 2120):
      [4787.585449][VIN]:[hb_vin_deserial_parse_cfg][299]deserial_index 0 power_mode = 0 I/ ( 2120):
      [4787.585449][VIN]:[hb_vin_deserial_parse_cfg][310]array_index 0 gpio_pin 453 I/ ( 2120): [4787.585449][VIN]:[hb_vin_deserial_parse_cfg][310]array_index 1 gpio_pin 309 I/ ( 2120): [4787.585449][VIN]:[hb_vin_deserial_parse_cfg][322]deserial_index 0 array_index 0 gpio_level 0 I/ ( 2120):
      [4787.585449][VIN]:[hb_vin_deserial_parse_cfg][322]deserial_index 0 array_index 1 gpio_level 0
      你就找着一段,有lane speed的打印就说明是加上了吧,没有就通过日志的json看下是不是改对了文件
      2024-12-31
      0
    • szc回复费小财:
      hb_vin_deserial_parse_cfg 这个函数中没有解析 lane speed ,即使 json 文件配置了 lane speed ,也不会有打印的和起作用的。下面是这个函数的截图
      2024-12-31
      0
    • szc:
      2024-12-31
      0
    • 费小财回复szc:

      你有源码的话,那你搜搜看lane_speed的赋值,应该是有的,因为我们这边的json我看了下是这么配置的

      2024-12-31
      0
    • szc回复费小财:
      我只在mlx5_ifc.h搜到下面两处和 lane_speed 相关的变量,但是没有在C文件使用,只是定义了变量。你能看下你的内核代码中哪里对 lane_speed 进行了赋值。会不会我们的版本不一样。我的版本是 立昇智能科技提供的J5 SOM EDK

      struct mlx5_ifc_plpc_reg_bits {
      u8 reserved_at_0[0x4];
      u8 profile_id[0xc];
      u8 reserved_at_10[0x4];
      u8 proto_mask[0x4];
      u8 reserved_at_18[0x8];
      u8 reserved_at_20[0x10];
      u8 lane_speed[0x10];



      struct mlx5_ifc_slrg_reg_bits {
      u8 status[0x4];
      u8 version[0x4];
      u8 local_port[0x8];
      u8 pnat[0x2];
      u8 reserved_at_12[0x2];
      u8 lane[0x4];
      u8 reserved_at_18[0x8];
      u8 time_to_link_up[0x10];
      u8 reserved_at_30[0xc];
      u8 grade_lane_speed[0x4];
      2024-12-31
      0
    • szc回复szc:

      有空帮忙答复下吧

      2025-01-06
      0
    • 费小财回复szc:

      不是内核的,你上层代码没找到吗?我这边一下子找不到J5的源码了

      2025-01-06
      0
    • szc回复费小财:

      你指的上层代码是哪个目录中的代码呢。我在拿到的EDK SDK包 horizon-dev-J5-0810_release.tar.gz 中没有找到。

      2025-01-06
      0
    • 费小财回复szc:

      你不是都有这个函数吗,就在这个函数对应的文件夹里面去找找

      2025-01-06
      0
    • szc回复费小财:

      函数对应的文件夹中的代码也没有找到,搜了 cJSON_GetObjectItem 和hb_vin_mipi_host_parse_int 调用的代码,也没有找到lane_speed 。你帮忙找下吧。谢谢

      2025-01-06
      0
    • szc回复szc:

      有空帮忙看下J5的代码,lane_speed 这个真没有

      2025-01-07
      0
    • 费小财回复szc:

      hbre/camera/src/hb_vin_interface.c 能看到这个文件吗

      2025-01-07
      0
    • szc回复费小财:

      有这个文件,但是文件中没有lane_speed

      2025-01-08
      0
    • 费小财回复szc:
      node = CJSON_GetObjectItem(deserial_node, "lane_speeed");if(NULL != node) {g_board_cfg.deserial_info[deserial_index].lane_speed == (uint32_t)node->valueint;vin_dbg("deserial_index %d lane_speed = %d\n", deserrial_index,g_board_cfg.deserial_info[deserial_index].lane_speed); /* PRQA S ALL */ /* print api */nodecJSON_GetObjectItem(deserial_node, "deserial_name")

      没有这个?
      2025-01-08
      0
    • szc回复费小财:
      没有 lane_speed 代码, 如下的代码截图,deserial_name 之前解析的是 deserial_addr。你这个代码版本是多少?我能够从立昇那里获取到吗?
      2025-01-08
      0
    • 费小财回复szc:

      那你照着加一个应该就好了

      2025-01-08
      0
    • szc回复费小财:

      不行,缺的代码比较多, g_board_cfg.deserial_info 数据结构中 也没有定义 lane_speed

      2025-01-08
      0
    • 费小财回复szc:

      应该可以,2023.2.3.的版本加进去的

      2025-01-08
      0
    • szc回复费小财:

      我们的J5代码中没有 lane_speed 相关的代码。有什么渠道可以获取最新的J5代码吗

      2025-01-08
      0
    • 费小财回复szc:

      这个我就不知道了,我们是有对外发布版本的

      2025-01-08
      0
    • szc回复费小财:

      能帮忙问下,怎么获取对外发布的版本吗。

      2025-01-10
      0
  • zsy
    Lv.4

    先发下你的配置看看呗

    2024-12-24
    0
    0
  • zsy
    Lv.4

    看日志每一帧都报了 bndry_frm_fatal,bndry_frm_fatal为检测到不完整帧,FS FE不匹配

    2024-12-24
    0
    1
    • zsy回复zsy:

      J5 mipi rx0 rx3都是独立4lane,最大2.5Gbps/lane可以排查下是不是Des的速率问题

      2024-12-24
      0
  • 新手村
    Lv.4

    您好,J5 4路RX的速率限制都是一样的,都是2.5Gbps/lane,接入2个8M@30fps完全没问题

    2024-12-26
    0
    1
    • 新手村回复新手村:

      你这边用的serdes型号是什么?

      2024-12-26
      0