移植AT91Bootstrap1.15

作者: lichangc
发布时间:2015-07-02 17:19:52

弄AT91SAM9260EK有一段时间了,一直没有时间把这些东西写下来。经过女友的多次鼓励,还是决定将这些东西写下来。一来,等很久以后,自己可以回头来看;二来,希望自己的这些点滴能够帮助后来者。
    首先,这个移植起来不难,很简单,只要你是按照9260EK板做的,只需要添加你所用的NAND在里面就可以了。顺便在这里声明下,我的板子是按照9260EK做的,不过我的板子上没有NOR FLASH,也没有DATA FLASH。因此,所有代码都是在NAND FLASH中放着的。这样是出于对成本的考虑。其他部分就和9260EK一样咯……
    下面开始正题吧……看如何改写这个代码。
    这里,我的开发文件夹路径是这样的。
    [root@localhost at91sam]# pwd
    /usr/local/at91sam
    我的这个boot代码在这个文件夹
    [root@localhost src]# pwd
    /usr/local/at91sam/boot/src
    [root@localhost src]# ls
    AT91Bootstrap1.15.zip  u-boot-1.3.4-exp.3.diff  u-boot-1.3.4.tar.bz2
    [root@localhost src]# unzip AT91Bootstrap1.15.zip
    解压之后,文件名为Bootstrap-v1.15,由于是大写开头,为了方便起见,将其改为小写并移动到上一层目录,因为src是存放源码的。
    [root@localhost src]# mv Bootstrap-v1.15/ ../bootstrap-v1.15/
    目前我们回到bootstrap文件夹。
    [root@localhost bootstrap-v1.15]# pwd
    /usr/local/at91sam/boot/bootstrap-v1.15
    下面要修改以下几个地方:
    1.include/nand_ids.h
    [root@localhost bootstrap-v1.15]# vim include/nand_ids.h
    在如下代码中添加一行,就是使其支持我当前板子的nand flash,K9F1G08U0B是我的nandflash:
    /* Supported NandFlash devices */
    static struct SNandInitInfo NandFlash_InitInfo[] = {
        {0xecda, 0x800, 0x20000, 0x800, 0x40, 0x0, "K9F2G08U0M\0"},
        {0xecaa, 0x800, 0x20000, 0x800, 0x40, 0x0, "K9F2G08R0A\0"},
        {0xecf1, 0x400, 0x20000, 0x800, 0x40, 0x0, "K9F1G08U0B\0"},     /*ADD BY LPC*/
        {0x2cca, 0x800, 0x20000, 0x800, 0x40, 0x1, "MT29F2G16AAB\0"},
        {0x2cda, 0x800, 0x20000, 0x800, 0x40, 0x0, "MT29F2G08AAC\0"},
        {0x20aa, 0x800, 0x20000, 0x800, 0x40, 0x0, "STMNAND02GR3B\0"},
        {0x2caa, 0x800, 0x20000, 0x800, 0x40, 0x0, "MT29F2G08ABD\0"},
        {0,}
    };
    2.修改board/at91sam9260ek/nandflash/Makefile
    修改该文件中关于如下的部分:
    ifndef CROSS_COMPILE
    CROSS_COMPILE=arm-none-Linux-gnueabi-
    endif
    3.进入到board/at91sam9260ek/nandflash/
    [root@localhost bootstrap-v1.15]# cd board/at91sam9260ek/nandflash/
    [root@localhost nandflash]# make
    这样在nandflash的文件夹会生成如下文件:
    [root@localhost nandflash]# ls
    at91sam9260ek.h  crt0_gnu.o  div0.o  main.o    nandflash_at91sam9260ek.bin  nandflash_at91sam9260ek.map  pmc.o     string.o  _udivsi3.o
    at91sam9260ek.o  debug.o     gpio.o  Makefile  nandflash_at91sam9260ek.elf  nandflash.o                  sdramc.o  udiv.o    _umodsi3.o
    其中nandflash_at91sam9260ek.bin就是我们需要的文件,可以通过SAM-BA烧写到目标板中。具体烧写地址看图AT91Boot.png示意。
    好了,编译AT91Bootstrap就到这里。具体SAM-BA的用法,可到www.linux4sam.org上去查找相关信息。有疑问也可与我取得联系。


标签: Bootstrap
来源:http://blog.csdn.net/lichangc/article/details/7423737

推荐: