log on adding drvs on rcore - oscourse-tsinghua/rcore_plus GitHub Wiki

plan

  • long term: more safety/modular/virtual drv framework and drvs support virt/phy HWs.
  • middle term: USB/BLOCK/GPU ...drvs
  • shot term: real NIC driver(82599), virt NIC E1000

2019.03.18

  • cjj: ixgbe is up in PC.

2019.03.16

  • cjj: with help of Yisong, Wang, fixed the problem in ixgbe driver.

2019.03.14

  • cjj: ixgbe basic network is partially working.

2019.03.13

  • cjj: got machine up and running with pci passthru to qemu. tip: use ethtool -d iface.

2019.02.26

  • cjj: early e1000 net driver implementation (recv and send both working)

2019.02.25

  • cjj: probe pci device with mmio address
  • zqy: running ixy.c in kvm with pass-through 82599NIC

2019.02.22

  • zqy: ixy.c, ixy.rs could run on x86-64.
  • cy: read info about user mode/level interrupt, vfio, iommu...

2019.02.21

  • cy: read 2018-ixy-rust/c.pdf. read code.

2019.02.20

before 2019.01.19

  • cjj: added virtio gpu/block/net... drvs in rcore

reference

NIC datasheet

  • 82599 datasheet
    • init device: section 4.6.3
    • initialize link (auto negotiation): section 4.6.4
    • statistical counters: section 4.6.5
    • init rx: section 4.6.7
    • init tx: section 4.6.8

PCI_Express/APIC/IOAPIC

device pass-through