1.vi drivers/net/arm/Makefile
在第12行添加:
obj-$(CONFIG_ARM_CS8900) +=
cs8900.o
2.vi drivers/net/arm/Kconfig
在第5行添加:
config ARM_CS8900
tristate
"CS8900 support"
depends on NET_ETHERNET && ARM &&
ARCH_SMDK2410
help
support for cs8900 chipset based Ethernet
cards , if you have a network card of this type.
3.make menuconfig
进入配置菜单添加驱动到内核:
Device Drivers --->
[*]
Network device support --->
[*] Ethernet (10 or 100Mbit)
--->
<*> CS8900 support
4.vi arch/arm/mach-s3c2440/mach-smdk2440.c
在static struct map_desc
smdk2440_iodesc[] __initdata 最后添加:
, {
.virtual =
(u32)0xE0000000,
.pfn = __phys_to_pfn(S3C2410_CS3 +
(1<<24)),
.length = SZ_1M,
.type = MT_DEVICE,
}
5.vi include/asm-arm/plat-s3c24xx/common-smdk.h
在14行添加:
//change
by
#define
pSMDK2410_ETH_IO __phys_to_pfn(0x19000000)
#define
vSMDK2410_ETH_IO 0xE0000000
#define SMDK2410_ETH_IRQ
IRQ_EINT9
6.
arch/arm/mach-s3c2410/mach-smdk2410.c文件中,找到smdk2410_iodesc[]结构
修改为:{vSMDK2410_ETH_IO,
pSMDK2410_ETH_IO, SZ_1M, MT_DEVICE}
如果这部不做,加载内核的时候会出现
Cirrus Logic CS8900A driver for Linux(Modified for
SMDK2410)
Unable to handle kernel paging request at virtual address
e000030a
7.添加drivers/net/arm/cs8900.c文件
8.drivers/net/arm/cs8900.h文件
以上文件已在博客中上传。
阅读(468) | 评论(0) | 转发(0) |