kahou

导航

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

 

posted on 2018-03-28 16:37  kahou  阅读(2455)  评论(0编辑  收藏  举报