[Firefly-RK3399] U-Boot配置U盘启动
Posted Neutionwei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Firefly-RK3399] U-Boot配置U盘启动相关的知识,希望对你有一定的参考价值。
1、原理
RK3399默认不能从maskrom模式直接启动U盘中的BootLoader,因此需要别的存储媒介在U-Boot阶段读取U盘中的内核。
下面是U-Boot代码中U盘启动的代码部分,位于arch/arm/mach-rockchip/board.c
:
#ifdef CONFIG_ROCKCHIP_USB_BOOT
static int boot_from_udisk(void)
{
struct blk_desc *desc;
char *devtype;
char *devnum;
devtype = env_get("devtype");
devnum = env_get("devnum");
/* Booting priority: mmc1 > udisk */
if (!strcmp(devtype, "mmc") && !strcmp(devnum, "1"))
return 0;
if (!run_command("usb start", -1)) {
desc = blk_get_devnum_by_type(IF_TYPE_USB, 0);
if (!desc) {
printf("No usb device found\\n");
return -ENODEV;
}
if (!run_command("rkimgtest usb 0", -1)) {
rockchip_set_bootdev(desc);
env_set("devtype", "usb");
env_set("devnum", "0");
printf("Boot from usb 0\\n");
} else {
printf("No usb dev 0 found\\n");
return -ENODEV;
}
}
return 0;
}
#endif
2、config配置
CONFIG_ROCKCHIP_USB_BOOT
3、编译
./make.sh firefly-rk3399
4、烧写
把编译生成的uboot.img
烧写到eMMC:
sudo ../tools/linux/Linux_Upgrade_Tool/upgrade_tool di -u uboot.img
以上是关于[Firefly-RK3399] U-Boot配置U盘启动的主要内容,如果未能解决你的问题,请参考以下文章
[Firefly-RK3399] U-Boot shell中增加saveenv命令
[Firefly-RK3399] U-Boot配置启动时进入启动菜单bootmenu
[Firefly-RK3399] U-Boot适配红外遥控器IR