linaro Android4.0.4 for FS100 - dm9000移植

1. 平台代码修改

    vim arch/arm/mach-s5pc100/mach-smdkc100.c


2. 添加需要的头文件

    #if defined (CONFIG_DM9000)

    #include <linux/dm9000.h>

    #include <linux/irq.h>

    #endif


3. 平台设备添加

// CMD为低,读写地址寄存器, CMD为高,读写数据寄存器

// 访问dm9000内部寄存器时,先将cmd拉低,向dm9000寄存器里写地址,然后,将cmd拉高,读写dm9000数据寄存器里的数据

    #if defined(CONFIG_DM9000)

    // MichaelTang add start
    static struct resource dm9000_resources[] = {
        [0] = {
                .start  = 0x88000000,                      // 地址线
                .end    = 0x88000000 + 0x4 - 1,
                .flags  = IORESOURCE_MEM,
                },
        [1] = {
                .start  = 0x88000000 + 0x4,          // 数据线
                .end    = 0x88000000 + 0x8 - 1,
                .flags  = IORESOURCE_MEM,
                },
        [2] = {
                .start = S5P_IRQ_VIC0(10),
                .end   = S5P_IRQ_VIC0(10),
                .flags  = IORESOURCE_IRQ | IRQ_TYPE_LEVEL_HIGH,   //申请中断及触发方式
                },
    };


     static struct dm9000_plat_data s5pc100_dm9000_platdata = {             // 设置网卡mac物理地址
                        .flags  = DM9000_PLATF_16BITONLY,              
                        .dev_addr[0] = 0x0,
                        .dev_addr[1] = 0x0,
                        .dev_addr[2] = 0x11,                           
                        .dev_addr[3] = 0x22,
                        .dev_addr[4] = 0x33,
                        .dev_addr[5] = 0x44,
    };
    static struct platform_device s3c_device_dm9ks = {                 // 注册设备结构体
        .name   = "dm9000",
        .id     = -1,
        .num_resources  = ARRAY_SIZE(dm9000_resources),
        .resource       = dm9000_resources,
        .dev = {
                .platform_data = &s5pc100_dm9000_platdata,
        }
   };
   // MichaelTang add end

    #endif


4. 将dm9000添加到平台设备列表中

  添加位置: smdkc100_devices[]中

    #if defined (CONFIG_DM9000)

     // Michaeltang add
     &s3c_device_dm9ks,

   // MichaelTang add end

    #endif


5. 配置内核

   $ make menuconfig


6. 网络配置

   将dm9000配置编译进内核,执行make zImage,拷贝到tftp目录中,通过tftp加载测试内核。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值