您的位置 首页 报告

根据3c2410的linux2.6.22移植(5)

三、网卡和LCD驱动的移植1.网卡驱动移植:这块板使用的是DM9000的网卡芯片,驱动的源代码在内核源代码的目录中可以找到:$root@host:/…

三、 网卡和LCD驱动的移植1. 网卡驱动移植:
这块板运用的是DM9000的网卡芯片,驱动的源代码在内核源代码的目录中能够找到:
arm/%23″>$root@host:/home/arm/# cd kernel/linux-2.6.22
$root@host:/home/arm/kernel/linux-2.6.22# cd drivers/net
$root@host:/home/arm/kernel/linux-2.6.22/drivers/net# ls dm*
dm9000.c dm9000.h
修正dm9000.c:
$root@host:/home/arm/kernel/linux-2.6.22# vi dm9000.c
找到函数:
static int dm9000_probe(struct platform_device *pdev)
{
……….
int ret=0;
int iosize;
int i;
u32 idval
//增加下面数组,前6个数作为网卡的mac地址,留意不能和现有的网卡抵触
unsigned char ne_defethadder[]={0x08,0x08,0x08,0x08,0x12,0x27,0}
………………………….
………………………….

for (i = 0; i < 6; i++)
ndev->dev_addr[i] = db->srom[i];

if (!is_valid_ether_addr(ndev->dev_addr)) {


for (i = 0; i < 6; i++)
//修正mac地址
// ndev->dev_addr[i] = ior(db, i+DM9000_PAR);
ndev->dev_addr[i]=ne_defethaddr[i];
………………………
……………………….
}
退出保存。
修正smdk2410.c:
$root@host:/home/arm/kernel/linux-2.6.22# cd arch/arm/mach-s3c2410
$root@host:/home/arm/kernel/linux-2.6.22/arch/arm/mach-s3c2410#
vi mach-smdk2410.c
在mach-smdk2410.c中增加如下内容:
…………
#include
//增加:
#include …………
………….
#define UCON S3C2410_UCON_DEFAULT
#define ULCON S3C2410_LCON_CS8 | S3C2410_LCON_PNONE | S3C2410_LCON_STOPB
#define UFCON S3C2410_UFCON_RXTRIG8 | S3C2410_UFCON_FIFOMODE
//增加:

static struct resource s3c_d9k_resource[]=
{
[0]={
.start =0x10000000,
.end =0x10000000,
.flags=IORESOURCE_MEM
},
[1]={
.start =0x10000000+0x2,
.end =0x10000000+0x2,
.flags=IORESOURCE_MEM
},
[2]={
.start =IRQ_EINT2,
.end =IRQ_EINT2,
.flags =IORESOURCE_IRQ
}
};
static struct dm9000_plat_data s3c_device_d9k_platdata = {
.flags= DM9000_PLATF_16BITONLY
};

struct platform_device s3c_device_d9k = {
.name= “dm9000”,
.id= 0,
.num_resources= ARRAY_SIZE(s3c_d9k_resource),
.resource= s3c_d9k_resource,
.dev= {
.platform_data = &s3c_device_d9k_platdata,
}
};
………………….
………………….
static struct platform_device *smdk2410_devices[] __initdata = {
&s3c_device_usb,
//发动lcd
&s3c_device_lcd,
&s3c_device_wdt,
&s3c_device_i2c,
&s3c_device_iis,
//增加
&s3c_device_d9k
//&s3c_device_ts,
};
需求留意的是开始地址和中止号的挑选。这块板上DM9000芯片的INT引脚接的是EINT2,CMD引脚接的是A1,CS引脚接的是nGCS2,所以DM9000的index端口地址是0x10000000,data端口地址是0x10000000+0x00000002,据此设置结构resource s3c_d9k_resource中的参数。最终在内核编译时加上对DM9000驱动的支撑就能够了,详细见内核装备和编译。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/baogao/264459.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部