How to get IEEE 1588 1PPS on iMX6ULL?

Good morning
we need to get out IEEE 1588 1PPS on iMX6ULL in order to connect it to our data acquisition system. we are interested in having a PPS with an accuracy up to 100 us. Currently we can synchronize via PTP protocol our module iMX6ULL with Linux image BSP 5.7.0 version

Hi @idir !

Sorry for the delay.

Could you please share more information about the setup you are using?

  • Which exact Colibri iMX6ULL are you using? Please share its full name and version
  • Are you building your image using Yocto and BSP 5.7? Or TorizonCore 5.7?
  • Are you using an upstream or downstream based kernel?

Best regards,

Hi @henrique.tx ,
i am using Colibri iMX6ULL 512MB IT V1.1 A, with BSP 5.7.0 image builded using Yocto and upstream based kernel

Hi @idir !

We have the kernel configurations related to IEEE1588 and PPS already enabled by default, as seen below:

root@colibri-imx6ull-emmc-07201242:~# cat /etc/os-release
ID=tdx-xwayland-upstream
NAME="TDX Wayland with XWayland Upstream"
VERSION="5.7.0+build.20 (dunfell)"
VERSION_ID=5.7.0-build.20
PRETTY_NAME="TDX Wayland with XWayland Upstream 5.7.0+build.20 (dunfell)"
DISTRO_CODENAME="dunfell"

root@colibri-imx6ull-emmc-07201242:~# zcat /proc/config.gz | grep -iE "1588|ptp|pps"
CONFIG_HAVE_OPTPROBES=y
CONFIG_NET_PTP_CLASSIFY=y
CONFIG_NF_CONNTRACK_PPTP=m
CONFIG_NF_NAT_PPTP=m
# CONFIG_PPTP is not set
CONFIG_PPS=y
# CONFIG_PPS_DEBUG is not set
# PPS clients support
# CONFIG_PPS_CLIENT_KTIMER is not set
CONFIG_PPS_CLIENT_LDISC=y
CONFIG_PPS_CLIENT_GPIO=y
# PPS generators support
# PTP clock support
CONFIG_PTP_1588_CLOCK=y
# end of PTP clock support

To activate the PPS, you can refer to this solved question from NXP’s forum: Solved: How to get IEEE 1588 1PPS on i.MX6Q? - NXP Community

The ptp4l command there comes from NXP’s i.MX Linux Reference Manual, downloadable from Embedded Linux for i.MX Applications Processors | NXP Semiconductors. For BSP 5, please access the “Documentation” link from “Linux 5.4.70_2.3.0” release. The section “ENET IEEE-1588” will be helpful for you. You will need to create an account to download it.

Let us know if this helps you.

Best regards,

Hi @henrique.tx
thank you for your answer, I checked our iMX6ULL, indeed, it has same configurations as yours with EEE1588 and PPS enabled and I can also sync it with PTP using the ptp4l command, but I still can’t enable PPS output on GPIO. I have read the documentation that you have indicated to me however honestly I struggle to understand which file tds I have to modify and which string I have to add in it for iMX6ULL , I will be grateful if you give me some hints about it