笔记 34 - 5 :网卡 DM9000AE;SROM 初始化 286u-boot 已经自带了 DM9000 系列网卡的驱动在 u-boot 源码中的 driver / net / dm9000x.c 的有一段说明分析驱动涉及到以下几个文件include/net.h net/eth.c include/configs/origen.h board/samsung/origen/origen.c// 仍然是未修改的三星原版文件drivers/net/Dm9000x.h drivers/net/Dm9000x.c include/config_cmd_default.h arch/arm/lib/board.c在 include / configs / origen.h 中需要定义 DM9000A 基地址和编译的宏 其中 DM9000_DATA 定义为基地址 0x4刚好把 Xm0ADDR2 拉高即把 CMD 拉高。 查看文件 drivers / net / Makefile 从 Makefile 得知要把 DM9000A 的驱动编译进 u-boot 中需要定义 CONFIG_DRIVER_DM9000 这个宏。除此以外我们还需要添加一些 u-boot 的命令比如 ping 命令用来检查网络是否通畅tftp 用来下载文件。uboot通过宏来控制是否编译这些命令include/configs/origen.h 定义了一些宏但是有的是 undefine我们要打开它们老师说至此头文件都有了可以编译到 origin 了。287初始化 SROM 控制器之前老师在讲解 uboot 启动与初始化流程时候提到了这个函数 board_init_r ( … ), 地址如下继续 board_init_r … 的调用链来看函数 exynos_config_sromc …至此上面的 SROM 就初始化好了。288DM9000A 驱动分析。DM9000A 所能支持的功能非常的多驱动的实现相对比较复杂搞清楚裸机的网卡驱动我们再去学习Linux内核的 DM9000 驱动就相对容易一些。先认识俩重要的结构体 netdev该成员是 uboot 提供的标准的统一的网卡设备接口。该结构体维护了操作网卡的回调函数等信息我们只需要把网口的收发数据操作封装到对应的回调函数中然后注册到系统即可。网卡注册 / 注销函数 eth_register ( ) 位于 net / eth.c 中以上就完成了网卡的初始化与注册。 下面就是网卡的数据收发与 uboot 的网络协议栈。289谢谢