1 cs8900.c 和 cs8900.h 放到 /drivers/net/arm/
2 在 cs8900.c 中的 cs8900_probe() 函数中 ,memset (&priv,0,sizeof (cs8900_t)); 函数之后添加如下两条语句 :
__raw_writel(0x2211d110,S3C2410_BWSCON);
__raw_writel(0x1f7c,S3C2410_BANKCON3);
添加头文件 #include <asm/arch/regs-mem.h>
3 修改 drivers/net/arm/ 目录下的 Kconfig 文件 , 在最后添加如下内容 :
config ARM_CS8900
tristate "CS8900 support"
depends on NET_ETHERNET && ARM && ARCH_SMDK2410
help
4 修改 drivers/net/arm/ 目录下的 Makefile 文件 , 在最后添加如下内容 :
obj-$(CONFIG_ARM_CS8900) += cs8900.o
5 在 /arch/arm/mach-s3c2410/mach-smdk2410.c 文件中 , 找到 smdk2410_iodesc[] 结构数组 , 添加如下如下内容 :{vSMDK2410_ETH_IO, 0x19000000, SZ_1M, MT_DEVICE }
添加头文件 #inlcude <asm/arch/smdk2410.h>
其实这个就是下面的那个头文件的链接 /include/asm-arm/arch-s3c2410/smdk2410.h
6 在 include/asm-arm/arch-s3c2410/ 目录下创建 smdk2410.h 文件 , 其内容为 :
#ifndef _INCLUDE_SMDK2410_H_
#define _INCLUDE_SMDK2410_H_
#include <linux/config.h>
#define pSMDK2410_ETH_IO 0x19000000
#define vSMDK2410_ETH_IO 0xE0000000
#define SMDK2410_ETH_IRQ IRQ_EINT9
#endif // _INCLUDE_SMDK2410_H_
7 编译内核 , 选中所装驱动
#make menuconfig
Device Drivers >
Network device support --->
Ethernet (10 or 100Mbit) --->
[*]Ethernet (10 or 100Mbit)
<*>CS8900 support