Intel timed i/o driver in HTE

From: N, Pandith
Date: Thu Nov 17 2022 - 13:47:48 EST


Hi Dipen,

To support Intel timed i/o driver, it was suggested by Linux community to enhance hte framework.
However, we see some limitations to support complete Intel timed i/o device.

1. The current framework supports Nvidia IP, which has two IP blocks (hw timestamping engine interfaced with GPIO)
Intel timed i/o is a single IP block handling multiple functionalities like:

a. Input timestamping with event counter.
b. Timed output - single shot or periodic pulse train.
Uses TSC(Timestamp counter) for timestamp or generate events, which could be translated to system time.
c. Implement PPS functionality to export time.

This requires new functionality(interface) to be developed in hte framework specific to timed-io device.

2. The current hte framework has a provider and consumer concept.
Consumer is responsible for user space interaction.
Currently Nvidia is using GPIO for input timestamping (by adding hw timestamps in gpiolib-cdev.c)

For Intel timed i/o functionalities, current gpio user interfaces cannot support event counter
or output modes.
Rather than jigging hte consumer into other subsystems to support timed i/o device.
Any possibility of developing a native consumer in hte subsystem, which could handle user space interactions for timestamping engines.

I cannot think of an existing subsystem that handles Intel timed i/o functionalities 1a, 1b and 1c (mentioned above).

Regards,
Pandith