I'm working on a very basic network driver for a small research OS, which should rely on as few dependencies as possible. It performs well with old Intel network adapters including the I218-V, but it is not able to receive any packets with the newer I219-V. Transmitting works well. I have started to investigate this, but cannot find a suitable documentation or manual.
My question is: While I can find lots of driver development manuals for older adapters, there seems to be nothing comparable for the I219 or the associated PCH MAC. It should describe things like PCI-accessible registers, the Tx/Rx queue and so on. Could you point me to this piece of documentation?
thank you for your quick reply!
I have checked out your links; unfortunately, they do not really provide the needed information. While the e1000e Linux driver source code is available, it is quite large and thus hard to follow, especially since it supports lots of (undocumented) features I don't really need. I also can't directly port the driver, since my system is not Linux-based and, even then, the driver would cause far too much overhead. I have already looked into the documents in the technical library, but they don't contain any information on the PCIe programming interface, which makes sense since the card uses the PCH MAC.
So in the end I'm looking for the Software Developer's Manual for the Sunrise Point PCH, which doesn't seem to be available for the public.
As an example, there is a manual for the older ICH8/9/10, which describes the Ethernet programming interface pretty well:
But, for the Sunrise Point PCH, the manual is not very helpful:
It says: The Gigabit Ethernet controller(D31:F6) in conjunction with the Intel® Ethernet Connection I219 provides a complete LAN solution. This chapter describes the behavior of the Gigabit Ethernet Controller. For details on the Intel® Ethernet Connection I219, refer to document (TBD).
Then it provides some generic information, but no detailed description of configuration registers and transmission queues.
Is there any manual containing these kinds of information?