加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

X-LOAD从nand flash启动

发布时间:2020-12-15 18:00:49 所属栏目:百科 来源:网络整理
导读:1.前沿 ? ? ? ?刚拿到TI公司免费的开发板,发现它默认从SD卡启动,而我们产品没有SD卡,只能从NAND启动,还没有拿到产品,就用开发板来做,为以后做准备了。 2.准备 ? ? ?a,安装交叉编译环境: ? ? ? ?Sourcery G++ For ARM GUN/LINUX Spring 2009 安装包如

1.前沿

? ? ? ?刚拿到TI公司免费的开发板,发现它默认从SD卡启动,而我们产品没有SD卡,只能从NAND启动,还没有拿到产品,就用开发板来做,为以后做准备了。

2.准备

? ? ?a,安装交叉编译环境:

? ? ? ?Sourcery G++ For ARM GUN/LINUX Spring 2009 安装包如下:

? ? ? ? arm-2009q1-203-arm-none-linux-gnueabi.bin(TI给的光盘,大家可以从CODESOURCERY官网下载)

? ? ?b.安装ti-sdk-am3517-evm

? ? ? ? 安装完后相关目录如下:psp(镜像和源码包),filesystem

3.SD卡启动盘制作

? ?为了保留TI的SD卡,找了个新4GSD卡,就用它重新做个SD卡启动盘,步骤:

? ? a.初始化SD卡位FAT32格式

? ? ? ?在windows下直接格式位FAT32。

? ? b.为SD卡建立FAT32和EXT3双分区

? ? ? ?1> fdisk -l找到设备节点,这里是/dev/sdb

? ? ? ?2> 分区:先删除原来分区,然后创建第一个主分区,再设定分区类型(命令t),输入分区类型(c表示FAT32),激活这个分区(命令a);

? ? ? ? ? ? ? ? ? ? ? ? 创建第二个分区ext3,这个分区为了放置文件系统,最后保存分区(命令w);

? ? ? ?3> 格式化

? ? ? ? ? ? ? ? mkfs.msdos -F 32 /dev/sdb1 -n boot

? ? ? ? ? ? ? ? mkfs.ext3 /dev/sdb2 -L EXT3

4. ?复制MLO和u-boot.bin到SD卡第一个分区boot,注意必须选复制MLO(x-load.bin.ift)

? ?cp MLO /mnt/

? ?cp u-boot.bin /mnt

5.讲拨码开关跳到MMC启动方式,插入SD卡,启动。。。。

二、移植开发板从NAND 启动

1.x-load移植

? a. 在配置文件中关闭MMC

? ?#define CONFIG_MMC ? ? ? ? ? ? ? 1(注释掉)
? #if defined(CONFIG_MMC)
? ? #define CFG_CMD_MMC ? ? ? ? ? ? ?1
? ?#define CFG_CMD_FAT ? ? ? ? ? ? ?1
? ?#endif

? b.关闭NANDECC效验,(不关闭它,加载U-BOOT是总是提示ECC错误)

? ?#define ECC_HW_ENABLE(注释掉)可以参考以下代码:

? #ifdef CFG_PRINTF
? ? ? ? ? ? ? ? ? printf("Booting from nand . . .n");
? #endif
? ? ? ? ? ? ?for (i = NAND_UBOOT_START; i < NAND_UBOOT_END; i+= NAND_BLOCK_SIZE){
? ? ? ? ? ? ? ? ? ? ? ? ? ? if (!nand_read_block(buf,i))(重点在这个函数里进行ECC效验,报错)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?buf += NAND_BLOCK_SIZE; /* advance buf ptr */
? ? ?}
?}

2.编译X-LOAD

? make am3517evm_config

? make

3. 生成TI ROMCODE识别格式文件x-load.bin.ift

? ?./signGP x-load.bin


三、烧写x-load.bin.ift和u-boot.bin

? ?1.烧写x-load.bin.ift

? ? ?参照配置文件中nand分区表:(也可以自己定义)

*0x00000000 - 0x0007FFFF ?Booting Image ? ?X-LOADER
* 0x00080000 - 0x0023FFFF ?U-Boot Image
* 0x00240000 - 0x0027FFFF ?U-Boot Env Data (X-loader doesn't care)
* 0x00280000 - 0x0077FFFF ?Kernel Image
* 0x00780000 - 0x08000000 ?depends on application

? ? ?mmc init

? ? nand erase 0 80000

? ? loadb 80000000 ? (用串口下载x-load.bin.ift,这里没有从MMC中读fatload)

? ? nandecc hw

? ? nand write.i 80000000 0 80000

2.烧写U-BOOT

? ? nand erase ?80000 240000

? ? loadb 80000000 ? (用串口下载u-boot.bin,这里没有从MMC中读fatload)

? ? nandecc sw

? ? nand write.i 80000000 ?80000 240000

四、nand启动

? 选择拨码开关为NAND启动。取出SD卡,如下:

Texas Instruments X-Loader 1.51 (Nov ?1 2011 - 23:30:10)
Booting from nand . . .
Starting OS Bootloader...


U-Boot 2009.11 (Jan 22 2011 - 01:45:10)

OMAP34xx/35xx-GP ES1.0,CPU-OPP2 L3-165MHz
AM3517EVM Board + LPDDR/NAND
I2C: ? ready
DRAM: ?256 MB
NAND: ?512 MiB
*** Warning - bad CRC or NAND,using default environment

In: ? ?serialOut: ? serialErr: ? serialDie ID #3854000100000000015da3961500d00bNet: ? davinci_emac_initializeEthernet PHY: GENERIC @ 0x00DaVinci EMACHit any key to stop autoboot: ?0

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读