瑞芯微Rockchip开发者社区
直播中

赵辉

12年用户 886经验值
私信 关注
[问答]

AIO-3399J Linux_SDK Recovery按键无法进入Loader模式怎么解决?

AIO-3399J Linux_SDK Recovery按键无法进入Loader模式怎么解决?

回帖(1)

赵雪培

2022-3-7 10:59:41
    使用wiki页面Linux_SDK链接下载得到的old版本SDK压缩包。

按照创建ubuntu rootfs和打包固件的教程制作的Linux固件,实际使用发现按住Recovery无法进入Laoder模式,log中输出包含

download key pressed... entering recovery mode!
而Linux固件没有Recover分区,因此转而进入正常启动模式。还好进入系统后可以使用reboot参数进入。

sudo reboot loader
loader是作为可选参数传入,推测进入loader的相应驱动是在kernel中实现。

    回到正题,寻找uboot中关于按键检测和启动模式的关键地方:

board_late_init(void)->
    setup_boot_mode(void)->
        rockchip_dnl_mode_check(void)->这条函数下一条是更新启动模式并执行,但实际需要修改的是这条;
            rockchip_u2phy_vbus_detect()->
        跟踪发现这条函数始终返回0,查找源码有两处定义,但跟踪发现却都没有运行,仔细寻找发现头文件中有这样一处定义:

static inline int rockchip_u2phy_vbus_detect(void)
转到头文件查看

#if defined(CONFIG_PHY_ROCKCHIP_INNO_USB2) || defined(CONFIG_ROCKCHIP_USB2_PHY)
int rockchip_u2phy_vbus_detect(void);
#else
static inline int rockchip_u2phy_vbus_detect(void)
{
        return -ENOSYS;
}
#endif
搜索源码,发现CONFIG_PHY_ROCKCHIP_INNO_USB2使用较多,通过menuconfig查找并使能宏和相关依赖,编译烧入后OTG HOST检测正常,再OTG口连接了HOST的情况下按住Recovery重启可正常进入loader模式。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分