Skip to content

HwHiAiUser/u-boot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

103,059 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ascend310B hboot2 U-Boot

这是用于 HiSilicon Ascend310B hboot2 启动链的 U-Boot 工程,目标镜像为 Image.hboot2,由 hboot2 加载执行。

编译方式

准备 AArch64 交叉编译工具链,例如 aarch64-linux-gnu-gcc

首次配置:

make CROSS_COMPILE=aarch64-linux-gnu- ascend310b_hboot2_defconfig

编译 hboot2 镜像:

make CROSS_COMPILE=aarch64-linux-gnu- Image.hboot2 -j$(nproc)

编译完成后,输出文件位于工程根目录:

Image.hboot2

可以用下面的命令确认镜像:

ls -l Image.hboot2
sha256sum Image.hboot2

调整默认启动顺序

默认启动顺序由 include/configs/ascend310b_hboot2.h 中的 BOOT_TARGET_DEVICES 控制。

当前顺序为:

#define BOOT_TARGET_DEVICES(func) \
	func(MMC, mmc, 1) \
	func(USB, usb, 0) \
	func(NVME, nvme, 0) \
	func(MMC, mmc, 0) \
	func(DHCP, dhcp, na)

对应启动顺序:

mmc1 -> usb0 -> nvme0 -> mmc0 -> dhcp

设备含义:

  • mmc1: SD 卡,mmc@82010000
  • mmc0: eMMC,mmc@82000000
  • usb0: USB 存储设备
  • nvme0: PCIe NVMe SSD
  • dhcp: 网络 DHCP/TFTP 启动

修改顺序后重新编译:

make CROSS_COMPILE=aarch64-linux-gnu- Image.hboot2 -j$(nproc)

可以在编译产物中确认默认环境:

strings u-boot.bin | grep '^boot_targets='

也可以在 U-Boot 命令行确认:

printenv boot_targets

需要修改默认顺序时,应修改源码并重新编译。

使用方式

hboot2meta 用于向 hboot2 元数据分区写入启动镜像。其源码位于 HwHiAiUser/scripts

生成空镜像 Image.empty32M

truncate -s 32M Image.empty32M

也可以使用 dd 生成:

dd if=/dev/zero of=Image.empty32M bs=1M count=32

刷写前请先确认目标磁盘设备,例如:

lsblk

下面命令中的 /dev/sda 是目标磁盘设备,请根据实际情况替换。命令会直接写设备,请确认设备无误后再执行。

从工程根目录执行:

sudo ./hboot2meta flash /dev/sda "boot.main.image[0]" Image.empty32M
sudo ./hboot2meta flash /dev/sda "boot.back.image[0]" Image.empty32M
sudo ./hboot2meta flash /dev/sda "boot.main.image[0]" Image.hboot2
sudo ./hboot2meta flash /dev/sda "boot.back.image[0]" Image.hboot2

其中:

  • boot.main.image[0]: 主启动镜像槽
  • boot.back.image[0]: 备份启动镜像槽
  • Image.empty32M: 空镜像,用于先清理旧内容
  • Image.hboot2: 本工程编译生成的 U-Boot hboot2 镜像

刷写后重新上电或重启设备,即可由 hboot2 加载新的 U-Boot。

About

u-boot for Orange Pi AI Pro (Ascend 310B)

Resources

License

Stars

2 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors