我的平台是TI的816x/389x DDR3 EVM,之前一直用TI提供的SD卡启动的,SD卡是EZSDK的,EZSDK停止更新了,只好转到DVRRDK了,我采用nand flash启动
参考了开发包里的DM81xx_DVR_RDK_Install_Guide和http://blog.csdn.net/luhao806/article/details/7341439,灰常感谢
1. 安装DVRRDK-04.01.00.02-Linux-x86-Install
之后二次解压后得到下图文件结构,对比了install guide,发现缺少了一些文件夹如live555,好像是因为安装包不完全导致的。target目录下有nfs_DM816x_TI_EVM.tar.lzma,解压得到文件夹rfs_816x,即linux文件系统,用于第四步NFS挂载系统。
在dvr_rdk目录下,编译make -s DVR_RDK_BOARD_TYPE=DM816X_TI_EVM,pre_built_binary和tftphome里都有编译生成的uboot、uImage和ubi,拷贝到tftfboot目录中,前提是装好tftp服务,之后用tftp下载到nand里。
2. 利用tftp烧写uboot到nand
此时启动模式是SD卡启动,SW3拨码为0000010111(9~0高位到低位),SW4的nand拨码为1. 插入SD卡,打开minicom,启动,中断uboot,设置开发板的ip并保存
TI8168_EVM#setenv ipaddr 192.168.0.10
TI8168_EVM#setenv serverip 192.168.0.11
TI8168_EVM#mw.b 0x81000000 0xFF 0x260000
TI8168_EVM#tftp 0x81000000 uboot_NAND_DM816X_TI_EVM
TI8168_EVM#nandecc hw 2
TI8168_EVM#nand erase 0x0 0x260000
TI8168_EVM#nand write.i 0x81000000 0x0 0x260000
3. nand启动uboot后烧写uImage
改变启动模式为nand启动,SW3拨码为0010010010(9~0高位到低位),SW4的nand拨码为1.打开minicom,拔掉SD卡,打开minicom,开启电源出现uboot启动信息,中断
TI8168_EVM#mw.b 0x81000000 0xFF 0x300000;
TI8168_EVM#tftp 0x81000000 uImage_DM816X_TI_EVM
TI8168_EVM#nand erase 0x00580000 0x440000
TI8168_EVM#nand write.i0x810000000x00580000 0x300000
4. 安装NFS服务
在Ubuntu上,安装nfs服务。
sudo apt-get install nfs-kernel-server
sudo apt-getinstall nfs-common
sudo service nfs-kernel-server restart
改变文件系统目录权限
chmod 777 usr/DVRRDK/DVRRDK_04.01.00.02/target/rfs_816x
并在/etc/exports中加入
usr/DVRRDK/DVRRDK_04.01.00.02/target/rfs_816x *(rw,nohide,insecure,no_subtree_check,async,no_root_squash,sync)
5. 设置bootcmd及bootargs
setenv bootcmd 'nandecc sw;nand read 0x81000000 0x580000 0x300000;bootm 0x81000000'
setenv bootargs 'mem=256M console=ttyO2,115200n8 root=/dev/nfs rw nfsroot=192.168.0.11:/usr/DVRRDK/DVRRDK_04.01.00.02/target/rfs_816x ip=192.168.0.10:192.168.0.11:192.168.0.1:255.255.255.0::eth0:off vram=20M notifyk.vpssm3_sva=0xBEE00000 ddr_mem=1024M'
保存设置,saveenv,环境变量如图所示,之后重启开发板
不出意外的话,重启之后可以正常启动kernel和rootfs,如图所示: