您的位置:首页 > 其它

kernel 支持网卡dm9000 开发板s3c2410

2010-10-20 10:09 169 查看



kernel 2.6.30.4 支持网卡dm9000 开发板s3c2410

1.

gedit arch/arm/plat-s3c24xx/common-smdk.c

#include <linux/dm9000.h>

/* DM9000 */

static struct resource s3c_dm9k_resource[] = {

[0] = {

.start = S3C2410_CS2, /* ADDR2=0,发送地址时使用这个地址 */

.end = S3C2410_CS2 + 3,

.flags = IORESOURCE_MEM,

},

[1] = {

.start = S3C2410_CS2 + 4, /* ADDR2=1,传输数据时使用这个地址 */

.end = S3C2410_CS2 + 4 + 3,

.flags = IORESOURCE_MEM,

},

[2] = {

/* 中断号 */

.start = IRQ_EINT2,

.end = IRQ_EINT2,

.flags = IORESOURCE_IRQ,

}

};

/* for the moment we limit ourselves to 16bit IO until some

* better IO routines can be written and tested

*/

static struct dm9000_plat_data s3c_dm9k_platdata = {

.flags = DM9000_PLATF_32BITONLY,

};

static struct platform_device s3c_device_dm9k = {

.name = "dm9000",

.id = 0,

.num_resources = ARRAY_SIZE(s3c_dm9k_resource),

.resource = s3c_dm9k_resource,

.dev ={

.platform_data = &s3c_dm9k_platdata,

}

};

static struct platform_device __initdata *smdk_devs[] = {

&s3c_device_nand,

&smdk_led4,

&smdk_led5,

&smdk_led6,

&smdk_led7,

&s3c_device_dm9k,

};

2.

gedit drivers/net/dm9000.c

#if defined(CONFIG_ARCH_S3C2410)

#include <mach/regs-mem.h>

#endif

1194行,添加

#if defined(CONFIG_ARCH_S3C2410)

unsigned int oldval_bwscon = *(volatile unsigned int *)S3C2410_BWSCON;

unsigned int oldval_bankcon2 = *(volatile unsigned int *)S3C2410_BANKCON2;

#endif

在修改后的1209行加入:

#if defined(CONFIG_ARCH_S3C2410)

*((volatile unsigned int *)S3C2410_BWSCON) = (oldval_bwscon &
~(3<<16)) | S3C2410_BWSCON_DW2_32 | S3C2410_BWSCON_WS2 |
S3C2410_BWSCON_ST2;

*((volatile unsigned int *)S3C2410_BANKCON2) = 0x1f7c;

#endif

在修改后的1378行加入:

#if defined(CONFIG_ARCH_S3C2410)

printk("Now use the default MAC address: 10:23:45:67:89:ab/n");

mac_src = "EmbedSky";

ndev->dev_addr[0] = 0x10;

ndev->dev_addr[1] = 0x23;

ndev->dev_addr[2] = 0x45;

ndev->dev_addr[3] = 0x67;

ndev->dev_addr[4] = 0x89;

ndev->dev_addr[5] = 0xab;

#else

……

1411行

#endif

在修改后的1423行加入:

#if defined(CONFIG_ARCH_S3C2410)

*(volatile unsigned int *)S3C2410_BWSCON = oldval_bwscon;

*(volatile unsigned int *)S3C2410_BANKCON2 = oldval_bankcon2;

#endif
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: