DM9000网卡驱动移植避坑指南:从设备树配置到内核菜单选项详解

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引脚时,设备树中需要双重配置:

  1. GPIO控制器配置(在pinctrl节点中):
gpx0: gpx0 {
    interrupt-controller;
    #interrupt-cells = <2>;
    gpio-controller;
    #gpio-cells = <2>;
    interrupts = <0 22 0>, <0 23 0>, ..., <0 31 0>;
};
  1. 网卡中断声明
interrupt-parent = <&gpx0>;  
interrupts = <6 4>;  // 对应GPX0_6,4表示高电平触发

常见故障现象及解决方案:

现象 可能原因 排查方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值