南投县网站建设_网站建设公司_Java_seo优化
2025/12/24 21:36:17 网站建设 项目流程

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";
};

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询