DM9000网卡驱动移植学习记录

笔记记录:
网卡也是总线式访问,直接连接到Soc上面的
SROM(SRAM/ROM)-是一个总称,是SRAM或者ROM
SOC的SROM Controller提供对外总线式连接的SRAM/ROM接口
网卡接到了SROM中就好像一个储存芯片一样扩展到了SOC的地址空间,主机可以通过一个地址来访问网卡内部的寄存器。

网线:
网线有8根,4根数据线(两发两收)、4根地线(抗干扰用)
发 T+ / T-
收 R+ /R-
即传输的是差分信号。

CS引脚
很多芯片有片选引脚CS。
主机向CS发送有效信号,从机工作
主机向CS发送无效信号,从机不工作
有效信号,看芯片高低电平如何定义。
一般 CS 高电平有效
------ CS上有一条杠 低电平有效

x210上DM9000接法
在这里插入图片描述
分析网卡芯片

在这里插入图片描述
片选接在了CSn1,根据S5PV210原理图memory map。
即接到了bank1,bank1基地址偏移量计算(0x90000000-0x80000000)/2 = 0x08000000
所以BANK1基地址为0x88000000
在这里插入图片描述
目前还没学到驱动,所以驱动代码不用研究。
移植的关键是网卡的初始化。
在Uboot启动阶段的第二部分有网卡驱动的相关配置。
board.c->init_sequence[]->board_inint()->dm9000_pre_init()就进行了dm9000的初始化

在这里插入图片描述
头文件里面smdkv210single.h也要修改
在这里插入图片描述
因为DM9000芯片的CMD引脚接到了ADDR2,因此这里要+4(0b100,对应ADDR2)
理解方法
0000 - ADDR0
0010 - ADDR1
0100 - ADDR2

配置结束之后就可以在uboot里面ping通开发板了。而且可以使用tftp命令下载内核
在这里插入图片描述
课程里面提到了

(4)本来这样配置就完了,重新编译运行网卡就应该工作了。但是实际测试发现不工作,要怎么样修改呢?修改方式是将CONFIG_DM9000_BASE改成0x88000300就工作了。
问题?这个0x300从哪里来的?我得出的感觉最靠谱的解释是:跟DM9000网卡芯片型号版本有关,我认为这个0x300是DM9000网卡本身的问题,他本身的内部寄存器就有一个0x300的一个偏移量。

我自己测试的时候就没有添加300偏移量也能正常工作。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值