DM9000网卡驱动深度移植指南:Exynos4412设备树与内核配置实战
1. 设备树配置核心要点
在Exynos4412开发板上配置DM9000网卡,设备树编写是关键第一步。与常见嵌入式网卡不同,DM9000采用独特的地址/数据总线复用接口,需要特别注意以下寄存器映射配置:
ethernet@1,0 {
compatible = "davicom,dm9000";
reg = <1 0 0x2 1 4 0x2>; // 地址寄存器偏移0x2,数据寄存器偏移0x4
interrupt-parent = <&gpx0>;
interrupts = <6 IRQ_TYPE_LEVEL_HIGH>;
davicom,no-eeprom;
mac-address = [00 0a 35 01 fe c0];
samsung,srom-timing = <9 12 1 5 1 1>;
};
关键参数解析:
reg属性:前两组数字指定CS片选组(Bank1)的基地址和寄存器宽度,后两组定义数据寄存器偏移srom-timing:SROM总线时序参数,对应Tacs/Tcos/Tacc/Tcoh/Tah/Tacp六个时序值no-eeprom:声明不使用外部EEPROM存储MAC地址
实际项目中遇到过因时序配置不当导致数据丢包的情况,建议先用保守参数确保通信稳定,再逐步优化
2. 中断配置陷阱排查
DM9000的中断信号连接至GPX0_6引脚时,设备树中需要双重配置:
- GPIO控制器配置(在pinctrl节点中):
gpx0: gpx0 {
interrupt-controller;
#interrupt-cells = <2>;
gpio-controller;
#gpio-cells = <2>;
interrupts = <0 22 0>, <0 23 0>, ..., <0 31 0>;
};
- 网卡中断声明:
interrupt-parent = <&gpx0>;
interrupts = <6 4>; // 对应GPX0_6,4表示高电平触发
常见故障现象及解决方案:
| 现象 | 可能原因 | 排查方法 |
|---|


8265

被折叠的 条评论
为什么被折叠?



