目录

  • 简介
  • 添加dm9000网卡设备驱动
  • 在设备树中添加网卡驱动
  • 编译下载
  • 常见错误

简介

DM9000是一款低成本的以太网MAC控制器,集成MAC和PHY功能,内部有16K的SRAM,像访问存储芯片一样对DM9000进行操作读写。
Linux3.x内核自带有DM9000驱动,我们需要将DM9000编译进入内核,配置好对应设备树。除此之外,使用到的硬件资源也需要进行相应的初始化。

添加dm9000网卡设备驱动

在根目录下执行make menuconfig,进入配置界面。输入’/’进入搜索界面,可以查找到DM9000的配置位置。

使能DM9000,使其编译进入内核。(按空格键选中)

在设备树中添加网卡驱动

在设备树文件中添加DM9000驱动,可参考厂商提供的范例代码(路径:Documentation/devicetree/bindings/net/davicom-dm9000.txt):

当然你也可以参考其他厂商的配置方法:

将设备树添加到对应的.dts文件中,路径:linux-at91-linux-3.18-at91/arch/arm/boot/dts。
ethernet@05000000 {
compatible = “davicom,dm9000”;
reg = <0x05000000 0x2 0x05000004 0x2>;/0x05000000为4412处理器的srom片选地址,详见手册/
interrupt-parent = <&gpx0>;/继承父节点/
interrupts = <6 4>;/gpx0节点中断中的第6个,4是标志/
local-mac-address = [00 00 de ad be ef];/网卡地址/
davicom,no-eeprom;
}
reg寄存器的配置,硬件DM9000的片选引脚连接的NCS2,在芯片数据手册上,Memory Mapping图中,可查看到NCS2对应的片选首地址为0x5000 0000。

编译下载

编译设备树,执行make dtbs。
编译下载过后,在/proc/device-tree可以看到相应的设备树配置

常见错误

1.内核启动时,打印如下错误:dm9000 50000000.ethernet: read wrong id 0x2b2a2928
答:出现该问题,多半是CPU处理器初始化不对,比如通信总线的初始化不对、复位引脚的初始化不对。
2.dm9000初始化成功,但是不能ping通
答:需要确认中断是否配置正确,中断不正确则ping不通。

Linux内核移植之DM9000网卡驱动相关推荐

  1. 以太网卡驱动程序移植linux,基于S3C2440的DM9000网卡驱动的移植

    摘  要: 主要研究了基于Linux内核的网卡驱动的移植.Linux网络设备驱动程序的体系结构可以分为4层,首先分析了各层的具体功能实现,并在此基础上充分利用S3C2440开发板完成DM9000网卡驱 ...

  2. 初识Linux Kernel 移植 之 dm9621网卡驱动移植

    初识Linux 驱动移植 -- dm921 概述 配置内核 dm9621 网卡驱动编译配置选项 问题探索 读 dm9621 MAC 地址失败 网卡反复断开重连 概述 将kernel移植到开发板并能正常 ...

  3. Linux内核学习笔记之网卡驱动的详细分析:RTL8139

    学习应该是一个先把问题简单化,在把问题复杂化的过程.一开始就着手处理复杂的问题,难免让 人有心惊胆颤,捉襟见肘的感觉.读Linux网卡驱动也是一样.那长长的源码夹杂着那些我们陌生的变量和符号,望而生畏 ...

  4. Linux内核移植 part3:sdmmc驱动

    一种纯粹靠读书学来的真理,与我们的关系,就像假肢.假牙.蜡鼻子甚或人工植皮.而由独立思考获得的真理就如我们天生的四肢:只有它们才属于我们. -- 叔本华 读书的价值在于认识你自己,而不是用填鸭式的知识 ...

  5. linux 内核 网卡驱动 移植,Linux内核移植步骤_添加DM9000网卡驱动(设备树).docx

    Linux内核移植步骤_添加DM9000网卡驱动(设备树) Linux内核移植步骤2015年05月13日星期三上午 11:05往设备树中添加网卡驱动:1.选平台,指定交叉编译工具链:(1).在Make ...

  6. linux 内核 网卡驱动 移植,linux内核移植步骤添加dm9000网卡驱动(设备树).docx

    linux内核移植步骤添加dm9000网卡驱动(设备树).docx LINUX内核移植步骤2015年05月13日星期三上午1105往设备树中添加网卡驱动1.选平台,指定交叉编译工具链1.在MAKEFI ...

  7. 基于linux2.6.30.4内核的DM9000网卡驱动编译成模块成功ping通

    基于linux2.6.30.4内核的DM9000网卡驱动编译成模块成功ping通 最近有个学生毕业设计需要实现基于ARM的DM9000网卡通信,但是linux2.6.30.4内核已经把DM9000网卡 ...

  8. 【正点原子Linux连载】第三十七章 Linux内核移植 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  9. arm平台linux的ethtool配置,ARM-Linux驱动--DM9000网卡驱动分析(四)

    原标题:ARM-Linux驱动--DM9000网卡驱动分析(四) 硬件平台:FL2440 (S3C2440) 内核版本:2.6.35 主机平台:Ubuntu 11.04 内核版本:2.6.39 交叉编 ...

  10. s5pv210 linux内核移植,S5PV210(TQ210)学习笔记——内核移植与文件系统构建之二

    由于之前做过2440和6410,鉴于时间原因,这里暂时跨过其他模块的裸机驱动和uboot移植,直接进入内核移植及驱动开发方面的学习. 三 设置uboot启动参数 我的nfs根目录为/nfsroot,我 ...

最新文章

  1. OpenCV录制视频
  2. C++ Primer 第10章 习题 10.18
  3. x86架构linux内核引导过程分析,SylixOS---x86引导过程分析
  4. JSP EL表达式 将数组拼接成字符串
  5. linux 的文件软链接隐藏,Linux inode及硬链接软链接详解
  6. python数据结构简单总结
  7. Qt在指定区域内拖动窗口
  8. mysql insert插入的3种方法
  9. 视觉SLAM笔记(38) 3D-3D: ICP
  10. 机器学习——One-Hot编码
  11. RHCE认证培训+考试七天实录(三)
  12. Mysql报too many connections详解
  13. 动手学习数据分析(五)——数据建模及模型评估
  14. Atitit 云计算体系树.docx Atitit 云计算之道 attilax著 艾龙 著 serverless bomb 1. 什么才是云计算的根本特征.. 2 2. 云计算体系 2 3. “云
  15. MAC下安装配置Tomcat
  16. 为啥春节抢红包总不是运气王?看完微信抢红包算法你就明白了
  17. MapABC 地图定位
  18. 1至9填入九个方框内_把19这九个数字填在方框里
  19. 微信小程序 - 获取屏幕的大小
  20. Linux 命令的初学习2

热门文章

  1. CREO学习笔记【钣金结构中常用的标准件】
  2. php结合phantomjs实现网页截屏、抓取js渲染的页面
  3. PythonSD01个人释疑
  4. 怎么修改PDF文件的内容?教你两招快来看看
  5. java dom4j解析复杂xml成json
  6. Android开发开发时语言对照表
  7. 颜色科学与计算机测色配色实用技术,颜色科学与计算机测色配色实用技术
  8. 《软件工程导论》考试复习题集锦
  9. 制作PPT和画报的免费素材:pixabay免费照片插图矢量图
  10. 按键云数据仓库平台 ,连接按键精灵和云端数据库,可自行配置用做网络验证或云端配置