资料

Bpi Wiki

Banana PI 香蕉派的专栏

香蕉派开源硬件

【玩转开源】BananaPi R2 —— 第一篇 Openwrt安装

论坛

移植Linux:如何制作rootfs?详细教程

[uboot]uboot如何引导系统

mmc

mmc device 0 是将设备切换到 0,通常有 2 个设备,一个是 eMMC,一个是 SD 卡。

boot13=mmc init 1 ; mmc device 1 ; tftp 40080000 image.img ; mmc write 40080000 32000 a000 ; mmc write 41480000 b2000 80000 ; reset

上面是 BPI-r64 实例, 其中 mmc device 1 就是将设备切换到 SD 卡。

loadbootenv

loadbootenv=fatload ${device} ${partition} ${scriptaddr} ${bpi}/${board}/${service}/${bootenv} || fatload ${device} ${partition} ${scriptaddr} ${bootenv}

把 uEnv.txt 中的环境变量导入到 u-boot 的环境变量中。

fatload

fatload mmc 0:1 ${loadaddr} ${bpi}/${board}/${service}/${kernel}; 

实际等价于 reading bananapi/bpi-r64/linux-5.4/uImage ,将 kernel 加载进内存。但是这个 0:1 感觉不太对啊,0 不是代表 eMMC 吗?0:1 不是代表 /dev/mmcblk0p2 吗?

总之,u-boot 是根据环境变量找到 kernel 位值的。

root

root=/dev/mmcblk1p2

根文件系统。u-boot 也是根据环境变量找到 rootfs 的。

想要换一个 NFS 文件系统,就使用如下语句:

root=/dev/nfs nfsroot=192.168.9.120:/source/rootfs

Bingo 表情

bootargs

用于 u-boot 向 kernel 传递参数。