项目场景:
zynqmp 平台通过JTAG方式启动UBOOT
问题描述
petalinux2021.1版本执行dow u-boot.elf ,con 命令后串口没有相关输出显示。
petalinux2020.2版本正常
原因分析:
编译打包的文件打包成BOOT.BIN后,使用SD卡启动是正常的。打包log显示 有system.dtb文件:
解决方案:
XSDB终端增加命令,下载system.dtb到设备中。
:targets -set -nocase -filter {name =~ “A53#0”}
dow -data “system.dtb” 0x00100000
完整执行脚本如下:
connect
targets -set -nocase -filter {name =~ “PSU”}
mask_write 0xFFCA0038 0x1C0 0x1C0
targets -set -nocase -filter {name =~ “MicroBlaze PMU”}
dow “pmufw.elf”
exec sleep 2
con
targets -set -nocase -filter {name =~ “APU”}
mwr 0xffff0000 0x14000000
mask_write 0xFD1A0104 0x501 0x0
exec sleep 5
targets -set -nocase -filter {name =~ “A53#0”}
#source psu_init.tcl
dow “zynqmp_fsbl.elf”
exec sleep 2
con
exec sleep 4; stop;
targets -set -nocase -filter {name =~ “A53#0”}
dow -data “system.dtb” 0x00100000
exec sleep 2
targets -set -nocase -filter {name =~ “A53#0”}
dow “u-boot.elf”
exec sleep 2
targets -set -nocase -filter {name =~ “A53#0”}
dow “bl31.elf”
exec sleep 2
con
下面还有借鉴别人的petalinux2020.2 可以正常运行的版本,也是可以正常启动的:
connect
targets
targets -set -filter {name =~ “PSU”}
mwr 0xffca0038 0x1ff
targets
exec sleep 1
targets -set -filter {name =~ “MicroBlaze PMU”}
targets
dow pmufw.elf
con
exec sleep 2
targets -set -filter {name =~ “Cortex-A53 #0”}
rst -processor
dow zynqmp_fsbl.elf
con
exec sleep 2
stop
targets -set -nocase -filter {name =~ “A53#0”}
dow -data “system.dtb” 0x00100000
exec sleep 4
dow bl31.elf
con
stop exec sleep 2
dow u-boot.elf
con