20251224给飞凌OK3588-C开发板适配Rockchip原厂的Android14系统时解决dwhdmi-rockchip fdea0000.hdmi: i2c read time out!
2025/12/24 21:07


缘起:给飞凌OK3588-C开发板适配Rockchip原厂的Buildroot【linux-6.1】后,需要配置ssh。
驱动调试的时候DEBUG口就足够了。最多再打开一个USB接口的adb功能。【有些时候需要多一个口^_】
但是产品给客户暴露的借口就是TF卡的卡槽和以太网接口了!【应用工程师需要的ssh功能】


想实测一下TF卡的读写速度。
4线USB2.0通过adb直接拿到电脑上的速度是:31.3 MB/s
写入TF卡的速度略微低于31.3 MB/s【大概为25.56MB/s】


需要实测开发板丝印ETH1芯片RTL8211F-CG的网速。
通过ifconfig确认为eth0。

需要使用ov5645的驱动框架来适配LVDS接口的105机芯。
按照以前的经验,首先关闭I2C的读写!
结果,肯定会出现某些地方遗漏的,只能通过编译器来检查问题了!


当你把荣品RD-RK3588开发板重新适配一把,就相当于从头做了一个项目:【荣品RD-RK3588开发板】。
当然,开发板的功能都是好的,你免除了调试的过程,也就没有解决相关硬件出错的经验/机会了!


1、给飞凌OK3588-C开发板适配Rockchip原厂的Android14系统时老打印错误:
[    3.654028][  T129] mpp_rkvenc2 fdbe0000.rkvenc-core: probing start
[    3.658095][  T129] mpp_rkvenc2 fdbe0000.rkvenc-core: bin=0
[    3.658279][  T129] mpp_rkvenc2 fdbe0000.rkvenc-core: leakage=13
[    3.658291][  T129] mpp_rkvenc2 fdbe0000.rkvenc-core: leakage-volt-sel=0
[    3.659216][  T129] mpp_rkvenc2 fdbe0000.rkvenc-core: avs=0
[    3.659236][  T129] mpp_rkvenc2 fdbe0000.rkvenc-core: l=-2147483648 h=2147483647 hyst=0 l_limit=0 h_limit=0 h_table=0
[    3.665663][  T129] mpp_rkvenc2 fdbe0000.rkvenc-core: attach ccu as core 1
[    3.665701][  T129] mpp_rkvenc2 fdbe0000.rkvenc-core: probing finish
[    3.665891][  T129] mpp_av1dec fdc70000.av1d: Adding to iommu group 14
[    3.666150][  T129] mpp_av1dec fdc70000.av1d: probing start
[    3.666367][  T129] mpp_av1dec fdc70000.av1d: probing finish
[    3.666579][  T129] rockchip-vop2 fdd90000.vop: Adding to iommu group 17
[    3.668125][  T129] rockchip-vop2 fdd90000.vop: [drm:vop2_bind] vp0 assign plane mask: Cluster0 | Esmart0[0x5], primary plane phy id: Esmart0[2]
[    3.668147][  T129] rockchip-vop2 fdd90000.vop: [drm:vop2_bind] vp1 assign plane mask: Cluster1 | Esmart1[0xa], primary plane phy id: Esmart1[3]
[    3.668159][  T129] rockchip-vop2 fdd90000.vop: [drm:vop2_bind] vp2 assign plane mask: Cluster2 | Esmart2[0x140], primary plane phy id: Esmart2[8]
[    3.668172][  T129] rockchip-vop2 fdd90000.vop: [drm:vop2_bind] vp3 assign plane mask: Cluster3 | Esmart3[0x280], primary plane phy id: Esmart3[9]
[    3.686326][  T129] rockchip-vop2 fdd90000.vop: bin=0
[    3.686534][  T129] rockchip-vop2 fdd90000.vop: leakage=40
[    3.686547][  T129] rockchip-vop2 fdd90000.vop: leakage-volt-sel=1
[    3.687061][  T129] rockchip-vop2 fdd90000.vop: avs=0
[    3.687142][  T129] rockchip-vop2 fdd90000.vop: l=-2147483648 h=2147483647 hyst=0 l_limit=0 h_limit=0 h_table=0
[    3.687811][  T129] rockchip-vop2 fdd90000.vop: Supported VOP aclk dvfs, normal mode:500000000, reset mode:0, advanced mode:750000000
[    3.687830][  T129] rockchip-drm display-subsystem: bound fdd90000.vop (ops vop2_component_ops)
[    3.688903][  T129] dwhdmi-rockchip fde80000.hdmi: registered ddc I2C bus driver
[    3.689816][  T129] rockchip-drm display-subsystem: bound fde80000.hdmi (ops dw_hdmi_rockchip_ops)
[    3.693353][  T129] dwhdmi-rockchip fdea0000.hdmi: registered ddc I2C bus driver
[    3.694121][  T129] rockchip-drm display-subsystem: bound fdea0000.hdmi (ops dw_hdmi_rockchip_ops)
[    3.694425][  T129] rockchip-drm display-subsystem: bound fde50000.dp (ops dw_dp_component_ops)
[    3.694723][  T129] rockchip-drm display-subsystem: bound fde60000.dp (ops dw_dp_component_ops)
[    3.695506][  T129] rockchip-drm display-subsystem: route-dsi0: failed to get logo,offset
[    3.726119][  T129] dwhdmi-rockchip fde80000.hdmi: use tmds mode
[    3.726161][  T129] dwhdmi-rockchip fde80000.hdmi: use tmds mode
[    3.827064][  T129] dwhdmi-rockchip fdea0000.hdmi: i2c read time out!
[    3.931052][  T129] dwhdmi-rockchip fdea0000.hdmi: i2c read time out!
[    4.035052][  T129] dwhdmi-rockchip fdea0000.hdmi: i2c read time out!
[    4.138997][  T129] dwhdmi-rockchip fdea0000.hdmi: i2c read time out!
[    4.243088][  T129] dwhdmi-rockchip fdea0000.hdmi: i2c read time out!
[    4.347056][  T129] dwhdmi-rockchip fdea0000.hdmi: i2c read time out!
[    4.451055][  T129] dwhdmi-rockchip fdea0000.hdmi: i2c read time out!
[    4.555051][  T129] dwhdmi-rockchip fdea0000.hdmi: i2c read time out!

[    4.659116][  T129] dwhdmi-rockchip fdea0000.hdmi: i2c read time out!
[    4.762995][  T129] dwhdmi-rockchip fdea0000.hdmi: i2c read time out!
[    4.763035][  T129] dwhdmi-rockchip fdea0000.hdmi: ddc read failed offset:0x1
[    4.867055][  T129] dwhdmi-rockchip fdea0000.hdmi: i2c read time out!
[    4.970872][  T129] dwhdmi-rockchip fdea0000.hdmi: i2c read time out!
[    4.974820][   T96] rk_hdmirx fdee0000.hdmirx-controller: hdmirx_audio_interrupts_setup: 1
[    5.054876][  T100] rk-pcie fe170000.pcie: PCIe Link Fail, LTSSM is 0x3, hw_retries=0
[    5.074877][  T129] dwhdmi-rockchip fdea0000.hdmi: i2c read time out!
[    5.178881][  T129] dwhdmi-rockchip fdea0000.hdmi: i2c read time out!
[    5.282882][  T129] dwhdmi-rockchip fdea0000.hdmi: i2c read time out!
[    5.386881][  T129] dwhdmi-rockchip fdea0000.hdmi: i2c read time out!
[    5.490881][  T129] dwhdmi-rockchip fdea0000.hdmi: i2c read time out!
[    5.594888][  T129] dwhdmi-rockchip fdea0000.hdmi: i2c read time out!
[    5.698895][  T129] dwhdmi-rockchip fdea0000.hdmi: i2c read time out!
[    5.802880][  T129] dwhdmi-rockchip fdea0000.hdmi: i2c read time out!
[    5.802901][  T129] dwhdmi-rockchip fdea0000.hdmi: ddc read failed offset:0x1


