文章讲述使用硬件平台为飞凌OK1028开发板(NXP公司Layerscape系列 LS1028A 芯片),本文主要讲述LS1028A系统固化使用说明,说明包括如何制作烧写TF卡,如何USB烧写,如何通过TFTP烧写QSPI。
一、 制作烧写TF卡OK1028A-C平台含有一个TF卡接口并且支持TF卡启动,因此可以借助TF卡将镜像烧写到EMMC中,下面是制作烧写TF卡的过程。
将TF卡插入主机,并将其连接到虚拟机Ubuntu中
查看设备节点
如果您只插入了一个TF卡设备默认情况下设备节点为/dev/sdb具体以实际情况为准
烧写firmware到TF卡
将用户资料工具目录的mksdcard.sh及镜像目录的firmware_ls1028ardb_uboot_sdboot.img拷贝到虚拟机的/home/forlinx/work目录
执行做卡脚本:
sudo ./mksdcard.sh
根据提示选择设备节点,这里只插入了一个TF卡,输入1
输入“y”进行确认
这样烧写TF卡就制作完成了,下面我们还需要将镜像文件拷贝到TF卡中,首先将TF卡插入Windows主机中,然后将网盘资料Linux/镜像目录中的文件拷贝到TF卡中。
Scripts | ls1028ardb_update.scr |
Tools | usb_update.itb |
Rootfs | ubuntu.img |
Firmware | firmware_ls1028ardb_uboot_emmcboot.img firmware_ls1028ardb_uboot_xspiboot.img |
DP2LVDS | dp2lvds_firmware.bin |
Config | config.ini |
Boot | 内核及设备树、开机logo等 |
TF卡FAT32分区存放以下文件:
配置文件config.ini内容如下:
注意:默认配置文件不烧写QSPI,如果需要烧写QSPI请将qspiflash选项改为true。
将烧写TF卡插入TF卡座,启动开发板,将拨码开关拨至TF卡启动,上电自动进入烧写流程。
注意:烧写成功后核心板心跳灯将熄灭,烧写异常则常亮。
二、 U盘烧写OK1028A-C支持U盘烧写,前提是QSPI flash中的u-boot可以正常启动,使用QSPI启动来配合U盘烧写。U盘容量需要大于8G,分区格式为FAT32,同时U盘只能包含一个分区,有些客户的U盘做过系统启动盘,会包含隐藏分区,请避免使用。
将网盘资料images目录的文件拷贝到U盘中,并将U盘插入OK1028A-C的USB3.0中。将拨码开关拨至QSPI启动,上电启动开发板(请勿插TF卡)。
OK1028A-C支持网络烧写QSPI,前提是flash中的u-boot可以正常启动。
1、 TFTP环境搭建Tftp是用来远程下载文件的常用网络协议,基于udp实现,在嵌入式调试开发过程中经常用来从Host主机下载文件到开发板,避免繁琐的U盘拷贝过程。本节主要讲解Host端的tftp server的环境搭建,飞凌提供的ubuntu18.04中默认已经安装好了tftp server您可以略过此节。
安装前请确保您的虚拟机可以访问网络,首先安装tftp-hpa和tftpd-hpa(前者是客户端,后者是服务程序)以及xinetd。
root@forlinx:~$ sudo apt-get install tftp-hpa tftpd-hpa xinetd
重新启动tftp服务:
root@forlinx:~$ sudo service tftpd-hpa restart
查看tftp配置文件:
root@forlinx:~$ cat /etc/default/tftpd-hpa
默认的tftp目录为/var/lib/tftpboot保持默认即可,下面进行本地tftp测试:
root@forlinx:~$ sudo chmod 777 -R /var/lib/tftpboot
root@forlinx:~$ echo "www.forlinx.com" > /var/lib/tftpboot/test
root@forlinx:~$ tftp forlinx
get test
q
root@forlinx:~$ ls test
测试成功。
2、 TFTP烧写QSPIOK1028A-C平台的uboot阶段可以使用以太网,并且uboot中支持tftp协议,因此我们只需要稍加配置开发板的网络,便可以通过tftp将文件从Host主机下载到开发板的内存,然后烧写到qspi nor中。下面演示网络配置以及烧写过程。注意,用户的网络环境各不相同,配置网络时,具体的IP信息等请以实际为准。
本节以烧写固件firmware_ls1028ardb_uboot_xspiboot.img为例:
查看虚拟机IP:
root@forlinx:~$ ifconfig
拷贝Firmware文件到TFTP目录:
root@forlinx:~$ cp firmware_ls1028ardb_uboot_xspiboot.img /var/lib/tftpboot/
将网线插入SGMII网口,开发板上电,连续敲击空格键,使开发板停留在uboot命令行。
配置开发板IP:
=> setenv ipaddr 192.168.1.200
配置Server IP:
=> setenv serverip 192.168.1.100
Ping测试:
=> ping 192.168.1.100
Host is alive表示网络通信正常,下载文件到内存:
=> tftp 0x90000000 firmware_ls1028ardb_uboot_xspiboot.img
烧写QSPI:
=> sf probe 0:0
=> sf erase 0 0x1000000
=> sf write 0x90000000 0 0x1000000
reset
调整拨码开关,测试QSPI启动。