FL2440移植LINUX-3.4.2(五)-- 添加DM9000的支持

1.参考mini2440拷贝:
linux-3.4.2\arch\arm\mach-s3c24xx\mach-mini2440.c
里的
/* DM9000AEP 10/100 ethernet controller */

 1 /* DM9000AEP 10/100 ethernet controller */
 2
 3 static struct resource mini2440_dm9k_resource[] = {
 4     [0] = {
 5         .start = MACH_MINI2440_DM9K_BASE,
 6         .end   = MACH_MINI2440_DM9K_BASE + 3,
 7         .flags = IORESOURCE_MEM
 8     },
 9     [1] = {
10         .start = MACH_MINI2440_DM9K_BASE + 4,
11         .end   = MACH_MINI2440_DM9K_BASE + 7,
12         .flags = IORESOURCE_MEM
13     },
14     [2] = {
15         .start = IRQ_EINT7,
16         .end   = IRQ_EINT7,
17         .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
18     }
19 };
20
21 /*
22  * The DM9000 has no eeprom, and it‘s MAC address is set by
23  * the bootloader before starting the kernel.
24  */
25 static struct dm9000_plat_data mini2440_dm9k_pdata = {
26     .flags        = (DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM),
27 };
28
29 static struct platform_device mini2440_device_eth = {
30     .name        = "dm9000",
31     .id        = -1,
32     .num_resources    = ARRAY_SIZE(mini2440_dm9k_resource),
33     .resource    = mini2440_dm9k_resource,
34     .dev        = {
35         .platform_data    = &mini2440_dm9k_pdata,
36     },
37 };

到linux-3.4.2\arch\arm\mach-s3c24xx\mach-smdk2440.c文件里面

2.修改为如下:

 1 #include <linux/dm9000.h>    /* by zhutao 添加头文件*/
 2 #define MACH_SMDK2440_DM9K_BASE (S3C2410_CS4 + 0x300) /* by zhutao 添加宏定义*/
 3
 4 /* DM9000AEP 10/100 ethernet controller */
 5
 6 static struct resource smdk2440_dm9k_resource[] = {
 7     [0] = {
 8         .start = MACH_SMDK2440_DM9K_BASE,
 9         .end   = MACH_SMDK2440_DM9K_BASE + 3,
10         .flags = IORESOURCE_MEM
11     },
12     [1] = {
13         .start = MACH_SMDK2440_DM9K_BASE + 4,
14         .end   = MACH_SMDK2440_DM9K_BASE + 7,
15         .flags = IORESOURCE_MEM
16     },
17     [2] = {
18         .start = IRQ_EINT7,
19         .end   = IRQ_EINT7,
20         .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
21     }
22 };
23
24 /*
25  * The DM9000 has no eeprom, and it‘s MAC address is set by
26  * the bootloader before starting the kernel.
27  */
28 static struct dm9000_plat_data smdk2440_dm9k_pdata = {
29     .flags        = (DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM),
30 };
31
32 static struct platform_device smdk2440_device_eth = {
33     .name        = "dm9000",
34     .id        = -1,
35     .num_resources    = ARRAY_SIZE(smdk2440_dm9k_resource),
36     .resource    = smdk2440_dm9k_resource,
37     .dev        = {
38         .platform_data    = &smdk2440_dm9k_pdata,
39     },
40 };
41
42 /* 增加平台设备 */
43 static struct platform_device *smdk2440_devices[] __initdata = {
44     &s3c_device_ohci,
45     &s3c_device_lcd,
46     &s3c_device_wdt,
47     &s3c_device_i2c0,
48     &s3c_device_iis,
49     &smdk2440_device_eth, /* by zhutao */
50 };

编译启动内核:

nfs挂接网络文件系统:

修改以下根文件系统inittab

1 #s3c2410_serial0::askfirst:-/bin/sh  /* 注释掉 */
2 console::askfirst:-/bin/sh       /* 改成console */
时间: 2024-11-09 10:08:04

FL2440移植LINUX-3.4.2(五)-- 添加DM9000的支持的相关文章

FL2440移植linux内核常用命令(command)

Host Ubuntu系统:sudo ifconfig eth0 192.168.1.2 打补丁(补丁和内核在同一目录下/home/chris/temp):cd /home/chris/temp/linux-3.0patch -p1 < ../linux-3.0-s3c2440.patch 开发板u-boot: setenv bootargs 'root=/dev/nfs rw nfsroot=192.168.1.2:/home/chris/nfs_work ip=192.168.1.1 con

