三、 网卡和LCD驱动的移植1. 网卡驱动移植:
这块板使用的是DM9000的网卡芯片,驱动的源代码在内核源代码的目录中可以找到:
$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,