#driver #intel #ethernet #risc-v #linux #e1000 #gigabit

e1000-driver

Rust 编写的Intel 82540EP/EM 千兆以太网E1000 驱动程序。

1 个不稳定版本

0.1.0 2023年2月24日

#1416硬件支持

GPL-2.0 许可证

45KB
818

E1000 驱动程序

Rust 编写的Intel 82540EP/EM 千兆以太网E1000 驱动程序。

支持特性

  • 支持在Qemu上的RISCV E1000 驱动程序
  • 初始化e1000设备的简单PCI-Express
  • 将e1000驱动程序作为Linux驱动模块实现
  • 待办事项:网络协议支持:IP、ARP、UDP

裸机操作系统上的快速入门

初始化PCI和E1000驱动程序

pub struct Kernfn;
impl e1000_driver::e1000::KernelFunc for Kernfn { ... }

e1000_driver::pci::pci_init();

let mut e1000_device = e1000_driver::e1000::E1000Device::<Kernfn>::new(e1000_driver::pci::E1000_REGS as usize).unwrap();

发送网络数据包

e1000_device.e1000_transmit(&frame);

接收网络数据包

let rx_buf = e1000_device.e1000_recv();

Linux上的内核模块

cd src/linux
make ARCH=arch KDIR=/path/to/linux
# e.g. make ARCH=riscv KDIR=/home/rust/linux

参考

依赖项

~145KB