2、搜索fdea0000,很容易知道是HDMI1的问题,直接关闭!
# 1 "arch/arm64/boot/dts/rockchip/rk3588s-pinconf.dtsi" 1
Y:\new_disk_4t\wyb\RD-RK3588\rk3588u_RK3576_SDK_RELEASE\kernel-6.1\arch\arm64\boot\dts\rockchip\.rk3588-evb7-v11.dtb.dts.tmp

 hdmi1: hdmi@fdea0000 {
  compatible = "rockchip,rk3588-dw-hdmi";
  reg = <0x0 0xfdea0000 0x0 0x10000>, <0x0 0xfdeb0000 0x0 0x10000>;
  interrupts = <0 173 4>,

        <0 174 4>,
        <0 175 4>,
        <0 176 4>,
        <0 361 4>;
  clocks = <&cru 548>,
    <&cru 614>,
    <&cru 549>,
    <&cru 550>,
    <&cru 588>,
    <&cru 628>,
    <&cru 629>,
    <&cru 630>,
    <&cru 631>,
    <&hclk_vo1>,
    <&hdptxphy_hdmi1>;
  clock-names = "pclk",
         "hpd",
         "earc",
         "hdmitx_ref",
         "aud",
         "dclk_vp0",
         "dclk_vp1",
         "dclk_vp2",
         "dclk_vp3",
         "hclk_vo1",
         "link_clk";
  resets = <&cru 983>, <&cru 1181>;
  reset-names = "ref", "hdp";
  power-domains = <&power 26>;
  pinctrl-names = "default";
  pinctrl-0 = <&hdmim2_tx1_cec &hdmim0_tx1_hpd &hdmim1_tx1_scl &hdmim1_tx1_sda>;
  reg-io-width = <4>;
  rockchip,grf = <&sys_grf>;
  rockchip,vo1_grf = <&vo1_grf>;
  phys = <&hdptxphy_hdmi1>;
  phy-names = "hdmi";
  #sound-dai-cells = <0>;
  status = "disabled";

  ports {
   #address-cells = <1>;
   #size-cells = <0>;

   hdmi1_in: port@0 {
    reg = <0>;
    #address-cells = <1>;
    #size-cells = <0>;

    hdmi1_in_vp0: endpoint@0 {
     reg = <0>;
     remote-endpoint = <&vp0_out_hdmi1>;
     status = "disabled";
    };

    hdmi1_in_vp1: endpoint@1 {
     reg = <1>;
     remote-endpoint = <&vp1_out_hdmi1>;
     status = "disabled";
    };

    hdmi1_in_vp2: endpoint@2 {
     reg = <2>;
     remote-endpoint = <&vp2_out_hdmi1>;
     status = "disabled";
    };
   };
  };
 };


3、
Y:\new_disk_4t\wyb\RD-RK3588\rk3588u_RK3576_SDK_RELEASE\kernel-6.1\arch\arm64\boot\dts\rockchip\rk3588-evb7-v11.dtsi
&hdmi0_sound {
    status = "okay";
};

&hdmi1 {
    enable-gpios = <&gpio4 RK_PB2 GPIO_ACTIVE_HIGH>;
    status = "disabled";
};

&hdmi1_in_vp1 {
    status = "disabled";
};

&hdmi1_sound {
    status = "disabled";
};

/* Should work with at least 128MB cma reserved above. */
&hdmirx_ctrler {
    status = "okay";

    #sound-dai-cells = <1>;
    /* Effective level used to trigger HPD: 0-low, 1-high */
    hpd-trigger-level = <1>;
    hdmirx-det-gpios = <&gpio1 RK_PD5 GPIO_ACTIVE_LOW>;
    pinctrl-names = "default";
    pinctrl-0 = <&hdmim1_rx &hdmirx_det>;
};

&hdptxphy_hdmi0 {
    status = "okay";
};

&hdptxphy_hdmi1 {
    status = "disabled";
};

&i2c0 {


&route_hdmi0 {
    status = "okay";
};

&route_hdmi1 {
    status = "disabled";
};

&sata0 {
    status = "okay";
};

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