Skip to content

offset not set properly in gpstime module with symetricom, possible race condition in initialization?

At the 40m the gpstime dkms modules are initializing with bad offsets. The calc_gps_offset.py script appears to be running, but the offset is not taken by the module:

Oct  7 16:00:42 c1ioo systemd-modules-load[191]: Inserted module 'gpstime'
Oct  7 16:00:42 c1ioo kernel: [    6.396375] gpstime: loading out-of-tree module taints kernel.
Oct  7 16:00:42 c1ioo kernel: [    6.396881] Spectracom GPS card on bus 7; device 0
Oct  7 16:00:42 c1ioo kernel: [    6.397039] gpstime: INFO - TSYNC PIC BASE 0 address = 0xfa9fe000
Oct  7 16:00:42 c1ioo kernel: [    6.397157] gpstime: INFO - Remapped (____ptrval____)
Oct  7 16:00:42 c1ioo kernel: [    6.699048] gpstime_sysfs_gps_offset_store success - new value = 0
Oct  7 16:00:42 c1ioo kernel: [    6.742323] gpstime_sysfs_gps_offset_store success - new value = 0
Oct  7 16:00:42 c1ioo kernel: [   11.406830] gpstime: INFO - TSYNC NOT receiving YEAR info, defaulting to by year patch
Oct  7 16:00:42 c1ioo kernel: [   11.406992] gpstime: INFO - date = 280 days 23: 0:970873243
Oct  7 16:00:42 c1ioo kernel: [   11.407093] gpstime: INFO - bcd time = 970873243 sec  309 milliseconds 367 microseconds  309362890 nanosec
Oct  7 16:00:42 c1ioo kernel: [   11.407257] gpstime: INFO - Board sync = 1
Oct  7 16:00:42 c1ioo kernel: [   11.417283] gpstime: INFO - TSYNC NOT receiving YEAR info, defaulting to by year patch
Oct  7 16:00:42 c1ioo kernel: [   11.417444] gpstime: INFO - date = 280 days 23: 0:970873243
Oct  7 16:00:42 c1ioo kernel: [   11.417546] gpstime: INFO - bcd time = 970873243 sec  319 milliseconds 820 microseconds  319815570 nanosec
Oct  7 16:00:42 c1ioo kernel: [   11.417709] gpstime: INFO - Board sync = 1

Our suspicion is that there is maybe a race condition on initialization, where the script is being executed by udev before the module is fully initialized and able to accept the offset.