赞
踩
开发板: 【正点原子】 的 RK3568 开发板 ATK-DLRK3568
u-boot 版本:来自 【正点原子】 的 RK3568 开发板 Linux SDK,单独复制出来一份,手动编译
编译环境:VMware 虚拟机 ubuntu 20.04
也就是想去掉 MMC2 启动失败的信息,直接优先从 MMC1 启动
查看启动 的 MMC 信息:启动时 CTRL+C
进入 u-boot 的控制台,然后输入 mmc info
=> mmc info Device: sdhci@fe310000 Manufacturer ID: d6 OEM: 103 Name: A3A56 Timing Interface: HS200 Tran Speed: 200000000 Rd Block Len: 512 MMC version 5.1 High Capacity: Yes Capacity: 57.6 GiB Bus Width: 8-bit Erase Group Size: 512 KiB HC WP Group Size: 8 MiB User Capacity: 57.6 GiB WRREL Boot Capacity: 4 MiB ENH RPMB Capacity: 16 MiB ENH
Device: sdhci@fe310000
,可以在 u-boot 中 搜索 sdhci@fe310000
,找到启动的 emmc 设备,当前别名是:sdhci
arch/arm/dts/rk3568-u-boot.dtsi
,chosen
节点,把启动的 emmc 设备放在最前面,这里使用 &sdhci
chosen {
stdout-path = &uart2;
u-boot,spl-boot-order = &sdhci, &sdmmc0, &nandc0, &spi_nand, &spi_nor;
};
重新编译 u-boot 及 u-boot spl,使用 u-boot 下的 ./make.sh --spl
可以更新新的 u-boot spl
,这样启动信息中发现,优先从 MMC1 启动,不再打印 MMC2 的报错信息。
应该可以加快一下启动的速度。
首先需要获取 配置文件 defconfig 与 设备树,当前 【正点原子】 的 RK3568 开发板 ATK-DLRK3568 默认的 设备树文件使用 arch/arm/dts/rk3568-evb.dts
配置文件 defconfig 的生成,我的做法是 :重新编译过 Linux SDK 后,会在 u-boot 目录下产生 .config
,设置一下交叉编译工具链的路径,然后使用:
make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- savedefconfig
生成默认文件 defconfig
然后复制 defconfig 到 configs 目录下,比如 cp defconfig configs/atk_dlrk3568_defconfig
编译方法:使用 ./make.sh atk_dlrk3568
,需要先更改编译脚本的 make.sh
中gcc 交叉编译工具链的路径
其实设备树文件:arch/arm/dts/rk3568-evb.dts
可以复制一份,用于开发板独立使用,比如
cp arch/arm/dts/rk3568-evb.dts arch/arm/dts/atk_dlrk3568.dts
更改 u-boot 默认的 设备树 dtb 方法
设置交叉编译工具链路径 export PATH=$PATH:/home/zhangsz/tools/gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/bin
make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- menuconfig
进入图形界面
Device Tree Control
(atk-dlrk3568) Default Device Tree for DT control (atk-dlrk3568) List of device tree files to include for DT control
本篇尝试单独编译 rockchip 平台 rk3568 的 u-boot,解决 emmc 启动次序问题
rockchip rk3568 平台 u-boot 官方改动的比较大,所以建议使用 rockchip 官方的 u-boot 即可,也可以尝试部分修改,满足自己需求。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。