Hi3516dv300 开发第三讲 tftp 烧录uImage/rootfs步骤

       目前手头有空,就玩了下hi3516dv300的开发板子,进行了sdk的编译(uboot +kernel+ko),详见下一篇;然后要进行固件分区烧录,现将步骤作个笔记。

0.前提:机器已经烧录好uboot,可以使用串口进入uboot模式;

1.打开tftp server ,请要烧录的文件(uImage/rootfs.camfs)放到其目录;

2.在uboot里找开系统分区信息:

  

Hit any key to stop autoboot:  0
hisilicon #
hisilicon # printenv
arch=arm
baudrate=115200
board=hi3516dv300
board_name=hi3516dv300
bootargs=mem=256M console=ttyAMA0,115200 root=/dev/mmcblk0p3 rootfstype=ext4 ro rootwait blkdevparts=mmcblk0:1M(boot),8M(kernel),16M(rootfs),256M(appfs),8M(configfs),1280M(datafs),-(mntfs) reset=0
bootcmd=mmc read 0 0x82000000 0x800 0x4000;bootm 0x82000000
bootdelay=1
bootfile=uImage
cpu=armv7
ethact=eth0
ipaddr=192.168.1.10
netmask=255.255.255.0
phyaddrd=0
phyaddru=0
serverip=192.168.1.63
soc=hi3516dv300
stderr=serial
stdin=serial
stdout=serial
vendor=hisilicon
verify=n

Environment size: 585/262140 bytes
hisilicon #
3.烧录uImage:

由2中的红色部分可以看到kernel分区大小为8M,从1M地址开始。

mw.b 0x82000000 ff 0x800000;tftp 0x82000000 uImage
mmc erase 800 4000; mmc write 0 0x82000000 800 4000

cmd详解如下:
mw.b 0x82000000 ff 0x800000
ram  start 0x82000000
ram  set   0xff
ram  length 0x800000 = 8M

tftp 0x82000000 uImage
从tftp server download uImage 到 0x82000000

mmc erase 800 4000;
emmc erase start addr(block):0x800 (=1MB, 1block =512Byte)
emmc erase length(block) 0x4000(8MB)

 

烧录log如下:

hisilicon # mw.b 0x82000000 ff 0x800000;tftp 0x82000000 uImage;mmc erase 800 4000; mmc write 0 0x82000000 800 4000
Hisilicon ETH net controler
eth0 : phy status change : LINK=DOWN : DUPLEX=FULL : SPEED=100M
eth0 : phy status change : LINK=UP : DUPLEX=FULL : SPEED=100M
Using eth0 device
TFTP from server 192.168.1.63; our IP address is 192.168.1.10
Filename 'uImage'.
Load address: 0x82000000
Loading: #################################################################
         #################################################################
         #################################################################
         ######################################
         474.6 KiB/s
done
Bytes transferred = 3411694 (340eee hex)

MMC erase: dev # 0, block # 2048, count 16384 ... 16384 blocks erased: OK

MMC write: dev # 0, block # 2048, count 16384 ... 16384 blocks written: OK
 

 

4:烧录rootfs rootfs.camfs 16MB

cmd如下:
mw.b 0x82000000 ff 0x1000000;tftp 0x82000000 hi3516.rootfs.img
mmc erase 4800 8000; mmc write 0 0x82000000 4800 8000

烧录log如下:

hisilicon # mw.b 0x82000000 ff 0x1000000;tftp 0x82000000 hi3516.rootfs.img;mmc erase 4800 8000; mmc write 0 0x82000000 4800 8000
Hisilicon ETH net controler
eth0 : phy status change : LINK=DOWN : DUPLEX=FULL : SPEED=100M
eth0 : phy status change : LINK=UP : DUPLEX=FULL : SPEED=100M
Using eth0 device
TFTP from server 192.168.1.63; our IP address is 192.168.1.10
Filename 'hi3516.rootfs.img'.
Load address: 0x82000000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #############################################################
         599.6 KiB/s
done
Bytes transferred = 4706980 (47d2a4 hex)

MMC erase: dev # 0, block # 18432, count 32768 ... 32768 blocks erased: OK

MMC write: dev # 0, block # 18432, count 32768 ... 32768 blocks written: OK

 

5.如果rootfs是ext4格式,且flash是emmc,则使用如下的烧写方法:

mw.b 0x82000000 ff 0x1000000;tftp 0x82000000 hi3516.rootfs.img;

mmc erase 4800 8000; mmc write.ext4sp 0 0x82000000 4800 8000

你可能感兴趣的:(linux)