e1000e 实现与验证计划¶
目标与边界¶
为 Intel 82574L/82574IT(8086:10d3)和 82583V(8086:150c)提供独立的 原生 PCIe 以太网驱动。沿用现有单 eth0 网络服务、Linux socket/ioctl ABI 及原生模块 owner 管理,不修改 BusyBox 或公开 ABI。其他 e1000e 家族设备 不在本次设备表中。默认内置,允许配置为 e1000e.ko。
实现采用本项目 Apache-2.0 源码,依据 Intel 寄存器手册;不复制 Linux GPL 驱动。保留现有 E1000。芯片识别、复位与链路管理、DMA 收发环和模块注册分别 归属 drivers/net/e1000e/ 中的文件,并由该目录 Kbuild 列出。
执行清单¶
[x] 核对实际工作树、旧 E1000、PCI MMIO/DMA 和网络 owner 生命周期。
[x] 先建立驱动行为测试,确认驱动缺失时失败。
[x] 实现精确 PCI 设备表、64 位 BAR、复位、MAC/NVM 和 PHY 自动协商。
[x] 实现有界异步 TX、完整 RX 校验、并发环访问和安全停止/回滚。
[x] 接入 E1000E tristate、模块别名、默认内置和独立模块构建。
[x] 防止第二个网络提供者覆盖已有 eth0,验证原提供者仍然可用。
[x] 运行定向宿主测试、内置和模块构建、相关 Kconfig/归属检查。
[x] 在私有 QEMU 镜像验证 DHCP、IPv4/IPv6、TCP 数据校验和模块重载。
[x] 更新驱动文档,分别记录 QEMU、VMware、实体硬件的验证边界。
验证约束¶
测试驱动初始化、DMA 地址而非 CPU 地址、描述符回收与环回绕、错误 RX、 无网线启动、分配/映射失败、复位超时和卸载后的资源回收。宿主硬件模型只替代 PCI/MMIO/DMA 外部设备,执行真实驱动入口与回调;不为生产驱动增加测试接口。
内核行为探针和宿主测试放在 ReliefNT;完整镜像与 QEMU 编排放在 ReliefOS。 仅修改新建的 out/e1000e/ 留证与镜像副本,保留原镜像。TMPDIR 使用父仓 out/tmp。实体硬件与 VMware 未运行时必须明确标记未验证。