当前位置:   article > 正文

RK3568 学习笔记 : 更改 u-boot spl 中的 emmc 的启动次序

RK3568 学习笔记 : 更改 u-boot spl 中的 emmc 的启动次序

环境

  • 开发板: 【正点原子】 的 RK3568 开发板 ATK-DLRK3568

  • u-boot 版本:来自 【正点原子】 的 RK3568 开发板 Linux SDK,单独复制出来一份,手动编译

  • 编译环境:VMware 虚拟机 ubuntu 20.04

问题描述

  • RK3568 默认 u-boot 的 SPL 有个启动次序,比如 MMC2 -> MMC1,而开发板是 MMC1,所以是否可以更改这个次序,这样就不会产生 MMC2 启动报错的信息

在这里插入图片描述

  • 也就是想去掉 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 这里的MMC1 或者 MMC2,可以通过具体的设备树节点信息获取到,比如 mmc info 中的 Device: sdhci@fe310000,可以在 u-boot 中 搜索 sdhci@fe310000,找到启动的 emmc 设备,当前别名是:
    sdhci

修改启动的次序

  • 修改设备树 arch/arm/dts/rk3568-u-boot.dtsichosen 节点,把启动的 emmc 设备放在最前面,这里使用 &sdhci

在这里插入图片描述

	chosen {
		stdout-path = &uart2;
		u-boot,spl-boot-order = &sdhci, &sdmmc0, &nandc0, &spi_nand, &spi_nor;
	};
  • 1
  • 2
  • 3
  • 4
  • 重新编译 u-boot 及 u-boot spl,使用 u-boot 下的 ./make.sh --spl 可以更新新的 u-boot spl,这样启动信息中发现,优先从 MMC1 启动,不再打印 MMC2 的报错信息。

  • 应该可以加快一下启动的速度。

在这里插入图片描述

单独编译 rk3568 u-boot

  • 首先需要获取 配置文件 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 
  • 1

在这里插入图片描述

小结

  • 本篇尝试单独编译 rockchip 平台 rk3568 的 u-boot,解决 emmc 启动次序问题

  • rockchip rk3568 平台 u-boot 官方改动的比较大,所以建议使用 rockchip 官方的 u-boot 即可,也可以尝试部分修改,满足自己需求。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/457635
推荐阅读
相关标签
  

闽ICP备14008679号