kendryte / k510_buildroot

Kendryte K510 SDK
BSD 2-Clause "Simplified" License
117 stars 57 forks source link

[help]: zsbl是如何加载uboot_burn.bin的? #355

Open Gstalker opened 1 year ago

Gstalker commented 1 year ago

Help

各位k510_buildroot的开发者们好,我是一名个人开发者,目前正在尝试在k510上实现一个bootloader。

但是经过几轮尝试后我发现板子始终起不来,似乎和bootloader的格式有关?以sdcard引导启动模式为例,我发现k510_buildroot中会将u-boot.bin的格式重写一遍后生成的u-boot_burn.bin烧录到sdcard中。

可以提供更多有关k510上zsbl加载uboot的细节吗?十分感谢!

也许这个issue并不适合开在这里,但是我没有其他联系渠道了。

wangjianxin-canaan commented 1 year ago

@Gstalker k510的bootrom会从sd读取文件,校验通过后,才会执行。 请执行下类似

/usr/bin/python3 ${BOARD_DIR}/app_shaaes.py ${BINARIES_DIR}/u-boot.bin ${BINARIES_DIR}/u-boot_burn.bin

命令。详见board/canaan/k510/post_build.sh 文件。

Gstalker commented 1 year ago

@Gstalker k510的bootrom会从sd读取文件,校验通过后,才会执行。 请执行下类似

/usr/bin/python3 ${BOARD_DIR}/app_shaaes.py ${BINARIES_DIR}/u-boot.bin ${BINARIES_DIR}/u-boot_burn.bin

命令。详见board/canaan/k510/post_build.sh 文件。

yep,这一部分我看到并实现了。bootrom读取boot分区中的文件,会对所有文件的格式进行校验,只有符合这个处理后格式的文件才会被当作下一阶段的bootloader加载并执行,且加载基址是0x8008_0000,对吗?

wangjianxin-canaan commented 1 year ago

这一部分我看到并实现了。bootrom读取boot分区中的文件,会对所有文件的格式进行校验,只有符合这个处理后格式的文件才会被当作下一阶段的bootloader加载并执行,且加载基址是0x8008_0000,对吗

bootrom读取boot分区中,文件名后缀是.bin的文件,只有符合这个处理后格式的文件才会被当作下一阶段的bootloader加载并执行,且加载基址是0x8008_0000。

Gstalker commented 1 year ago

感谢回答,我继续尝试一下

还有一点我想确定一下,这个对.bin后缀名和文件格式的校验会遍历整个boot分区吗?先前我写的genimage.cfg中包含了两个.bin后缀的文件,这里也有可能是出问题的地方

wangjianxin-canaan commented 1 year ago

还有一点我想确定一下,这个对.bin后缀名和文件格式的校验会遍历整个boot分区吗?先前我写的genimage.cfg中包含了两个.bin后缀的文件,这里也有可能是出问题的地方

只会使用boot分区的第一个.bin后缀名文件。u-boot.bin文件名优先级最高。 @xiangbingj

Gstalker commented 1 year ago

串口boot模式有参考文档吗,这方面我在build_root中似乎没有见到

wangjianxin-canaan commented 1 year ago

串口boot模式有参考文档吗,这方面我在build_root中似乎没有见到

@xiangbingj @gyangcan 你们那有吗?我手上没有。

wangjianxin-canaan commented 9 months ago

串口boot模式有参考文档吗,这方面我在build_root中似乎没有见到

关于串口boot模式,目前还没有写参考文档。