编译Bootstrap。

 我的开发板的硬件:
MCU at91sam9260
SDRAM MT48LCM32(32MB 32bit)
NANDFLASH K9F5608DOC(32MB)

没有dataflash和norflash


针对我板子对BootStrap进行了如下修改。
一、因为我用的sdram是32M的,用了12个引脚,所以将AT91C_SDRAMC_NR_13改成AT91C_SDRAMC_NR_12。
 sdram_init(     AT91C_SDRAMC_NC_9  |
                                AT91C_SDRAMC_NR_12 |
                                AT91C_SDRAMC_CAS_2 |
                                AT91C_SDRAMC_NB_4_BANKS |
                                AT91C_SDRAMC_DBW_32_BITS |
                                AT91C_SDRAMC_TWR_2 |
                                AT91C_SDRAMC_TRC_7 |
                                AT91C_SDRAMC_TRP_2 |
                                AT91C_SDRAMC_TRCD_2 |
                                AT91C_SDRAMC_TRAS_5 |
                                AT91C_SDRAMC_TXSR_8,            /* Control Register */
                                (MASTER_CLOCK * 7)/1000000);    /* Refresh Timer Register */
二、将nand_ids.h中的nandflash参数改成{0xec75, 0x800, 0x4000, 0x200, 0x10, 0x0, "Samsung K9F5608U0M 32MB/0"}。

三、将JUMP_ADDR的值由23F00000改成21F00000。
四、将driver/nandflash.c里AT91F_NandRead()这个函数中的检测坏块的程序去掉。如果不去,Bootstrap总是认为nandflash所有的块都是坏块,程序也就无法进行。这只是投机取巧的方法,幸好这样不影响加载U-boot。原因是什么不太清楚,好像是因为我用的nandflash的读写时序和公版的不同。

你可能感兴趣的:(编译Bootstrap。)