SPL
如果只验证SPL,此时把boot_spl.bin烧写到SPI flash的0x4000地址,上电启动SPL
UBOOT
u-boot.bin即为烧写可执行文件
Bootloader烧写
1.编程器烧写:把SPI flash取下来用编程器烧写 此处以flypro为例进行说明
选择对应的Flash芯片,擦除Flash
装载烧写文件,选择bootloader.bin
注意:非XIP启动模式要设置从flash的0x4000地址开始烧写
烧写完成后把flash装回板子上开机
2.片上方式烧写
调整硬件引脚strap[2:0]=000,cpu上电进入到shell界面
通过输入对应的编号1,选择UART启动SPL
通过X-modem方式下载PC上的SPL到片上SRAM启动运行
启动SPL过程中按组合键 ctrl+c 进入到SPL shell
执行命令ymodem2ddr,从PC通过Y-modem方式下载uboot到ddr运行
uboot启动shell之后,使用ping命令ping PC 主机
PC端启动tftp服务,把bootloader.bin放到tftp下载目录
在uboot shell 下执行updateuboot命令,该命令会下载PC主机上的bootloader.bin文件
然后烧写spi-flash。正常情况下可以看到tftp下载过程以及spi flash烧写过程,
等待烧写结束,断电重启
该流程也可以在开发调试储器,存储设备(SPI flash、Nand flash)未使用起来的时候使用
串口配置
115200;flow:none;data bits:8;stop bits 1;parity check:none
Bootloader启动流程
主板上电,运行soc内嵌rom中的ipl程序
ipl程序将spi-flash中的SPL(start=0x4000,size=16kb)拷贝到片内的SRAM执行
SPL启动过程中可以输入ctrl+c强制进入SPL shell
SPL程序将spi-flash中的uboot复制到DDR执行
uboot启动完成后加载kernel,或者进入uboot shell
KERNEL运行
使用tftp加载运行kernel
设置电脑ip,192.168.0.2
打开tftp工具,先使用ping 192.168.0.2 查看是否通
烧写了bootloader的交换主板启动 ctrl + c 进入uboot命令行
输入tftpboot 0x83000000 zImage 将kernel镜像到DDR 0x83000000
输入go 0x83000000 启动kernel
从nand flash加载运行kernel
NAND flash规划4个分区
0x00000000 - 0x00FFFFFF 16M bootloader 分区
0x01000000 - 0x04FFFFFF 64M kernel 分区
0X05000000 - 0x15FFFFFF 256M nandfs ubi 文件系统分区
0x15000000 - 0x3F7FFFFF 680M sdcard ubi 文件系统分区
设置电脑ip和板卡ip打开tftp工具
烧写了bootloader的交换主板启动进入uboot命令行
输入tftpboot 0x83000000 uImage 将kernel镜像下载到DDR 0x83000000
输入nand erase 0x1000000 0xA00000擦除flash,此处0x1000000是kernel分区地址
0xA00000是uImage镜像大小,需要根据实际情况输入,此处的0xA00000为10M
输入nand write 0x83000000 0x1000000 0xA00000 把kernel镜像写到flash中
断电并重启,正常情况下会自动进入kernel shell
说明 :正常情况下kernel启动后脚本会自挂载nandfs和sdcard这两个分区。但如果是用户第一次使用,
这两个分区因为没格式化过,会挂载不成功,这时候需要手动执行以下命令,格式化以及挂载分区。
进入内核之后,执行以下命令
ubidetach /dev/ubi_ctrl -d 1
ubidetach /dev/ubi_ctrl -d 2
ubiformat /dev/mtd1
ubiattach -m 1 -d 1 /dev/ubi_ctrl
ubimkvol /dev/ubi1 -N nandfs -m
mount -t ubifs /dev/ubi1_0 /nandfs
ubiformat /dev/mtd2
ubiattach -m 2 -d 2 /dev/ubi_ctrl
ubimkvol /dev/ubi2 -N sdcard -m
mount -t ubifs /dev/ubi2_0 /sdcard
之后/nandfs和/sdcard下就可以存储文件了
烧写用户文件系统镜像
网线、串口线正常连接,并打开tftp服务,将ubinandfs.img放在tftp目录下
烧写了bootloader的交换主板启动 ctrl + c 进入uboot命令行
输入tftpboot 0x83000000 ubinandfs.img将该镜像文件烧写到DDR 0x83000000地址
输入ubi part nandfs 2048激活nandfs分区
输入ubi write 0x83000000 nandfs 0x1800000 将ubinandfs.img写入到nandfs分区,这里的
0x1800000是镜像文件大小,要根据实际情况调整(此处1800000 为24MB)
输入ubifsmount ubi0 挂载分区
输入ubifs可以查看文件列表
断电并重启
烧写SDK
板卡上电,进入kernel,设置板卡ip与电脑同网段,以169.254.171.219为例
ifconfig eth0 169.254.171.200
输入lsmod查看输出内容
若无显示,则按照以下操作
root@(none):/# cd /usrfs/.conf/
root@(none):/usrfs/.conf# ls
post1hook.sh readme.txt
root@(none):/usrfs/.conf# vi post1hook.sh
dmesg -n 8
cd /
ln -s /sdcard/systempart/sf-core.ko sf-core.ko
chmod 755 sf-core.ko
insmod sf-core.ko
重启并重新输入lsmod
lsmod
若有提示,则按照以下操作
ifconfig eth0 169.254.171.200
ping 169.254.171.219
cd /sdcard/systempart/
tftp -l sf-core.ko -g 169.254.171.219
tftp -l diag_shell -g 169.254.171.219
上传之后,输入insmod sf-core.ko 即可加载。
加载成功之后,输入lsmod查看
输入chmod 777 diag_shell
./diag_shell
进入diag_shell 即可进行相关命令配置。