i have a question concerning IEEE1588 with EG20T platform controller hub. I am trying to use the IEEE1588 hardware assist module to generate accurate timestamps for PTP messages. This works fine for transmission: I use the IOCTL_1588_TX_POLL ioctl and get a correct timestamp. However, when receiving PTP messages, I always get a 0 value timestamp with IOCTL_1588_RX_POLL ioctl. Is this a problem with the IEEE1588 module not able to recognize incoming PTP messages, is it a problem with the module driver and what do I have to bear in mind when calling IOCTL_1588_RX_POLL.
I have the following configuration:
OS: Windows XP embedded
Intel Atom processor with EG20T platform controller hub.
Driver version for IEEE1588 HW assist module: 2.5.0
Thank you for your help,
My co-worker Tom did some research into this for you. Here is his response, we hope it helps.
I am assuming you are getting a SW time stamp instead of HW time stamp. From my understanding, only SW time stamping is supported with embedded, which will be less accurate on PTP.
It appears you are on the latest 1588 module, so that's good.
There are concerns about chipset OS support:
You say: OS: Windows XP embedded
The IEEE1588 driver is supported by the following operating system:
1 Microsoft Windows XP* Service Pack 3
2 Windows Embedded Standard* 2009
3 Windows Embedded POSReady* 2009
4 Microsoft Windows 7*
5 Windows Embedded Standard7
Items to bear in mind using IOCTL_1588_RX_POLL:
IEEE 1588 Hardware Assist implementation is dependent upon either the Gigabit Ethernet driver or the Controller Area Network (CAN) driver. Additionally, if CAN is used for the implementation of time synchronization, there is a dependency on a CAN client application to control the CAN driver and hardware block.
What setup, silicon controller and version of Ethernet driver are you using? Intel Ethernet presently only supports Linux and not Windows, so that sounds like the issue.
Do Intel software device drivers support PTP?
Currently, Windows operating systems provide no support for IEEE 1588, and support in Linux is only emerging. Because of this, the only software device drivers that support IEEE1588 are the Linux drivers for the 82576, 82580, and I350 controllers. These software device drivers provide an interface for the operating system and PTP applications to the time stamping functions in the Ethernet controller, but do not currently provide an interface to tune the internal clock. Driver support for other devices is coming soon.
Although software device driver support does not exist for all devices and all operating systems, PTP applications in any operating system can still use the Intel hardware time stamping functionality in any device by interacting directly with the Ethernet controller. PTP applications for Intel-based NICs exist for both Windows and Linux.