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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章