u-boot-2014.10移植第17天----添加DM9000网卡支持(一)

很多读者的2440的板子应该都有DM9000网卡.在移植之前看看这几篇文档: DM9000中文手册(详细) 这篇文章告诉我们DM9000的一些硬件知识. DM9000和MINI2440深入理解 这篇文章告诉我们2440是如何实现对DM9000的访问. 2440 dm9000 到底咋确定地址 这篇文章告诉我们如何确定地址端口的地址和数据端口的地址. DM9000 datasheet datasheet上说dm9000有4K Dword(就是4K双字,即16Kbytes). DM9000网卡驱动位于

使用cygwin移植Linux的项目到Windows下之总结(转)

使用cygwin移植Linux的项目到Windows下之总结(转) 原文 http://my.oschina.net/michaelyuanyuan/blog/68615?p=1 一.why 接到一个任务,把公司的某个在Linux下开发的项目(也就是一个程序啦)移植到Windows下,使得其可以在Windows下运行,并且运行的结果当然要是正确的啦,何谓正确,当然就是和Linux运行结果比对,一样就行. 二.难在何处 难就难在如何在Windows下编译通过.假设你在Linux下开发了一个这样的程

Linux运维 第五阶段(四) corosync&pacemaker

Linux运维 第五阶段(四)corosync&pacemaker 一.相关概念: 补充 { what is high Availability? A=MTBF/(MTBF+MTTR) MTBF(mean time betweenfailures平均无故障时间) MTTR(mean time to repair平均修复时间) two ways improve availability? increase MTBF to very large values reduce MTTR to very

linux系统管理命令(五)

[教程主题]:1.系统管理命令 [1.1]用户和组管理 在Linux操作系统中,任何文件都归属于某一特定的用户,而任何用户都隶属于至少一个用户组.用户是否有权限对某文件进行访问.读写以及执行,受到系统严格约束的正是这种清晰.严谨的用户与用户组管理系统.在很大程度上它保证了Linux系统的安全性.本节课将对Linux系统中重要的用户和组管理文件进行介绍,并且介绍如何使用命令行对用户和组进行管理. Linux帐号分类 用户帐号 - 用来储存单一用户的数据,你可以使用一个用户帐号,来储存某一个用户的数

Linux运维 第五阶段(九)iSCSI & cLVM & gfs2

Linux运维 第五阶段(九)iSCSI&cLVM&gfs2 gfs2(global file system version2,全局文件系统,CFS集群文件系统,利用HA的信息层,向各node通告自己所持有锁的信息) cLVM(cluster logical volume management,集群逻辑卷管理,将共享存储做成逻辑卷,借用HA的心跳传输机制(通信机制,对于脑裂处理的机制),各node要启动clvmd服务(此服务启动前要启动cman和rgmanager),使得各node彼此间通

Linux Shell常用技巧(五) awk编程

Linux Shell常用技巧(五) awk编程 十一.  awk编程:    1.  变量:    在awk中变量无须定义即可使用,变量在赋值时即已经完成了定义.变量的类型可以是数字.字符串.根据使用的不同,未初始化变量的值为0或空白字符串" ",这主要取决于变量应用的上下文.下面为变量的赋值负号列表: 符号 含义 等价形式 = a = 5 a = 5 += a = a + 5 a += 5 -= a = a - 5 a -= 5 *= a = a * 5 a *= 5 /= a =

Linux内核分析(五)----字符设备驱动实现

原文:Linux内核分析(五)----字符设备驱动实现 Linux内核分析(五) 昨天我们对linux内核的子系统进行简单的认识,今天我们正式进入驱动的开发,我们今后的学习为了避免大家没有硬件的缺陷,我们都会以虚拟的设备为例进行学习,所以大家不必害怕没有硬件的问题. 今天我们会分析到以下内容: 1.      字符设备驱动基础 2.      简单字符设备驱动实现 3.      驱动测试 l  字符设备基础 1.       字符设备描述结构 在linux2.6内核中,使用cdev结构体描述一

FL2440移植u-boot2011.09

u-boot version:2011.09-rc1 /home/lucas/u-boot-2011.09-rc1 OS:debian 7.1 cross-compilation chain:arm-linux-4.3.2 致谢:部分内容参考http://my.csdn.net/crazyman2010的博文,感谢分享. 第一步:u-boot初步编译 [目的]验证开发平台可以正确编译u-boot,初步建立文件目录. 1.建立目标板相关文件 (1)建立板级文件夹 在board/samsung下建立