Hi Greg, > -----Original Message----- > From: Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> > Sent: Tuesday, August 13, 2024 1:46 PM > To: lakshmi.sowjanya.d@xxxxxxxxx > Cc: tglx@xxxxxxxxxxxxx; giometti@xxxxxxxxxxxx; corbet@xxxxxxx; linux- > kernel@xxxxxxxxxxxxxxx; linux-doc@xxxxxxxxxxxxxxx; > andriy.shevchenko@xxxxxxxxxxxxxxx; Dong, Eddie <eddie.dong@xxxxxxxxx>; > Hall, Christopher S <christopher.s.hall@xxxxxxxxx>; N, Pandith > <pandith.n@xxxxxxxxx>; Mohan, Subramanian > <subramanian.mohan@xxxxxxxxx>; T R, Thejesh Reddy > <thejesh.reddy.t.r@xxxxxxxxx> > Subject: Re: [PATCH v10 0/3] Add support for Intel PPS Generator > > On Wed, Jun 12, 2024 at 09:23:56AM +0530, lakshmi.sowjanya.d@xxxxxxxxx > wrote: > > From: Lakshmi Sowjanya D <lakshmi.sowjanya.d@xxxxxxxxx> > > > > The goal of the PPS (Pulse Per Second) hardware/software is to > > generate a signal from the system on a wire so that some third-party > > hardware can observe that signal and judge how close the system's time > > is to another system or piece of hardware. > > > > Existing methods (like parallel ports) require software to flip a bit > > at just the right time to create a PPS signal. Many things can prevent > > software from doing this precisely. This (Timed I/O) method is better > > because software only "arms" the hardware in advance and then depends > > on the hardware to "fire" and flip the signal at just the right time. > > > > To generate a PPS signal with this new hardware, the kernel wakes up > > twice a second, once for 1->0 edge and other for the 0->1 edge. It > > does this shortly (~10ms) before the actual change in the signal needs > > to be made. It computes the TSC value at which edge will happen, > > convert to a value hardware understands and program this value to Timed > I/O hardware. > > The actual edge transition happens without any further action from the > > kernel. > > > > The result here is a signal coming out of the system that is roughly > > 1,000 times more accurate than the old methods. If the system is > > heavily loaded, the difference in accuracy is larger in old methods. > > > > Application Interface: > > The API to use Timed I/O is very simple. It is enabled and disabled by > > writing a '1' or '0' value to the sysfs enable attribute associated > > with the Timed I/O PPS device. Each Timed I/O pin is represented by a > > PPS device. When enabled, a pulse-per-second (PPS) synchronized with > > the system clock is continuously produced on the Timed I/O pin, > > otherwise it is pulled low. > > > > The Timed I/O signal on the motherboard is enabled in the BIOS setup. > > Intel Advanced Menu -> PCH IO Configuration -> Timed I/O <Enable> > > > > References: > > https://en.wikipedia.org/wiki/Pulse-per-second_signal > > https://drive.google.com/file/d/1vkBRRDuELmY8I3FlfOZaEBp- > DxLW6t_V/view > > https://youtu.be/JLUTT-lrDqw > > > > Patch 1 adds the pps(pulse per second) generator tio driver to the pps > > subsystem. > > Patch 2 documentation and usage of the pps tio generator module. > > Patch 3 includes documentation for sysfs interface. > > > > These patches are based on the timers/core branch: > > [1] > > https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/?h=timers/ > > core These changes are dependent on patches that are merged in [1]. > > This series now breaks the build due to api changes in 6.11-rc1. Please fix up > and resend. Ok, will fix up the API changes and resend the patch series. > thanks, > > greg k-h Thanks, Subbu