[time-nuts] Designing an embedded precision GPS time
denny at cococafe.com
Wed Nov 1 13:15:43 EDT 2017
> On Nov 01, 2017, at 05:39, Attila Kinali <attila at kinali.ch> wrote:
> 6-10µs is the interrupt latency of linux on ARM SoC. I guess, to get
> below that you'd have to tweak the kernel a bit. Which should not
> be that difficult. Definitly simpler than writing your own IP and NTP
> stack from scratch.
Just tweak the Linux kernel a bit? No. You would have to a rewrite substantial chunks of it. A tremendous effort. Low latency and accurate timing is not what Linux is designed for. This has been discussed extensively for years.
Writing your own IPv4 datagram stack for ICMP and NTP is rather trivial. It’s all static state, you don’t have to deal with fragments, you don’t have to deal with options, etc. There really is very little you actually have to do. IPv6 is more work because you have to maintain some dynamic state (routing), process options, etc., but it’s still nothing near like trying to turn Linux into a real-time system.
> Spread spectrum can usually be switched off, though requires at least a
> custom DTB or even patching of the kernel. There are a few boards, though
> that do not allow spread spectrum to be switched off.
Unfortunately is usually has to be done in the bios. The control space that would allow spread spectrum to be turned off is usually disabled prior to kernel load. For compliance, most bios implementations have removed spread spectrum as an option so you have to build a custom one. I can’t begin to tell you what kind of a chill comes over the conversation with a vendor (even a maker oriented one) when you tell them you want to create a custom bios to disable spread spectrum.
More information about the time-nuts