搜索
bottom↓
回复: 4

请教uclinux-nios2移植中dm9000遇到的问题!谢谢

[复制链接]

出0入0汤圆

发表于 2011-5-13 15:01:36 | 显示全部楼层 |阅读模式
最近学习SOPC,移植uclinux操作系统,下载的是nios2-linux-20100621,然后在ubutu中进行编译,到板子中启动时,出现dm9000: read wrong id 0x0000000,
.....dm9000 not found (-19),dm9000用的是DE2板子的IP核,在SOPC系统中的名字叫做dm9000,驱动是操作系统里的,没有改动,出现错误后上网查询发现都是针对2410板子的,很是迷茫,板子的网络硬件电路没有问题(买的时候能够ping通),请各位接触过dm9000的给点意见!诚心谢谢了!

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2011-5-17 09:10:21 | 显示全部楼层
怎么没人回复啊?请教各位啊!网上有个关于2410移植修改的:
以下是要在linux-2.6.24/drivers/net/dm9000.c 文件中添加的内容:

   4.1 为dm9000 添加硬件复位, 在dm9000_reset 函数开头添加以下代码:
/*reset hardware --add by Eric Fu */
   p { margin-bottom: 0.21cm; }

  s3c2410_gpio_cfgpin(S3C2410_GPG2,S3C2410_GPG2_OUTP);


   s3c2410_gpio_setpin(S3C2410_GPG2,0);

  udelay(500);   

  s3c2410_gpio_setpin(S3C2410_GPG2,1);        

   udelay(500);

  s3c2410_gpio_setpin(S3C2410_GPG2,0);

  udelay(500);
/*end of add*/

注意: 网上很多移植都没有这一步, 但在我的板子上如果没有这一步, 但板子硬件复位后会出现系统找不到网卡设备, 并出现以下错误信息:
dm9000 Ethernet Driver
dm9000: read wrong id 0x00000000
dm9000: read wrong id 0x00000000
dm9000: wrong id: 0x00000000               

dm9000: not found (0).

出0入0汤圆

 楼主| 发表于 2011-5-17 09:28:09 | 显示全部楼层
#if defined(na_DM9000A) && !defined(na_dm9000)   /* defs for DE2 */
#define na_dm9000 na_DM9000A
#define na_dm9000_irq na_DM9000A_irq
#endif

#if defined(CONFIG_DM9000) && defined(na_dm9000)
#include <linux/dm9000.h>
static struct resource dm9k_resource[] = {
        [0] = {
                .start = na_dm9000,
                .end   = na_dm9000 + 3,
                .flags = IORESOURCE_MEM,
        },
        [1] = {
                .start = na_dm9000 + 4,
                .end   = na_dm9000 + 4 + 3,
                .flags = IORESOURCE_MEM,
        },
        [2] = {
                .start = na_dm9000_irq,
                .end   = na_dm9000_irq,
                .flags = IORESOURCE_IRQ | IRQF_TRIGGER_HIGH,
        }

};
static struct dm9000_plat_data dm9k_platdata = {
        .flags                = DM9000_PLATF_16BITONLY,
};
static struct platform_device dm9k_device = {
        .name                = "dm9000",
        .id                = 0,
        .num_resources        = ARRAY_SIZE(dm9k_resource),
        .resource        = dm9k_resource,
        .dev                = {
                .platform_data = &dm9k_platdata,
        }
};
#endif

这是/nios2-linux/linux2.6/arch/nios2/kernel中的config.c,里面有dm9000的信息,我的板子并不是DE2,但芯片也是ep2c35,是清华大学设计的TE2!

出0入0汤圆

发表于 2011-5-22 14:39:57 | 显示全部楼层
硬件问题吧?管脚分配搞对了没有哇?dm9000的时钟是不是从fpga出来的啊?

出0入0汤圆

 楼主| 发表于 2011-5-27 10:31:34 | 显示全部楼层
回复【3楼】arokh 圆圆的饭团
-----------------------------------------------------------------------
硬件我检测了下,发现DM9000的供电电压达到了5.8V,不知道是否有影响,时钟是板子上的50M经过分频变成的25M,管脚分配应该没有问题,我再检测下!但是前段时间这个板子FLASH里面的程序直接跑,网口就是能用的!唉!真是郁闷!谢谢回复啊!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-20 16:06

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表