摘要¶
本项目的目标是彻底重写 iPXE 中存在的两个传统 etherboot 驱动程序:分别用于 VIA Rhine(VT6105M)和 VIA Velocity(VT6122/VT6130)芯片组。
交付物¶
| 交付物 | 周 | 当前状态 |
|---|---|---|
| 研究 iPXE 驱动程序 API 和 PCI API | 1 | 已完成 |
| 编写新 VIA Rhine 驱动程序骨架:探测并挂载网卡、读取 EEPROM、与 MII PHY 通信 | 2, 3 | 已完成 |
| 为 VIA Rhine 编写发送和接收(轮询)支持 | 4, 5 | 已完成 |
| 对驱动程序进行功能和性能测试 | 6 | 已完成 |
| 编写 VIA Velocity 驱动程序骨架:探测、挂载、读取 EEPROM 和 PHY | 7, 8 | 已完成 |
| 为 VIA Velocity 编写发送和接收支持 | 9, 10 | 进行中 |
| 对驱动程序进行功能和性能测试 | 11 | 进行中 |
| 审查代码并进行最终清理 | 12 | 未完成 |
| 提交代码并编写文档 | 13 | 未完成 |
每日进展¶
- 2012.05.20:基于 skeleton.[ch] 编写 VIA Rhine 驱动程序骨架。芯片复位、MII 读写和从芯片读取 MAC 地址已工作。
- 2012.05.22:代码风格清理,引入用于重新加载 EEPROM 内容的 rhine_reload_eeprom() 函数。正在进行链路状态通知。
- 2012.05.24:使用新 Rhine 驱动程序成功发送了第一批数据包!
- 2012.05.30:RX 和 TX 现已工作——使用新 Rhine 驱动程序首次成功启动
- 2012.06.10:代码清理,正在进行链路状态变化通知
- 2012.06.20:Rhine 驱动程序接近完成。已开始 Velocity 驱动程序的工作
- 2012.06.29:VIA Velocity 驱动程序骨架完成
- 2012.07.07:VIA Velocity 初始化、复位、EEPROM 读取、MII 访问和链路状态报告已工作。
- 2012.07.10:正在努力让 VIA Velocity 发送和接收第一个数据包
- 2012.07.25:TX 和 RX 已工作,有一些小问题
- 2012.08.13:两个芯片的中断支持(用于 UNDI)已工作。
截图¶
- 发送的第一个 DHCP 数据包——Rhine:http://i.imgur.com/D2RTn.png
- 发送的第一个 DHCP 数据包——Velocity:http://i.imgur.com/PC9z7.png
测试计划¶
- 功能测试:传输镜像、链路状态和速度变化
- 性能测试:传输速度
有用链接¶
- 代码仓库:https://git.ipxe.org/people/budrys/ipxe.git
- VIA VT6105M 数据手册:http://tinyurl.com/7gluqd5
- VIA VT6122 数据手册:http://people.freebsd.org/~wpaul/VIA/DS6122R160.pdf