天嵌 ARM开发社区

 找回密码
 注册
查看: 2659|回复: 6

移植DM9000的问题,不能ping啊,咋回事啊,please 帮助me

[复制链接]
AdolfHitler 发表于 2013-6-30 22:35:53 | 显示全部楼层 |阅读模式
本帖最后由 AdolfHitler 于 2013-7-2 21:44 编辑

ifconfig 正常显示 eth0

但是情况却。。。
[root@my2440:/]$ ifconfig
eth0      Link encap:Ethernet  HWaddr 08:20:90:50:90:50  
          inet addr:192.168.1.222  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:51 Base address:0xe300
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
[root@my2440:/]$ ping 192.168.1.169
PING 192.168.1.169 (192.168.1.169): 56 data bytes
NETDEV WATCHDOG: eth0: transmit timed out
NETDEV WATCHDOG: eth0: transmit timed out
NETDEV WATCHDOG: eth0: transmit timed out
NETDEV WATCHDOG: eth0: transmit timed out
NETDEV WATCHDOG: eth0: transmit timed out
NETDEV WATCHDOG: eth0: transmit timed out
NETDEV WATCHDOG: eth0: transmit timed out

这里为什么会timed out呢???

以下,是我添加修改的内容
修改添加了 arch\arm\mach-s3c2440\mach-smdk2440.c
#define MACH_MY2440_DM9K_BASE (S3C2410_CS4+0X300)
static struct resource my2440_dm9k_resource[]={
[0]={
  .start  = MACH_MY2440_DM9K_BASE,
  .end = MACH_MY2440_DM9K_BASE+3,
  .flags = IORESOURCE_MEM
  },
[1]={
  .start = MACH_MY2440_DM9K_BASE+4,
  .end = MACH_MY2440_DM9K_BASE+7,
  .flags = IORESOURCE_MEM
  },
[2]={
  .start = IRQ_EINT7,
  .end = IRQ_EINT7,
  .flags = IORESOURCE_IRQ|IORESOURCE_IRQ_HIGHEDGE,
  }
};

static struct dm9000_plat_data my2440_dm9k_pdata={
.flags = (DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM),
};

static struct platform_device my2440_device_eth={
.name = "dm9000",
.id  = -1,
.num_resources = ARRAY_SIZE(my2440_dm9k_resource),
.resource  = my2440_dm9k_resource,
.dev    = {
  .platform_data = &my2440_dm9k_pdata,
},
};

static struct platform_device *smdk2440_devices[] __initdata = {
&s3c_device_usb,
&s3c_device_lcd,
&s3c_device_wdt,
&s3c_device_i2c,
&s3c_device_iis,
&s3c_device_rtc,
&my2440_device_eth,
};

修改添加了 drivers\net\dm9000.c
#if defined(CONFIG_ARCH_S3C2410)
#include <asm/arch-s3c2410/regs-mem.h>
#endif

......
dm9000_init(void)
{
#if defined(CONFIG_ARCH_S3C2410)
unsigned int oldval_bwscon   = *(volatile unsigned int *)S3C2410_BWSCON;
unsigned int oldval_bankcon4 = *(volatile unsigned int *)S3C2410_BANKCON4;
*((volatile unsigned int *)S3C2410_BWSCON)=
  (oldval_bwscon & ~(3<<16)) | S3C2410_BWSCON_DW4_16 | S3C2410_BWSCON_WS4 | S3C2410_BWSCON_ST4;
*((volatile unsigned int *)S3C2410_BANKCON4) = 0x1f7c;
#endif

printk(KERN_INFO "%s Ethernet Driver\n", CARDNAME);
return platform_driver_register(&dm9000_driver); /* search board and register */
}

内核里的ip配置
/etc/eth0-setting
IP=192.168.1.222
Mask=255.255.255.0
Gateway=192.168.1.1
DNS=192.168.1.1
MAC=08:20:90:50:90:50

/etc/resolv.conf
nameserver 192.168.1.1


请大家不吝赐教,帮帮忙,help help busy!!!
please murder me!



亚瑟王 发表于 2013-7-1 11:44:07 | 显示全部楼层
亲,你烧写天嵌科技提供的内核镜像试试。如果用我们的镜像没问题就说明是你移植的驱动有问题了。
回复

使用道具 举报

 楼主| AdolfHitler 发表于 2013-7-1 13:27:54 | 显示全部楼层
亚瑟王 发表于 2013-7-1 11:44
亲,你烧写天嵌科技提供的内核镜像试试。如果用我们的镜像没问题就说明是你移植的驱动有问题了。

我知道是我移植的驱动问题啊,我是想知道,问题出在哪?
回复

使用道具 举报

亚瑟王 发表于 2013-7-1 14:50:04 | 显示全部楼层
AdolfHitler 发表于 2013-7-1 13:27
我知道是我移植的驱动问题啊,我是想知道,问题出在哪?

对比一下你移植的dm9000.c文件和我们光盘中提供的内核中的dm9000.c文件。
回复

使用道具 举报

 楼主| AdolfHitler 发表于 2013-7-2 14:28:07 | 显示全部楼层
亚瑟王 发表于 2013-7-1 14:50
对比一下你移植的dm9000.c文件和我们光盘中提供的内核中的dm9000.c文件。

非常感谢王亚瑟的帮助,虽然我没找到光盘下的dm9000.c  但是我的问题还是解决了
我一怒之下,删除dm9000 然后重新按照原来的方法进行移植,结果运行又正常了,原因不明
程序也许最让人头疼的地方就是 按照原来的方法重新做一边就成功了,却找不到原因
回复

使用道具 举报

亚瑟王 发表于 2013-7-2 17:13:51 | 显示全部楼层
AdolfHitler 发表于 2013-7-2 14:28
非常感谢王亚瑟的帮助,虽然我没找到光盘下的dm9000.c  但是我的问题还是解决了
我一怒之下,删除dm9000 ...

你,你不应该删掉的,你应该复制一份,这样就可以对比找到原因了。
回复

使用道具 举报

 楼主| AdolfHitler 发表于 2013-7-2 21:43:41 | 显示全部楼层
亚瑟王 发表于 2013-7-2 17:13
你,你不应该删掉的,你应该复制一份,这样就可以对比找到原因了。

好办法,可惜我已经删除了,看来我还是不够掌握学习方法啊,再次感谢王亚瑟帮助,我又学会了一招学习方法,挖哈哈
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2025-6-19 12:12 , Processed in 2.051482 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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