AM335x nand启动

PC操作系统:(下载)ubuntu 12.04

使用的开发板:am335x Beaglebone  am335x Beaglebone 

开发板使用的操作系统:linux 3.2

step1:安装linux开发环境。(下载)ti-sdk-am335x-evm-05.07.00.00-Linux-x86-Install

err1:建议搭配的Ubuntu系统版本是10.04和12.04。我电脑原本装的是11.04版本,结果安装sdk的时候各种错误,改了两天,总是旧错误改完出新错误,最后干脆下载文件链接就出错,弃用。下载了12.04,重新安装,果然这次安装sdk的时候很顺利。不过安装还是需要耗时1小时左右。

参考资料:安装推荐帮助文档Ubuntu的相关命令qq

err2:05.07的uboot在sd卡上不能正常启动,我直接将(下载)u-boot-2011.09-psp04.06.00.07放到sdk的安装目录中。配置好环境变量之后,编译了一下,报错信息是找不到.h文件。将需要的文件拷贝到对应的位置上去,再编译,成功!

step2:nand 启动环境配置

参考资料:uboot-user-guide 

首先,将SD卡格式化为fat32文件系统,将u-boot和MLO拷贝到sd卡上,SD启动。不进入系统。通过SD卡烧写NAND。uboot-guide里面有清晰的NAND Layout。下面是敲入的command。

SD 卡启动配置SW3[8:1]00010111/SW4[8:1]01000000。

NAND启动配置SW3[8:1]00010010/SW4[8:1]01000010

参考资料:am335x从nandflash启动遇到的问题解决方法

################################################################################

##nand 格式化

Hit any key to stop autoboot:  0 
U-Boot# nand scrub.chip

##SPL烧写
U-Boot# mmc rescan 
U-Boot# mw.b 0x82000000 0xFF 0x20000 
U-Boot# fatload mmc 0 0x82000000 nMLO
U-Boot# nandecc hw 2
U-Boot# nand erase 0x0 0x20000 
U-Boot# nand write.i 0x82000000 0x0 0x20000

##u-boot.img烧写
U-Boot# mmc rescan 
U-Boot# mw.b 0x82000000 0xFF 0x40000 
U-Boot# fatload mmc 0 0x82000000 nu-boot.img 
U-Boot# nandecc hw 2 
U-Boot# nand erase 0x80000 0x40000 
U-Boot# nand write.i 0x82000000 0x80000 0x40000

##操作系统烧写
U-Boot# mmc rescan 
U-Boot# mw.b 0x81000000 0xFF 0x500000 
U-Boot# fatload mmc 0 0x81000000 nsystem
U-Boot# nandecc hw 2 
U-Boot# nand erase 0x280000 0x500000 
U-Boot# nand write.i 0x81000000 0x280000 0x500000

################################################################################

err1:nandflash写操作错误,丢页。写到nandflash上的数据,通过读nand到ram上,查看是否写入正确,查看命令:

U-Boot#nand read 0x82000000 0x0 0x20000
U-Boot#md 0x82000000 1024

原因:nandflash虚焊。解决办法:把nandflash重新走一遍焊锡。

err2:MLO烧写到nand上以后,切换到nand启动,串口没有输出。原因:SW4[2]ecc校验没设置。

step3:修改u-boot,nand启动修改

对u-boot的设置,基本都在am335x_evm.h中。    

原版 nand启动,改动
"kloadaddr=0x80007fc0\0" \ "kloadaddr=0x81000000\0" \
"bootm ${kloadaddr}\0" \"go ${kloadaddr}\0" \
#define CONFIG_BOOTCOMMAND \
"if mmc rescan; then " \
"echo SD/MMC found on device ${mmc_dev};" \
"if run loadbootenv; then " \
"echo Loaded environment from ${bootenv};" \
"run importbootenv;" \
"fi;" \
"if test -n $uenvcmd; then " \
"echo Running uenvcmd ...;" \
"run uenvcmd;" \
"fi;" \
"if run mmc_load_uimage; then " \
"run mmc_args;" \
"bootm ${kloadaddr};" \
"fi;" \
"fi;" \
"run nand_boot;" \
#define CONFIG_BOOTCOMMAND \
        "echo NAND Boot Start by qq 2013;" \
        "run nand_boot;" \

/*"if mmc rescan; then " \
"echo SD/MMC found on device ${mmc_dev};" \
"if run loadbootenv; then " \
"echo Loaded environment from ${bootenv};" \
"run importbootenv;" \
"fi;" \
"if test -n $uenvcmd; then " \
"echo Running uenvcmd ...;" \
"run uenvcmd;" \
"fi;" \
"if run mmc_load_uimage; then " \
"run mmc_args;" \
"bootm ${kloadaddr};" \
"fi;" \
"fi;" \*/

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值