网卡驱动程序修改厂家代码进行移植_DM9000

官网有写好的驱动文件,可以下载下来进行修改,但是有些地方不一样现在找出来
从soc的手册上面我们找到,片选引脚(nGCS4),和中断引脚(INT)
在这里插入图片描述

设置片选

在这里插入图片描述
通过在soc的datasheet里面 的 memory controller 找到当cpu发出的地址 在0x2000000到0x28000000 可以选中片选
所以也要把地址映射到0x20000000上面
在这里插入图片描述

设置中断

接到了cpu的外部中断7
在这里插入图片描述
我们在入口函数里面设置中断号,并且设置为上升沿触发
在这里插入图片描述
在open函数里面使用终端中断
在这里插入图片描述

设置地址脉冲,读写信号的时序

由于cpu是连接着soc上面的memory controller 通过memory controller 控制网卡
所以要对 nCE,nWE 进行时序的控制
在这里插入图片描述
从data0~data15 所以位宽是16位的 从电路图上面没接等待新号
在这里插入图片描述
从网卡手册上面找到时序手册,和最小最大时间参数
在这里插入图片描述
从2440的SOC里面找到memory controller 对应的时间参数
在这里插入图片描述
在soc的手册里找到寄存器的设置
在这里插入图片描述
我们需要设置Tacs,Tcos,Tacc,Tcoh,Tcah,Tacp,PMC 这些参数

设置Tacs

因为从图上看 CS#CMD 说明片选信号和控制信号可以同时发出 Tacs= 0
在这里插入图片描述

设置Tcos

当片选过后多久才能发出读信号 最小值可以取0
在这里插入图片描述

设置Tacc

旁边还有一个tacp 是搞什么页什么的 就不搞了
地址访问周期 我们的HCLK是100MHz 所以一个周期是10ns
时序图上面最小值是10ns 所以我们取一个周期
在这里插入图片描述

设置Tooh

读写信号之后,还要维持多长时间
最大值3ns 所以一个周期肯定行
在这里插入图片描述

设置Tcah

取消片选信号之后 地址还要维持多长间

在这里插入图片描述
最后完成设置
在这里插入图片描述
在代码中映射这两个地址
在这里插入图片描述
在这里插入图片描述

开始测试新驱动

由于不能通过网络文件insmod 驱动 我们直接编译进内核
修改原来的驱动名字 把自己的驱动移到内核里
在这里插入图片描述
在这里插入图片描述
修改makefile
在这里插入图片描述
在编译选项中增加自己的编译选项 去掉自带的网卡驱动
在这里插入图片描述
开始内核的编译
在这里插入图片描述
重新刷上内核 发现 完美

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值