Skip to content

zhangzl419/rust-e1000

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rust simple e1000 device driver (Intel ethernet adapter)

This is for figuring out proper Rust PCI, DMA, network abstraction APIs for NIC drivers.

I implemented abstraction APIs (PCI, DMA, network, etc) for minimum functionality. No unsafe for calling C APIs in the driver. I've been working for upstreaming. Meanwhile you can compile the driver with my fork of Linux kernel.

$ make KDIR=~/git/linux LLVM=1

This driver works on QEMU, howerver nothing else works.

FYI, my command line is

qemu-system-x86_64 -smp 2 -m 1G \
  -kernel "arch/x86_64/boot/bzImage" \
  -initrd ../../initrd.img \
  -nographic -vga none \
  -append console=ttyS0 \
  -no-reboot -nic tap \
  -virtfs local,path=/home/ubuntu/git/quinn,mount_tag=quinn,security_model=none

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 99.8%
  • Makefile 0.2%