uboot在at91sam9260+norflash(sst39vf3201)+dm9161上算是移植好了
其实看看工作量也不是很大,只是如果对uboot整体没有把握的话,出了问题你就慌了,不知道如何下手。
norflash我最后还是从at91rm9260dk里面拷贝了flash.c,把sst39vf3201的信息加进去,我感觉很像mtd里面的jedec,主要就是三个函数,flash_init(),flash_erase(),write_buff().
注意:write_buff里面的
// cflag = icache_status ();
// icache_disable ();
// iflag = disable_interrupts ()
// if (iflag) // enable_interrupts (); // if (cflag) // icache_enable ();
|
注释掉,要不然cp的时候速度会很受影响
网口的驱动基本不要修改macb,还有就是配置文件把rmii改成mii
#undef CONFIG_RMII
#define CONFIG_MII 1
#define CONFIG_NET_MULTI 1
|
只是我的硬件etx2和etx3使用和at91sam9260ek上不一样,所以修改下。不修改出现的错误现象是,网口可以link up,但是你ping的时候总是超时,肯定的发送管脚错了,你还指望发啥呢。。
#if defined(CONFIG_AT91SAM9260EK) || defined(CONFIG_AFEB9260)
/*
* use PA10, PA11 for ETX2, ETX3.
* PA23 and PA24 are for TWI EEPROM
*/
at91_set_B_periph(AT91_PIN_PA10, 0); /* ETX2 */
at91_set_B_periph(AT91_PIN_PA11, 0); /* ETX3 */
#else
at91_set_B_periph(AT91_PIN_PA23, 0); /* ETX2 */
at91_set_B_periph(AT91_PIN_PA24, 0); /* ETX3 */
#endif
改成
#if !defined(CONFIG_AT91SAM9260EK) || defined(CONFIG_AFEB9260)
/*
* use PA10, PA11 for ETX2, ETX3.
* PA23 and PA24 are for TWI EEPROM
*/
at91_set_B_periph(AT91_PIN_PA10, 0); /* ETX2 */
at91_set_B_periph(AT91_PIN_PA11, 0); /* ETX3 */
#else
at91_set_B_periph(AT91_PIN_PA23, 0); /* ETX2 */
at91_set_B_periph(AT91_PIN_PA24, 0); /* ETX3 */
#endif
|
最后给一个patch
|
文件: | u-boot-2009.11.1.patch.gz |
大小: | 4KB |
下载: | 下载 |
|
阅读(2419) | 评论(0) | 转发(0) |