#!/bin/bash
echo $1
echo $(stat -c%s flash-system.bin)
if [ "$1" = "Image" ];then
rm flash-system.bin
cp fip-all.bin flash-system.bin
echo "Image"
dd if=$1 of=flash-system.bin bs=1M seek=8 conv=notrunc
elif [ "$1" = "s5000c-64c.dtb" ];then
echo "s5000c-64c.dtb"
dd if=$1 of=flash-system.bin bs=1M seek=78 conv=notrunc
else
echo "Input Error"
exit 1
fi
参考《飞腾编程手册》,0x1a100000为qspi基地址
1、uboot指令操作
mw.l 0x1a100010 0x9f003000 //参考 flash 数据手册,RDID=0x9f
md.l 0x1a10001c 1 (2801401c: 000000c8 )
mw 0x1a100010 0xb7001000 //参考 flash 数据手册,Enable 4-byte Mode cmd=0xb7
mw 0x1a10001c 1
mw 0x1a100010 0x35003000 //参考 flash 数据手册,RDSD=0x35
md.l 0x1a10001c 1 (此处打印 2801401c: 00000008 )
mw 0x1a100000 0x00000005
mw 0x1a100004 0x0308000e
md 0x1000000
2、uboot程序修改
writel(0xb7001000,0x1a100010);
writel(0x1,0x1a10001c);
writel(0x5,0x1a100000);
writel(0x0308000e,0x1a100000);
3、设置启动参数
setenv boot_fdt “booti 0x800000 -:- 0x4e00000”
0x800000为Image起始地址
0x4e00000为dtb起始地址