基于fl2440 内核linux3.0添加dm9000支持

2440开发板和dm9000的联系

      片选信号AEN使用了nGCS4,所以网卡的内存区域在BANK4,也就是从地址0x20000000开始。DM9000的TXD[2:0]作为strap pin在电路图中是空接的,所以IO base是300H。中断使用了EINT7。
    所以要对arch/arm/mach-s3c2440/mach-smdk2440.c进行修改,修改如下:
 9 #include <linux/dm9000.h> //add DM9000 net support   括号里边不能有空格!!!
 50 
 51 
 52 #define DM9000_BASE    (S3C2410_CS4 + 0x300)
 53 static struct resource s3c_dm9000_resource[] = {
 54 
 55 
 56     [0]={
 57     .start=DM9000_BASE,
 58     .end=DM9000_BASE+3,
 59     .flags=IORESOURCE_MEM
 60     },
 61 
 62     [1]={
 63     .start=DM9000_BASE+4,
 64     .end=DM9000_BASE+7,
 65     .flags=IORESOURCE_MEM,
 66     },
 67 
 68     [2]={
 69     .start=IRQ_EINT7,
 70     .end= IRQ_EINT7,
 71     .flags=IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
 72     }
 73 
 74 
 75 };


 82 static struct dm9000_plat_data s3c_dm9000_pdata = {
 83 
 84        .flags      = (DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM),
 85 };
 86 
 87 
 88 static struct platform_device s3c_device_dm9000 = {
 89 
 90     .name       = "dm9000",
 91     .id     = -1,
 92      .num_resources  = ARRAY_SIZE(s3c_dm9000_resource),
 93      .resource   = s3c_dm9000_resource,
 94      .dev        = {
 95          .platform_data  = &s3c_dm9000_pdata,
 96      },
 97 };


203 static struct platform_device *smdk2440_devices[] __initdata = {
204     &s3c_device_ohci,
205     &s3c_device_lcd,
206     &s3c_device_wdt,
207     &s3c_device_i2c0,
208     &s3c_device_iis,
209     &s3c_device_dm9000,  //这是要添加的
210 };
211 
修改好之后保存退出。返回自己内核所在的目录make 。生成的linuxrom-s3c2440.bin烧录到自己的开发板上,这时候就可以用ifconfig这个命令了。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值