[elrepo] IGB driver with PTP hardware timestamping
Versteeg Marcel (ST-CO/ENG5.1)
Marcel.Versteeg at nl.bosch.com
Mon May 11 02:30:20 EDT 2015
Hi all,
For my hardware platform (with an Intel I210 network interface) I need to have support for hardware PTP timestamping. Our platform runs on CentOS 6.6. Due to other required software on our device (delivered only in binary form), we are forced to use a 32-bit hardware platform and therefore are not able to switch to CentOS 7.
CentOS 6.6 delivers IGB driver version 5.0.5-k with its kernel (we use version 2.6.32-504.12.2). Using the "PTP for Linux" application ptp4l I can verify that this combination is able to use hardware PTP timestamping. However, in our test system we have seen some issues when a lot of devices are trying to synchronize with the PTP master. When looking at the release notes of the IGB driver versions on the Intel site, I found out that support for (the fairly new) I210 chip was added and bugfixed in later releases of the driver. We would like to have these fixes on our platform, but so far are unable to get it working.
So far I have tried the following:
* Download the original 5.2.17 source package from Intel and compiled that driver. This resulted in a non-working driver. I have verified that the driver is compiled with support for hardware timestamping enabled. However, the ptp4l application is not able to retrieve the timestamp from the driver and reports this through the message "timeout while polling to tx timestamp". When looking at the network traffic using Wireshark, I also see that no PTP follow-up messages are sent, only PTP sync messages.
* Installed elrepo's kmod-igb (driver version 5.2.15). It seems that this version of the driver is not compiled with PTP hardware timestamping enabled, as the ptp4l application immediately reports that the required functionality is not supported.
* Tried to find the relevant changes in the source code between the original Intel 5.0.5 driver and the CentOS 5.0.5-k driver in order to see how I can update the 5.2.17 source to have it correctly return the tx timestamp to the kernel. So far without any luck.
I have the following questions, I hope someone will be able to answer:
* Is there a recent IGB hardware driver available that has hardware timestamping enabled for CentOS 6.6? If so, where can I find it.
* How is the network driver supposed to return the tx timestamp to the kernel? The ptp4l application uses the system call "poll" to retrieve the timestamp. I found out that the kernel returns the timestamp in a "message" through the socket which contains three timespec values, of which one is the hardware timestamp returned by the driver. However, I have not found any call in the driver that should return that value, except the function "igb_i210_gettime", which is obviously not called when a message is sent by the ptp4l application (I have added a lot of logging to the syslog to the 5.2.17 driver after I found out it didn't work to see what calls are being made).
I hope someone is able to help me on this issue, so we can have full support (with PTP hardware timestamping) for the I210 network interface .
Met vriendelijke groet / Best regards
Marcel Versteeg
Bosch Security System BV
BU Communications Systems, Engineering & Technology, Engineering Platform (ST-CO/ENG5.1)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.elrepo.org/pipermail/elrepo/attachments/20150511/bef27170/attachment.html>
More information about the elrepo
mailing list