Chinaunix首页 | 论坛 | 博客
  • 博客访问: 827855
  • 博文数量: 213
  • 博客积分: 5048
  • 博客等级: 大校
  • 技术积分: 1883
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-14 10:14
文章分类

全部博文(213)

文章存档

2011年(4)

2010年(55)

2009年(47)

2008年(107)

我的朋友

分类: 嵌入式

2010-03-29 16:05:54

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
下载:下载
阅读(2382) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~