AM335X uboot烧写

来源:互联网 发布:瓦尔特刀具软件 编辑:程序博客网 时间:2024/05/16 07:41

原创:http://blog.sina.com.cn/u/2312748742

NAND地址如下: 


+------------+-->0x00000000-> SPL start (SPL copy on 1st block)| || |-->0x0001FFFF-> SPL end | |-->0x00020000-> SPL.backup1 start (SPL copy on 2nd block)| || |-->0x0003FFFF-> SPL.backup1 end | |-->0x00040000-> SPL.backup2 start (SPL copy on 3rd block)| || |-->0x0005FFFF-> SPL.backup2 end | |-->0x00060000-> SPL.backup3 start (SPL copy on 4th block)| || |-->0x0007FFFF-> SPL.backup3 end| |-->0x00080000-> U-Boot start| | | |-->0x002BFFFF-> U-Boot end | |-->0x00260000-> ENV start| || || |-->0x0027FFFF-> ENV end| |-->0x00280000-> Linux Kernel start| || || || || |-->0x0077FFFF-> Linux Kernel end| |-->0x00780000-> File system start| || || || || || || || || || || || |+------------+-->0x10000000-> NAND end (Free end)

 

 

一、串口烧入:

  1)建立uboot#界面

    1、打开Tera Term,设置好串口和波特率,335开关设置1、7、8打开,其它关闭。

     2、选择Transfer--> XMODEM --> Send (1K mode)把u-boot-spl.bin文件写入。

    3、选择Transfer --> YMODEM --> Send (1Kmode)把u-boot.img文件写入。

    4、 这两个文件写入后会自动启动uboot,在倒计时时快速按入enter键,进入到uboot#界面

  2)烧入  MLO

    1、输入 U-Boot#  loadb0x82000000 

    2、输入 U-Boot#  loadb 0x82000000 选择“File -> Transfer -> Kermit -> Send”.选入MLO
    3、(重要)输入U-Boot#  nandecc hw 2 选择检验类型
    4、U-Boot# nand erase 0x0 0x20000 //擦除nand 0x0地址,偏移量0x2000
     5、U-Boot#nand write 0x82000000 0x0 0x20000//将内存0x82000000写入到nand 0x0 中
  3)烧入  u-boot.img 同理烧入到ox800000

    1、U-Boot#  loadb0x82000000 
    2、输入 U-Boot#  loadb 0x82000000 选择“File -> Transfer -> Kermit -> Send”.选入u-boot.img

     3、U-Boot# nandecc hw 2 
     4、U-Boot#nand erase 0x80000 0x40000
     5、U-Boot#nand write 0x82000000 0x80000 0x40000

 4)偏移量计算:

For example, to mark block 32 (assuming erase block size of128Kbytes) as bad block - offset = blocknum * 128 * 1024:

U-Boot# nand markbad 0x400000

二、sd卡烧入:

2-1:

1)加载MLO到内存中。
U-Boot# mmc rescan
U-Boot# fatload mmc 0 0x82000000 MLO

2)从内存到nand falsh中。
U-Boot# nand erase 0x0 0x20000
U-Boot# nand write 0x82000000 0x0 0x20000

3)加载u-boot.img到内存中。
U-Boot# mmc rescan(mmc卡扫描,同挂载)
U-Boot# fatload mmc 0 0x82000000u-boot.img(读取文件从mmc卡中的u-boot.img文件到0x82000000地址中)

4)从内存到nand falsh中。
U-Boot# nand erase 0x80000 0x40000
U-Boot# nand write 0x82000000 0x800000x40000(从0x82000000读取并写入到起始地址为0x80000,偏移量0x40000)

2-2

可以建立uEnv.txt文件如下:(最后一行为空)
1)
bootargs=console=ttyO0,115200n8 root=/dev/mmcblk0p2 mem=128Mrootwait
bootcmd=mmc rescan; fatload mmc 0 0x82000000 uImage; bootm0x82000000
uenvcmd=boot   (空)
2)
命令
 U-Boot# mmc rescan
 U-Boot# fatload mmc 0 0x81000000 uEnv.txt
 U-Boot# env import -t 0x81000000 $filesize
 U-Boot# boot

 

 

 

 

 

 

 

 

原创粉丝点击