yjbjtg 2024-06-15 10:12 采纳率: 0%
浏览 24
已结题

firefly-rk3399上启动卡住了

目前在firefly-rk3399上的启动问题已经解决。当单独从TF卡启动和单独从EMMC启动都没问题。但是有一个新问题,当板子上同时放上TF卡和SA3635 EMMC时,TF卡上烧录好系统(单独能启动linux),EMMC是新片,没有任何数据时。Linux启动到中途时卡住,请问如何解决?
板子上原装EMMC时并没有问题,是否跟新上的SA3635有关?驱动里要调整什么吗?比如频率。
单独使用SA3635烧录后,也不能启动进入linux。但烧录某版android能启动进入系统

  • 写回答

25条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-15 10:16
    关注
    获得0.40元问题酬金

    引自免费微信小程序:皆我百晓生

    面对firefly-rk3399在同时插入TF卡和空白EMMC时启动卡住的问题,这可能与设备树配置、启动优先级设置、或存储介质的初始化冲突有关。以下是一系列步骤和策略,旨在诊断并解决这个问题:

    1. 检查设备树配置

    确保设备树正确配置了对TF卡和EMMC的支持。通常,设备树文件位于/boot/dt-blob.bin/boot/device-tree.d目录下。你可能需要调整EMMC的控制器参数,例如时钟频率、工作模式等。检查并修改与EMMC相关的节点,例如:

    /dts-v1/;
    / {
        emmc: emmc@40000000 {
            compatible = "rockchip,rk3399-emmc";
            #address-cells = <1>;
            #size-cells = <1>;
            reg = <0x40000000 0x20000>, <0x48000000 0x10000>;
            clocks = <&clks 12>;
            clock-names = "host_clk";
            reset-gpios = <&gpioa 16 0>;
            emmc-host = <&emmc_host>;
            status = "okay";
        };
    };
    

    2. 调整启动顺序

    检查启动加载器(通常是U-Boot)的配置,确保它正确识别并处理了启动设备的优先级。在U-Boot中,你可以通过修改board.c文件中的board_init_f函数,来控制启动设备的探测顺序和方式。

    int board_init_f(ulong bootflag)
    {
        int ret;
    
        ret = board_init_f_common();
        if (ret) {
            printf("board_init_f_common failed\n");
            return ret;
        }
    
        /* Add your custom initialization code here */
        // For example:
        // if (is_emmc_first(bootflag)) {
        //     mmc_select_boot_device(MMC_DEV_EMMC);
        // } else {
        //     mmc_select_boot_device(MMC_DEV_SDC1);
        // }
    
        return 0;
    }
    

    3. 更新驱动程序

    确认使用的内核版本是否支持最新的EMMC控制器驱动。有时候,更新内核或相关驱动可以解决兼容性问题。参考Rockchip官方文档或社区论坛,获取针对RK3399的最新EMMC驱动。

    4. 测试EMMC

    将EMMC芯片连接到另一台已知良好的开发板或PC上进行测试,确保其本身没有物理损坏或固件问题。

    5. 日志分析

    尝试捕获启动过程中的日志输出,这可能需要在U-Boot中启用更详细的调试信息,或在内核中开启早起打印功能(early printk)。通过日志,可以确定卡住的具体位置,进一步缩小问题范围。

    6. 社区资源

    利用Rockchip社区、Linux内核邮件列表或GitHub上的开源项目,寻找类似问题的讨论或解决方案。这些资源往往包含了丰富的故障排除经验和补丁。

    通过以上步骤,你应该能够定位并解决启动卡住的问题。如果在实施过程中遇到具体的技术障碍,进一步细化问题描述,可能有助于找到更精确的解决方案。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 6月23日
  • 修改了问题 6月15日
  • 修改了问题 6月15日
  • 修改了问题 6月15日
  • 展开全部

悬赏问题

  • ¥15 咨询一下有关于王者荣耀赢藏战绩
  • ¥100 求购一套带接口实现实习自动签到打卡
  • ¥50 MacOS 使用虚拟机安装k8s
  • ¥500 亚马逊 COOKIE我如何才能实现 登录一个亚马逊账户 下发新 COOKIE ..我使用下发新COOKIE 导入ADS 指纹浏览器登录,我把账户密码 修改过后,原来下发新COOKIE 不会失效的方式
  • ¥20 玩游戏gpu和cpu利用率特别低,玩游戏卡顿
  • ¥25 oracle中的正则匹配
  • ¥15 关于#vscode#的问题:把软件卸载不会再出现蓝屏
  • ¥15 vimplus出现的错误
  • ¥15 usb无线网卡转typec口
  • ¥30 怎么使用AVL fire ESE软件自带的优化模式来优化设计Soot和NOx?