20231214解决[ 24.476855] rockchip-dmc dmc: Get wrong frequency, Request 800000000, Current 856000000

20231214解决[   24.476855] rockchip-dmc dmc: Get wrong frequency, Request 800000000, Current 856000000的问题
2023/12/14 19:30


开发板:Firefly的AIO-3399J
缘起:为了给AIO-3399J适配Rockchip原厂的Android10/12的挖掘机开发板,于是/步骤:
使用Firefly的Android10的SDK,内核的DTS使用挖掘机的,编译Android10使用选项rk3399-Android10-userdebug。
这样可以确定最小改动的DTS,以及较小改动的Android10部分,方便移植!

1、编译uboot
cd uboot
./make.sh rk3399

2、编译kernel:
make ARCH=arm64 rockchip_defconfig android-10.config rk3399.config -j36
make ARCH=arm64 BOOT_IMG=../rockdev/Image-rk3399_Android10/boot.img rk3399-sapphire-excavator-edp-avb.img -j36

3、编译安卓
source build/envsetup.sh
lunch rk3399-Android10-userdebug
make -j36
./build.sh -u


刷机之后出现:
[  792.587773] rockchip-dmc dmc: Get wrong frequency, Request 200000000, Current 856000000
[  793.158517] rockchip-dmc dmc: Get wrong frequency, Request 600000000, Current 856000000
[  793.164276] rockchip-dmc dmc: Get wrong frequency, Request 600000000, Current 856000000
[  793.227763] rockchip-dmc dmc: Get wrong frequency, Request 600000000, Current 856000000
[  793.281167] rockchip-dmc dmc: Get wrong frequency, Request 600000000, Current 856000000
[  793.431287] rockchip-dmc dmc: Get wrong frequency, Request 600000000, Current 856000000
[  793.544756] rockchip-dmc dmc: Get wrong frequency, Request 600000000, Current 856000000
[  793.634274] rockchip-dmc dmc: Get wrong frequency, Request 600000000, Current 856000000
[  793.764700] rockchip-dmc dmc: Get wrong frequency, Request 200000000, Current 856000000
[  793.830945] rockchip-dmc dmc: Get wrong frequency, Request 200000000, Current 856000000
[  793.884167] rockchip-dmc dmc: Get wrong frequency, Request 300000000, Current 856000000
[  793.937495] rockchip-dmc dmc: Get wrong frequency, Request 400000000, Current 856000000
[  793.992742] rockchip-dmc dmc: Get wrong frequency, Request 300000000, Current 856000000
[  794.044337] rockchip-dmc dmc: Get wrong frequency, Request 200000000, Current 856000000
[  794.097928] rockchip-dmc dmc: Get wrong frequency, Request 300000000, Current 856000000
[  794.150809] rockchip-dmc dmc: Get wrong frequency, Request 400000000, Current 856000000
[  794.207496] rockchip-dmc dmc: Get wrong frequency, Request 300000000, Current 856000000
[  794.264195] rockchip-dmc dmc: Get wrong frequency, Request 528000000, Current 856000000
[  794.317725] rockchip-dmc dmc: Get wrong frequency, Request 528000000, Current 856000000
[  794.371019] rockchip-dmc dmc: Get wrong frequency, Request 800000000, Current 856000000
[  794.424249] rockchip-dmc dmc: Get wrong frequency, Request 800000000, Current 856000000
[  794.477630] rockchip-dmc dmc: Get wrong frequency, Request 400000000, Current 856000000
[  794.530928] rockchip-dmc dmc: Get wrong frequency, Request 300000000, Current 856000000
[  794.584380] rockchip-dmc dmc: Get wrong frequency, Request 300000000, Current 856000000
[  794.641063] rockchip-dmc dmc: Get wrong frequency, Request 300000000, Current 856000000
[  794.694234] rockchip-dmc dmc: Get wrong frequency, Request 300000000, Current 856000000
[  794.747582] rockchip-dmc dmc: Get wrong frequency, Request 200000000, Current 856000000
[  794.800829] rockchip-dmc dmc: Get wrong frequency, Request 200000000, Current 856000000
[  794.854237] rockchip-dmc dmc: Get wrong frequency, Request 200000000, Current 856000000
[  794.907659] rockchip-dmc dmc: Get wrong frequency, Request 200000000, Current 856000000
[  794.964510] rockchip-dmc dmc: Get wrong frequency, Request 200000000, Current 856000000
[  795.094573] rockchip-dmc dmc: Get wrong frequency, Request 200000000, Current 856000000
[  795.147833] rockchip-dmc dmc: Get wrong frequency, Request 200000000, Current 856000000
[  795.204357] rockchip-dmc dmc: Get wrong frequency, Request 200000000, Current 856000000
[  795.279423] rockchip-dmc dmc: Get wrong frequency, Request 528000000, Current 856000000
[  795.341709] rockchip-dmc dmc: Get wrong frequency, Request 528000000, Current 856000000
[    2.070749] rockchip-dmc dmc: Get wrong frequency, Request 800000000, Current 856000000
[   15.704625] rockchip-dmc dmc: Get wrong frequency, Request 800000000, Current 856000000
[   15.860291] rockchip-dmc dmc: Get wrong frequency, Request 800000000, Current 856000000
[   15.860378] rockchip-dmc dmc: Get wrong frequency, Request 800000000, Current 856000000
[   24.476855] rockchip-dmc dmc: Get wrong frequency, Request 800000000, Current 856000000


