- 論壇徽章:
- 0
|
弄AT91SAM9260EK有一段時(shí)間了,一直沒(méi)有時(shí)間把這些東西寫(xiě)下來(lái)。經(jīng)過(guò)女友的多次鼓勵(lì),還是決定將這些東西寫(xiě)下來(lái)。一來(lái),等很久以后,自己可以回頭來(lái)看;二來(lái),希望自己的這些點(diǎn)滴能夠幫助后來(lái)者。
首先,這個(gè)移植起來(lái)不難,很簡(jiǎn)單,只要你是按照9260EK板做的,只需要添加你所用的NAND在里面就可以了。順便在這里聲明下,我的板子是按照9260EK做的,不過(guò)我的板子上沒(méi)有NOR FLASH,也沒(méi)有DATA FLASH。因此,所有代碼都是在NAND FLASH中放著的。這樣是出于對(duì)成本的考慮。其他部分就和9260EK一樣咯……
下面開(kāi)始正題吧……看如何改寫(xiě)這個(gè)代碼。
這里,我的開(kāi)發(fā)文件夾路徑是這樣的。
[root@localhost at91sam]# pwd
/usr/local/at91sam
我的這個(gè)boot代碼在這個(gè)文件夾
[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,由于是大寫(xiě)開(kāi)頭,為了方便起見(jiàn),將其改為小寫(xiě)并移動(dòng)到上一層目錄,因?yàn)閟rc是存放源碼的。
[root@localhost src]# mv Bootstrap-v1.15/ ../bootstrap-v1.15/
目前我們回到bootstrap文件夾。
[root@localhost bootstrap-v1.15]# pwd
/usr/local/at91sam/boot/bootstrap-v1.15
下面要修改以下幾個(gè)地方:
1.include/nand_ids.h
[root@localhost bootstrap-v1.15]# vim include/nand_ids.h
在如下代碼中添加一行,就是使其支持我當(dāng)前板子的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
修改該文件中關(guān)于如下的部分:
ifndef CROSS_COMPILE
CROSS_COMPILE=arm-none-linux-gnueabi-
endif
3.進(jìn)入到board/at91sam9260ek/nandflash/
[root@localhost bootstrap-v1.15]# cd board/at91sam9260ek/nandflash/
[root@localhost nandflash]# make
這樣在nandflash的文件夾會(huì)生成如下文件:
[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就是我們需要的文件,可以通過(guò)SAM-BA燒寫(xiě)到目標(biāo)板中。具體燒寫(xiě)地址看圖AT91Boot.png示意。
好了,編譯AT91Bootstrap就到這里。具體SAM-BA的用法,可到www.linux4sam.org上去查找相關(guān)信息。有疑問(wèn)也可與我取得聯(lián)系。
![]()
本文來(lái)自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u2/85801/showart_2155621.html |
|