i2C-MP15X-B 开发板

i2C-MP15X-B开发板支持NAND,eMMC,QSPI Flash,SD Card方式的启动。

启动方式配置文件适用设备
Basic chain 支持从SD,eMMC,NAND,QSPI Flash启动stm32mp15_basic_defconfigi2S-MP157AI-D512E4 核心板 + i2C-MP15X-B底板
i2S-MP157AI-D512E4 核心板 + i2C-MP15X-B底板(含QSPI Flash)
Trusted chain支持从SD,eMMC,NAND,QSPI Flash启动stm32mp15_trusted_defconfigi2S-MP157AI-D512E4 核心板 + i2C-MP15X-B底板
i2S-MP157AI-D512E4 核心板 + i2C-MP15X-B底板(含QSPI Flash)

i2C-MP15X-B开发板使用U-Boot作为整个系统的启动加载程序。构建U-Boot后得到两个文件,u-boot-spl.stm32和u-boot.img。u-boot-spl.stm32再spl目录下,u-boot.img在u-boot的根目录下。可写入到不同存储设备内。
下载好U-Boot的代码后,复制到工作目录下解压,并请确认当前shell已加载编译工具链。

$ cd $HOME/i2SOM-STM32MP1
$ tar xvf u-boot-st.tar.gz
$ cd u-boot

U-Boot支持两种bootchain,Basic bootchain 和 Trusted bootchain。
i2X-MP15X开发套件选择使用的是Trusted bootchain模式,所以构建选择Trusted方式的命令即可。
Basic bootchain

$ make pangu_basic_defconfig
$ make DEVICE_TREE=stm32mp157a-i2cmp15xbe all

Trusted bootchain

$ make pangu_trusted_defconfig
$ make DEVICE_TREE=stm32mp157a-i2cmp15xbe all

编译结束后,在当前目录下可以查看当前目录和spl目录,可以看到对应的文件。

$ ls
api     config.mk      cscope.po.out  drivers   include   MAINTAINERS  scripts     tools               u-boot.dtb      u-boot.map
arch    configs        ctags          dts       Kbuild    Makefile     spl         u-boot              u-boot-dtb.bin  u-boot-nodtb.bin
board   cscope.files   disk           env       Kconfig   net          System.map  u-boot.bin          u-boot-dtb.img  u-boot.srec
cmd     cscope.in.out  doc            examples  lib       post         tags        u-boot.cfg          u-boot.img      u-boot.sym
common  cscope.out     Documentation  fs        Licenses  README       test        u-boot.cfg.configs  u-boot.lds
$ ls spl/
arch   common   dts  include     u-boot-spl      u-boot-spl-dtb.bin  u-boot-spl-nodtb.bin  u-boot-spl.stm32.log
board  disk     env  lib         u-boot-spl.bin  u-boot-spl.lds      u-boot-spl-pad.bin
cmd    drivers  fs   u-boot.cfg  u-boot-spl.dtb  u-boot-spl.map      u-boot-spl.stm32

构建完成后,会生成一些文件,以下是文件说明

文件说明
spl/u-boot-spl.stm32包含STM32信息头的SPL 二进制文件,在Basic boot chain下用于FSBL
u-boot.img包含UImage信息头的U-Boot 二进制文件,在Basic boot chain下用于SSBL
u-boot.stm32包含STM32信息头的U-Boot二进制文件,在Trusted boot chain下用于SSBL
u-bootU-Boot的ELF文件,用于GDB调试
spl/u-boot-splSPL的ELF文件,通常用于gdb调试

替换SD卡的U-Boot
测试新的U-Boot程序时,可以使用SD卡启动方式,可以快速验证U-Boot是否正常启动,可以将U-Boot写入SD卡的对应分区。

$ dd if=u-boot-spl.stm32 of=/dev/sdb1 conv=fdatasync
$ dd if=u-boot-spl.stm32 of=/dev/sdb2 conv=fdatasync
$ dd if=u-boot.img of=/dev/sdb3 conv=fdatasync

Basic bootchain下替换eMMC中的Bootloader
Basic bootchain下的Bootloader由U-Boot提供,把编译后的U-Boot镜像文件spl.stm32和u-boot.img写入到eMMC。
以下命令操作在开发板上运行,执行错误或文件写入错误,会导致开发板无法启动。如出现无法启动的情况,请重新烧写开发板即可。

# echo 0 > /sys/class/block/mmcblk1boot0/force_ro
# echo 0 > /sys/class/block/mmcblk1boot1/force_ro
# dd if=spl.stm32 of=/dev/mmcblk1boot0 conv=fdatasync
# dd if=spl.stm32 of=/dev/mmcblk1boot1 conv=fdatasync
# echo 1 > /sys/class/block/mmcblk1boot0/force_ro
# echo 1 > /sys/class/block/mmcblk1boot1/force_ro
# mmc bootpart enable 1 1 /dev/mmcblk1
# dd if=u-boot.img of=/dev/mmcblk1p1 conv=fdatasync

Trusted bootchain下替换eMMC中的Bootloader
Trusted bootchain下的U-Boot提供SSBL阶段的文件,例如u-boot.stm32,文件名以stm32结尾。

# dd if=u-boot.stm32 of=/dev/mmcblk1p1 conv=fdatasync

MYD-YA157CV2-4E512D 开发板

Trusted bootchain

$ make pangu_trusted_defconfig
$ make DEVICE_TREE=stm32mp157c-mydya157cv2 all
作者:SteveChen  创建时间:2024-09-18 16:43
最后编辑:SteveChen  更新时间:2024-09-18 16:43
上一篇:
下一篇: