Chinaunix首页 | 论坛 | 博客
  • 博客访问: 394901
  • 博文数量: 138
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1620
  • 用 户 组: 普通用户
  • 注册时间: 2013-03-10 16:55
个人简介

当你比别人优秀一点点,别人会嫉妒你。当你比别人优秀很多,别人会羡慕你。

文章分类

全部博文(138)

文章存档

2016年(2)

2015年(2)

2014年(15)

2013年(119)

我的朋友

分类: LINUX

2013-12-19 22:49:06

 移植要改动的函数就是probe函数(入口probe,每个驱动独有的,而不是probe1,后者是公共的)

对于普通的网卡,因为网卡一般插在总线上,不知道插在什么地方(但知道肯定是那几个地方,之一),
所以我们就挨个遍历一边,看看哪个地方有。

我们去扫描的时候,使用的是虚拟地址。
所以,对于我们的网卡cs8900来说,需要把物理地址0x19000000用ioremap转换为虚拟地址。

按道理,我们实际上知道,只需要把转换后的虚拟地址,赋值给dev->base_addr就可以了,这样就可以为内核所用类。
后面试试直接赋值拉到。

为了统一规划,代码的规范化,还得继续调用probe1这个函数。这个函数是个通用函数,她访问我们前面probe提供的那个地址,读取
网卡的硬件编码,看看是不是我们要的网卡。
这个地方的读取,是使用的读取I/O地址空间的函数接口,read 等,所以需要再次把已经映射到ARM内存地址空间的外设资源,再次映射一次,
映射到并不存在的I/O地址空间上去,使用访问I/O地址空间的函数接口。
至于这两种空间的区别与联系,看自己的blog:http://blog.chinaunix.net/uid-28708203-id-3793252.html

这是外设资源的设置

第二是,中断号的设置

第三,要使能一个网卡,外设,需要配置好这个外设对应的控制器,网卡控制器,对于S3C2440来说就是BANK3

阅读(916) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~