[1]把cs8900.c,cs8900.h 拷貝到drivers/net/arm 目錄下
修改cs8900.c中函數int __init cs8900_probe (struct net_device *dev){}
在memset (&priv,0,sizeof (cs8900_t)); 下面新增
__raw_writel(0x2211d110,S3C2410_BWSCON);
__raw_writel(0x1f7c,S3C2410_BANKCON3);
[2]修改drivers/net/arm/Kconfig
$ vi drivers/net/arm/Kconfig
增加以下內容
config ARM_CS8900
tristate "CS8900 support"
depends on NET_ETHERNET && ARM && ARCH_SMDK2410
[3]修改drivers/net/Makefile,增加以下內容︰
$ vi drivers/net/Makefile
obj-$(CONFIG_ARM_CS8900) += cs8900.o
[4]建立smdk2410.h 到include/asm-arm/arch-s3c2410 目錄下
$ vi include/asm-arm/arch-s3c2410/smdk2410.h
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_
[5]修改arch/arm/machs-3c2410/mach-smdk2410.c
$ vi arch/arm/mach-s3c2410/mach-smdk2410.c
在static struct map_desc smdk2410_iodesc[] __initdata={}; 內增加以下部分(本來為空)︰
{vSMDK2410_ETH_IO, pSMDK2410_ETH_IO, SZ_1M, MT_DEVICE}
以及增加包含頭檔案
#include <asm/arch/smdk2410.h> //就是建立的那個
[6]在內核配置中選上︰
Device Drivers -->
Network device support -->
Ethernet (10 or 100 Mbit)
〔*〕 CS8900 support.
設定完成,編譯並燒錄之後即可看到網卡的資訊
# ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:3E:26:0A:5B
inet addr:192.192.192.190 Bcast:192.192.192.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:53 Base address:0x300
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
- Feb 25 Thu 2010 12:36
cs8900網路卡移植到s3c2410開發版上
全站熱搜
留言列表
發表留言