uboot中往s5p6818的emmc刷写内容
建立分区:
1 fdisk 2 3 512:0x4000000 4001000:4000000 8100000:0
fdisk 2
Partition Map for MMC device 2 -- Partition Type: DOS Part Start Sector Num Sectors UUID Type 1 2 131072 00000000-01 83 2 131080 131072 00000000-02 83 3 264192 15007736 00000000-03 83 Vendor: Man 000015 Snr f348b4bc Rev: 0.6 Prod: 8GND3R Type: Removable Hard Disk Capacity: 7456.0 MB = 7.2 GB (15269888 x 512)
三个分区,对应的都是用扇区为单位进行表示的(一个扇区=512bits)
终端输入
printenv
显示如下内容
androidcrc=-411152780 baudrate=115200 bootargs=lcd=at070tn92 tp=gslx680-linux root=/dev/mmcblk0p3 rw rootfstype=ext4 bootcmd=mmc read 0x48000000 131080 10806; bootm 0x48000000 bootcmd2=bootm 0x48000000 bootdelay=5 bootfile=uImage ethact=dwmac.c0060000 ethaddr=00:e2:1c:ba:e8:60 ethprime=RTL8211 fastboot=flash=mmc,2:ubootpak:2nd:0x200,0x78000;flash=mmc,2:2ndboot:2nd:0x200,0x4000\
;flash=mmc,2:bootloader:boot:0x8000,0x70000;flash=mmc,2:boot:ext4:0x00100000,0x04000000\
;flash=mmc,2:system:ext4:0x04100000,0x2F200000;flash=mmc,2:cache:ext4:0x33300000,0x1AC00000\
;flash=mmc,2:misc:emmc:0x4E000000,0x00800000;flash=mmc,2:recovery:emmc:0x4E900000,0x01600000\
;flash=mmc,2:userdata:ext4:0x50000000,0x0; fileaddr=48000000 gatewayip=192.168.20.1 ipaddr=192.168.20.112 netmask=255.255.255.0 serverip=192.168.20.30 stderr=serial stdin=serial stdout=seri
然后就是输入
help
看看uboot可以进行的操作有什么了;
0 - do nothing, unsuccessfully 1 - do nothing, successfully ? - alias for 'help' base - print or set address offset bdinfo - print Board Info structure boot - boot default, i.e., run 'bootcmd' bootd - boot default, i.e., run 'bootcmd' bootm - boot application image from memory bootp - boot image via network using BOOTP/TFTP protocol cmd - cmd [command] options... cmp - memory compare cp - memory copy crc32 - checksum calculation dhcp - boot image via network using DHCP/TFTP protocol drawbmp - darw bmpfile on address 'addr' to framebuffer env - environment handling commands exit - exit script ext4load- load binary file from a Ext4 filesystem ext4ls - list files in a directory (default /) ext4write- create a file in the root directory fastboot- fastboot- use USB Fastboot protocol fatinfo - print information about filesystem fatload - load binary file from a dos filesystem fatls - list files in a directory (default /) fatwrite- write file into a dos filesystem fdisk - mmc list or create ms-dos partition tables (MAX TABLE 7) go - start application at address 'addr' goimage - start Image at address 'addr' help - print command description/usage i2c - I2C sub-system i2cmod - set I2C mode iminfo - print header information for application image loadbmp - load bmpfile with command or 'bootlog' environment loop - infinite loop on address range md - memory display mdio - MDIO utility commands mii - MII utility commands mm - memory modify (auto-incrementing address) mmc - MMC sub system mmcinfo - display MMC info mtest - simple RAM read/write test mw - memory write (fill) nm - memory modify (constant address) ping - send ICMP ECHO_REQUEST to network host pmic - PMIC printenv- print environment variables reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage sdfuse - sdfuse - read images from FAT partition of SD card and write them to booting device. setenv - set environment variables showvar - print local hushshell variables source - run script from memory test - minimal test like /bin/sh tftpboot- boot image via network using TFTP protocol udown - Download USB update_mmc- update mmc data version - print monitor, compiler and linker version
其中可以用来烧写内存的两条命令就是;
1 mmc 2 mmc - MMC sub system 3 4 Usage: 5 mmc info - display info of the current MMC device 6 mmc read addr blk# cnt 7 mmc write addr blk# cnt 8 mmc erase blk# cnt 9 mmc rescan 10 mmc part - lists available partition on current mmc device 11 mmc dev [dev] [part] - show or set current mmc device [partition] 12 mmc list - lists available devices 13 mmc setdsr <value> - set DSR register value
还有就是
1 update_mmc 2 update_mmc - update mmc data 3 4 Usage: 5 update_mmc <dev no> <type> <mem> <addr> <length> 6 - type : 2ndboot | boot | raw | part 7 8 update_mmc <dev no> boot 'mem' 'addr' 'length' [load addr] 9 - update data 'length' add boot header(512) on 'mem' to device addr, 10 and set jump addr with 'load addr' 11 if no [load addr], set jump addr default u-boot _TEXT_BASE_ 12 13 update_mmc <dev no> raw 'mem' 'addr' 'length' 14 - update data 'length' on 'mem' to device addr. 15 16 update_mmc <dev no> part 'mem' 'part no' 'length' 17 - update partition image 'length' on 'mem' to mmc 'part no'. 18 19 Note. 20 - All numeric parameters are assumed to be hex.
所以可以通过tftp 把uImage和rootfs都放进去,uImage做成boot.img还有做,使用的方法就是直接烧进去分区地址里面,用的是
mmc write 0x48000000 131080 10806
然后对应的环境变量也要做修改
setenv bootcmd mmc read 0x48000000 131080 10806 \;bootm 0x48000000
saveenv
rese
这样,kernel的镜像就被烧写进去mmc的第二个分区里面了
rootfs的烧写则是需要用
update_mmc 2 raw 0x48000000 0x8100000 0x1f400000
或者是
mmc write 0x48000000 264192 1024000
然后可以正常使用。
reset