JL
简体中文
DAVICOMDM9051LinuxEmbeddedDevice TreeSPI

DAVICOM DM9051 在嵌入式 Linux 的驱动配置与调试

用 SPI 接口的 DM9051 为没有内置 MAC 的 SoC 加上以太网:内核驱动启用、Device Tree 配置与常见问题排查。

发表于: 2025-04-01

为什么选 SPI 以太网

许多低端 SoC 或 MCU 并没有内置 MAC,或 MAC 已被占用。DM9051 是单芯片 10/100M 以太网控制器,集成 MAC 与 PHY,只用 SPI 就能加上一个网口,大幅简化硬件布线。

它已有 Linux kernel 原生驱动,因此在 Buildroot / Yocto 等嵌入式 Linux 平台上集成相当成熟。

启用内核驱动

DM9051 的驱动位于 kernel 的 drivers/net/ethernet/davicom 目录。在 menuconfig 中启用对应的 DM9051 选项(编译进内核或做成模块)即可。

确认你的 SPI 控制器驱动也一并启用,因为 DM9051 是挂在 SPI 总线上的设备,必须有可用的 SPI master。

Device Tree 配置

在 SPI 控制器节点下新增一个子节点描述 DM9051:compatible 设为 "davicom,dm9051"、指定 reg(片选编号)、spi-max-frequency(先保守设定,如 10~25MHz)、以及连接到中断脚的 interrupts/interrupt-parent。

若硬件有复位脚,也一并用 reset-gpios 描述。配置正确后开机 dmesg 应能看到网卡被注册(例如 eth0)。

常见问题排查

若网卡注册失败或封包不通,依序检查:中断是否正确接线与配置(IRQ 是常见问题);SPI 速度是否过高,先调低再逐步提升;MAC 地址是否有效(必要时于 device tree 或开机脚本指定)。

善用 dmesg 与 ethtool 观察连线状态(link、速度、双工),多数问题都能从这里定位。

文中提及的产品

DM9051 现货

DM9051 SPI 接口 10/100M Ethernet 控制器

DM9051 是 DAVICOM 推出的单芯片 10/100M Fast Ethernet 控制器,采用 SPI 接口,无需 8/16-bit 并列总线,大幅简化硬件设计。内置 16KB SRAM 收发 Buffer,支持 Full-Duplex 流控,已有 Linux kernel 原生驱动支持,适合 ARM 或 RISC-V MCU 系统的网络扩充。

EthernetSPIFast Ethernet
DM9000A 现货

DM9000A 并列接口 10/100M Ethernet 控制器

DM9000A 是广受嵌入式 Linux 社区熟悉的老牌 Ethernet 控制器,采用 8/16-bit 并列 ISA-like 接口,在 ARM9/ARM11 平台(如 Samsung S3C 系列)上有成熟驱动,u-boot 及 Linux kernel 原生支持,常见于工业嵌入式主板及 SoC 评估板。

EthernetParallelFast Ethernet

需要这些元器件或设计支持?

傑聯特科技提供元器件、规格书与工程技术支持。

立即询价