u-boot-2010.03在tq6410上的移植详解(三)

来源:互联网 发布:北京建筑软件班 编辑:程序博客网 时间:2024/06/06 07:27

五、             DM9000在Uboot2010.03上的移植

1)首先进入include/configs/修改smdk6410.h文件,屏蔽CS8900的相关宏定义同时添加DM9000AE的相关宏

#cd include/configs///

#gedit smdk6410.h //

smdk6410.h修改内容如下:

#define CONFIG_NET_MULTI           1

//#define CONFIG_CS8900                  /* we have a CS8900 on-board */

//#define CONFIG_CS8900_BASE           0x18800300

//#define CONFIG_CS8900_BUS16           /* follow the Linux driver    */

#define CONFIG_DRIVER_DM9000          1/* we have a DM9000AE on-board      */

#define CONFIG_DM9000_BASE              0x18000300

#define DM9000_IO               CONFIG_DM9000_BASE

#define DM9000_DATA                (CONFIG_DM9000_BASE + 4)

#define CONFIG_DM9000_USE_16BIT

#define CONFIG_ETHADDR        10:23:45:67:89:ab

#define CONFIG_NETMASK              255.255.255.0

#define CONFIG_IPADDR            192.168.174.2 //开发板上的ip地址

#define CONFIG_SERVERIP        192.168.174.1//虚拟机上的ip地址

#define CONFIG_GATEWAYIP   192.168.174.6

#define CONFIG_DM9000_DEBUG//一定要加上否则会出现没有设置ipaddr的现象

2)修改net/eth.c,添加DM9000AE的初始化函数(红色部分为修改的地方):

int eth_initialize(bd_t *bis)

{

      unsigned char env_enetaddr[6];

      int eth_number = 0;

      eth_devices = NULL;

      eth_current = NULL;

      show_boot_progress (64);

#if defined(CONFIG_MII) || defined(CONFIG_CMD_MII)

      miiphy_init();

#endif

      /* Try board-specific initialization first. If it fails or isn't

       * present, try the cpu-specific initialization */

      if (board_eth_init(bis) < 0)

             cpu_eth_init(bis);

#if defined(CONFIG_DB64360) || defined(CONFIG_CPCI750)

      mv6436x_eth_initialize(bis);

#endif

#if defined(CONFIG_DB64460) || defined(CONFIG_P3Mx)

      mv6446x_eth_initialize(bis);

#endif

#if defined(CONFIG_DRIVER_DM9000)

      dm9000_initialize(bis);

#endif

      if (!eth_devices) {

             puts ("No ethernet found./n");

             show_boot_progress (-64);

      } else {

             struct eth_device *dev = eth_devices;

             char *ethprime = getenv ("ethprime");

             show_boot_progress (65);

             do {

                    if (eth_number)

                           puts (", ");

                    printf("%s", dev->name);

                    if (ethprime && strcmp (dev->name, ethprime) == 0) {

                           eth_current = dev;

                           puts (" [PRIME]");

                    }

                    eth_getenv_enetaddr_by_index(eth_number, env_enetaddr);

                    if (memcmp(env_enetaddr, "/0/0/0/0/0/0", 6)) {

                           if (memcmp(dev->enetaddr, "/0/0/0/0/0/0", 6) &&

                               memcmp(dev->enetaddr, env_enetaddr, 6))

                           {

                                  printf ("/nWarning: %s MAC addresses don't match:/n",

                                         dev->name);

                                  printf ("Address in SROM is         %pM/n",

                                         dev->enetaddr);

                                  printf ("Address in environment is %pM/n",

                                         env_enetaddr);

                           }

                           memcpy(dev->enetaddr, env_enetaddr, 6);

                    }

                    eth_number++;

                    dev = dev->next;

             } while(dev != eth_devices);

重新编译uboot,并下载uboot到nand flash中,重新启动开发板,观察打印信息如下,可以发现uboot已经能识别DM9000芯片:

使用ping指令进行测试如下:

至此,uboot已经能支持dm9000的网卡,可以使用tftp协议下载程序并在ram中运行了。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 录微课时忘词怎么办 微课掌上通看不到信息怎么办 五年级学生上课很吵新老师怎么办 跟财务老师吵起来怎么办 qq把微信冻结了怎么办 微信给封号了怎么办 微信久了没登录冻结了怎么办 换手机号了微店怎么办 ai文件置入后都是字怎么办 excel加载项被禁用了怎么办 被期刊网骗了怎么办 发表的文章不想被收录怎么办? 农村长说的眼睛害了怎么办 普通党员不认同领导的决定怎么办 大学读不下去了怎么办 教师因病长期不能上班怎么办 长按win键黑屏了怎么办 巡视组巡视出问题后续怎么办 货运资格证两次没继续教育怎么办 电子注册备案表学信网查不到怎么办 学信网学籍档案没照片怎么办 信访局不给答复怎么办 发票跳了一个号怎么办 报税用的ca证书怎么办 报税u盘丢了怎么办 地税ca证书丢了怎么办 深圳ca证书丢了怎么办 武汉国税报税证书过期怎么办 江苏大学专业选修课挂了怎么办 电信翼企享福卡怎么办 教育部学籍在线验证报告过期怎么办 身份证被别人注册了学信网怎么办 大专文凭查不到学籍该怎么办 学信网上查不到学历怎么办 学信网上没有学历照片怎么办 学信网上没照片怎么办 学历认证报告丢了怎么办 学历认证弄丢了怎么办 手机系统安全证书有问题怎么办 台式电脑的浏览器证书出错怎么办 网上银行k宝密码忘了怎么办