由于是适配Firefly的AIO-3399J开发板,Firefly他们自己肯定适配好了,很容易找到DDR的配置部分DMC:
Z:\3TB\03rk3399_Android10.0异常没有编译Android\kernel-excavator\arch\arm64\boot\dts\rockchip-excavator\rk3399-excavator-sapphire.dtsi
Z:\3TB\03rk3399_Android10.0异常没有编译Android\kernel-firefly\arch\arm64\boot\dts\rockchip-firefly\rk3399-firefly-port.dtsi

Z:\3TB\03rk3399_Android10.0异常没有编译Android\kernel\arch\arm64\boot\dts\rockchip\rk3399-excavator-sapphire.dtsi
Z:\3TB\03rk3399_Android10.0异常没有编译Android\kernel\arch\arm64\boot\dts\rockchip\rk3399-firefly-port.dtsi
&dmc {
    status = "okay";
    center-supply = <&vdd_center>;
    upthreshold = <40>;
    downdifferential = <20>;
    system-status-freq = <
        /*system status         freq(KHz)*/
        SYS_STATUS_NORMAL       800000
        SYS_STATUS_REBOOT       528000
        SYS_STATUS_SUSPEND      200000
        SYS_STATUS_VIDEO_1080P  200000
        SYS_STATUS_VIDEO_4K     600000
        SYS_STATUS_VIDEO_4K_10B 800000
        SYS_STATUS_PERFORMANCE  800000
        SYS_STATUS_BOOST        600000
        SYS_STATUS_DUALVIEW     600000
        SYS_STATUS_ISP          600000
    >;
    vop-bw-dmc-freq = <
    /* min_bw(MB/s) max_bw(MB/s) freq(KHz) */
        0       762      200000
        763     1893     400000
        1894    3012     528000
        3013    99999    800000
    >;
    auto-freq-en = <1>;
    auto-min-freq = <200000>;
};

修改为:
&dmc {
    status = "okay";
    center-supply = <&vdd_center>;
    compatible = "rockchip,rk3399-dmc";
    devfreq-events = <&dfi>;
    interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH 0>;
    clocks = <&cru SCLK_DDRC>;
    clock-names = "dmc_clk";
    ddr_timing = <&ddr_timing>;
    upthreshold = <40>;
    downdifferential = <20>;

    system-status-freq = <
    /*system status         freq(KHz)*/
        SYS_STATUS_NORMAL       856000
        SYS_STATUS_REBOOT       856000
        SYS_STATUS_SUSPEND      328000
        SYS_STATUS_VIDEO_1080P  666000
        SYS_STATUS_VIDEO_4K     856000
        SYS_STATUS_VIDEO_4K_10B 856000
        SYS_STATUS_PERFORMANCE  856000
        SYS_STATUS_BOOST        856000
        SYS_STATUS_DUALVIEW     856000
        SYS_STATUS_ISP          856000
    >;
    vop-bw-dmc-freq = <
    /* min_bw(MB/s) max_bw(MB/s) freq(KHz) */
        0       762      416000
        763     3012     666000
        3013    99999    856000
    >;

    vop-pn-msch-readlatency = <
        0       0x20
        4       0x20
    >;

    auto-min-freq = <328000>;
    auto-freq-en = <0>;

};

&dmc_opp_table {
    compatible = "operating-points-v2";
    opp-200000000 {
        opp-hz = /bits/ 64 <200000000>;
        opp-microvolt = <900000>;
        status = "disabled";
    };
    opp-300000000 {
        opp-hz = /bits/ 64 <300000000>;
        opp-microvolt = <900000>;
        status = "disabled";
    };
    opp-328000000 {
        opp-hz = /bits/ 64 <328000000>;
        opp-microvolt = <900000>;
    };
    opp-400000000 {
        opp-hz = /bits/ 64 <400000000>;
        opp-microvolt = <900000>;
        status = "disabled";
    };
    opp-416000000 {
        opp-hz = /bits/ 64 <416000000>;
        opp-microvolt = <900000>;
    };
    opp-528000000 {
        opp-hz = /bits/ 64 <528000000>;
        opp-microvolt = <900000>;
        status = "disabled";
    };
    opp-600000000 {
        opp-hz = /bits/ 64 <600000000>;
        opp-microvolt = <900000>;
        status = "disabled";
    };
    opp-666000000 {
        opp-hz = /bits/ 64 <666000000>;
        opp-microvolt = <900000>;
    };
    opp-800000000 {
        opp-hz = /bits/ 64 <800000000>;
        opp-microvolt = <900000>;
        status = "disabled";
    };
    opp-856000000 {
        opp-hz = /bits/ 64 <856000000>;
        opp-microvolt = <900000>;
    };
    opp-928000000 {
        opp-hz = /bits/ 64 <928000000>;
        opp-microvolt = <900000>;
        status = "disabled";
    };
};

百度没有找到解决方法,果断上BING:
[  222.561356] rockchip-dmc dmc: Get wrong frequency, Request 200000000, Current 856000000


参考资料:
https://blog.csdn.net/YY2065/article/details/128922883
N_rk3399_Android11调试遇到ddr配置不对的问题


https://blog.csdn.net/EmuELEC/article/details/127258162
Rockchip平台DDR调试排查手段


https://blog.csdn.net/lyy901135/article/details/103401292
RK3399 4.4内核 修改DDR频率

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值