【工程师分享】测试MPSoC GEM 的1588功能

FPGA开发圈 2021-05-10 00:00

作者:付汉杰,hankf@xilinx.com,文章转载自:博客园

MPSoC的MAC支持1588。在Linux Kernel的配置项中使能CONFIG_MACB_USE_HWSTAMP,并在Linux rootfs添加Linux ptp/ethtool,就可以运行1588的软件命令ptp4l。


PetaLinux下,配置Linux rootfs命令是petalinux-config -c rootfs。1588在Linux用户态的应用程序软件包是Linuxptp,可执行文件是ptp4l。




1
在zcu106之间运行1588

下面的命令,在zcu106之间运行1588。运行顺序是先在第一块单板(master)启动1588 master;再在第二块单板(slave)上启动1588 slave;接下来在第一块单板(master)终止1588 master,模拟1588 master故障;最后再在第一块单板(master)启动1588 master。


1.1. master
1588 master的命令是ptp4l -i eth0 -m。运行记录如下:

root@zcu106_vcu_trd:~# # master
root@zcu106_vcu_trd:~# uname -a
Linux zcu106_vcu_trd 5.4.0-xilinx-v2020.2 #1 SMP Wed Feb 24 10:06:51 UTC 2021 aarch64 GNU/Linux
root@zcu106_vcu_trd:~# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0A:35:04:D2:38
inet addr:10.164.16.102 Bcast:10.164.16.255 Mask:255.255.255.0
inet6 addr: fe80::20a:35ff:fe04:d238/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:381 errors:0 dropped:0 overruns:0 frame:0
TX packets:438 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:37123 (36.2 KiB) TX bytes:49863 (48.6 KiB)
Interrupt:31

root@zcu106_vcu_trd:~# ptp4l -i eth0 -m
ptp4l[577.050]: selected /dev/ptp0 as PTP clock
ptp4l[577.051]: port 1: INITIALIZING to LISTENING on INIT_COMPLETE
ptp4l[577.051]: port 0: INITIALIZING to LISTENING on INIT_COMPLETE
ptp4l[583.599]: port 1: LISTENING to MASTER on ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES
ptp4l[583.599]: selected local clock 000a35.fffe.04d238 as best master
ptp4l[583.600]: assuming the grand master role
^C
root@zcu106_vcu_trd:~# ptp4l -i eth0 -m
ptp4l[637.574]: selected /dev/ptp0 as PTP clock
ptp4l[637.575]: port 1: INITIALIZING to LISTENING on INIT_COMPLETE
ptp4l[637.575]: port 0: INITIALIZING to LISTENING on INIT_COMPLETE
ptp4l[644.708]: port 1: LISTENING to MASTER on ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES
ptp4l[644.708]: selected local clock 000a35.fffe.04d238 as best master
ptp4l[644.708]: assuming the grand master role
^Croot@zcu106_vcu_trd:~#


上面的1588 master,先启动,再停止,再启动。


1.2. slave
1588 slave的命令是ptp4l -i eth0 -s -m。运行记录如下:

root@zcu106_vcu_trd:~# # slave
root@zcu106_vcu_trd:~# uname -a
Linux zcu106_vcu_trd 5.4.0-xilinx-v2020.2 #1 SMP Wed Feb 24 10:06:51 UTC 2021 aarch64 GNU/Linux
root@zcu106_vcu_trd:~# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 06:51:E5:C2:71:88
inet addr:10.164.16.8 Bcast:10.164.16.255 Mask:255.255.255.0
inet6 addr: fe80::451:e5ff:fec2:7188/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:880 errors:0 dropped:26 overruns:0 frame:0
TX packets:484 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:62884 (61.4 KiB) TX bytes:51650 (50.4 KiB)
Interrupt:31

root@zcu106_vcu_trd:~# ptp4l -i eth0 -s -m
ptp4l[577.398]: selected /dev/ptp0 as PTP clock
ptp4l[577.399]: port 1: INITIALIZING to LISTENING on INIT_COMPLETE
ptp4l[577.399]: port 0: INITIALIZING to LISTENING on INIT_COMPLETE
ptp4l[577.755]: port 1: new foreign master 000a35.fffe.04d238-1
ptp4l[581.755]: selected best master clock 000a35.fffe.04d238
ptp4l[581.755]: port 1: LISTENING to UNCALIBRATED on RS_SLAVE
ptp4l[583.754]: master offset -701 s0 freq +4079 path delay 2992
ptp4l[584.754]: master offset -957 s2 freq +3823 path delay 3037
ptp4l[584.754]: port 1: UNCALIBRATED to SLAVE on MASTER_CLOCK_SELECTED
ptp4l[585.754]: master offset -727 s2 freq +3096 path delay 3037
ptp4l[586.754]: master offset 430 s2 freq +4035 path delay 3035
ptp4l[587.754]: master offset 437 s2 freq +4171 path delay 3034
ptp4l[588.754]: master offset 351 s2 freq +4216 path delay 3035
ptp4l[589.754]: master offset 222 s2 freq +4192 path delay 3035
ptp4l[590.754]: master offset -108 s2 freq +3929 path delay 3047
ptp4l[605.754]: master offset 229 s2 freq +4239 path delay 3019
ptp4l[606.754]: master offset 18 s2 freq +4096 path delay 3035
ptp4l[607.754]: master offset -156 s2 freq +3928 path delay 3035
ptp4l[615.730]: port 1: SLAVE to LISTENING on ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES
ptp4l[615.731]: selected local clock 0651e5.fffe.c27188 as best master
ptp4l[621.758]: selected local clock 0651e5.fffe.c27188 as best master
ptp4l[629.169]: selected local clock 0651e5.fffe.c27188 as best master
ptp4l[635.881]: selected local clock 0651e5.fffe.c27188 as best master
ptp4l[638.863]: selected best master clock 000a35.fffe.04d238
ptp4l[638.863]: port 1: LISTENING to UNCALIBRATED on RS_SLAVE
ptp4l[640.862]: master offset 4627 s2 freq +8664 path delay 2932
ptp4l[640.862]: port 1: UNCALIBRATED to SLAVE on MASTER_CLOCK_SELECTED
ptp4l[641.862]: master offset -22 s2 freq +5403 path delay 2978
ptp4l[642.862]: master offset -2147 s2 freq +3271 path delay 3580
ptp4l[643.862]: master offset -868 s2 freq +3906 path delay 3279
ptp4l[644.862]: master offset -644 s2 freq +3870 path delay 3019
ptp4l[645.862]: master offset -402 s2 freq +3919 path delay 2978
ptp4l[646.863]: master offset -103 s2 freq +4097 path delay 2978
ptp4l[647.863]: master offset -157 s2 freq +4012 path delay 3001
ptp4l[648.863]: master offset -350 s2 freq +3772 path delay 3042
ptp4l[649.863]: master offset 126 s2 freq +4143 path delay 3021
ptp4l[650.863]: master offset 40 s2 freq +4095 path delay 3021


在1588 slave的打印中可以看到,slave先选择外部时钟master 000a35.fffe.04d238。当外部master退出后,再选择了本地时钟,0651e5.fffe.c27188。当外部master正常后,又选择了外部时钟master 000a35.fffe.04d238。


时钟的标识,是网卡的MAC地址。


master offset表示主从端时间差,单位是ns。s0,s1,s2 : 表示1588的不同状态,s0表示未锁定,s1表示正在同步,s2表示锁定。


2
PC机上运行1588

也可以在PC机上运行1588。首先在master和slave的PC机安装1588的Linux用户态应用程序,Linuxptp。

hankf@XSZGS4:~$ sudo apt install linuxptp
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
libfwup1 libllvm9 linux-hwe-5.4-headers-5.4.0-51 linux-hwe-5.4-headers-5.4.0-52 linux-hwe-5.4-headers-5.4.0-53 linux-hwe-5.4-headers-5.4.0-56 linux-hwe-5.4-headers-5.4.0-58
linux-hwe-5.4-headers-5.4.0-59 linux-hwe-5.4-headers-5.4.0-60 linux-hwe-5.4-headers-5.4.0-62 linux-hwe-5.4-headers-5.4.0-65 linux-hwe-5.4-headers-5.4.0-66 linux-hwe-5.4-headers-5.4.0-67
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
linuxptp
0 upgraded, 1 newly installed, 0 to remove and 18 not upgraded.
Need to get 112 kB of archives.
After this operation, 418 kB of additional disk space will be used.
Get:1 http://hk.archive.ubuntu.com/ubuntu bionic/universe amd64 linuxptp amd64 1.8-1 [112 kB]
Fetched 112 kB in 3s (33.0 kB/s)
Selecting previously unselected package linuxptp.
(Reading database ... 477696 files and directories currently installed.)
Preparing to unpack .../linuxptp_1.8-1_amd64.deb ...
Unpacking linuxptp (1.8-1) ...
Setting up linuxptp (1.8-1) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...


2.1. master
然后运行1588 master。

hankf@XSZGS4:~$ sudo ptp4l -i ens12f2 -m
[sudo] password for hankf:
ptp4l[4247020.499]: selected /dev/ptp4 as PTP clock
ptp4l[4247020.500]: driver changed our HWTSTAMP options
ptp4l[4247020.500]: tx_type 1 not 1
ptp4l[4247020.500]: rx_filter 1 not 12
ptp4l[4247020.500]: port 1: INITIALIZING to LISTENING on INITIALIZE
ptp4l[4247020.500]: port 0: INITIALIZING to LISTENING on INITIALIZE
ptp4l[4247020.501]: port 1: link up
ptp4l[4247028.079]: port 1: LISTENING to MASTER on ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES
ptp4l[4247028.079]: selected best master clock 6c92bf.fffe.ccc500
ptp4l[4247028.079]: assuming the grand master role
^C
hankf@XSZGS4:~$


2.2. Slave
运行1588 Slave。

xilinx@xszgs2:~$ ifconfig eno3
eno3: flags=4163 mtu 1500
inet 10.164.177.202 netmask 255.255.255.0 broadcast 10.164.177.255
inet6 fe80::f56c:dc30:fa49:b101 prefixlen 64 scopeid 0x20
ether d0:94:66:55:0d:e9 txqueuelen 1000 (Ethernet)
RX packets 39897217 bytes 48144750947 (48.1 GB)
RX errors 107 dropped 6 overruns 107 frame 0
TX packets 14982002 bytes 4367094180 (4.3 GB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 42 memory 0x9e800000-9effffff

xilinx@xszgs2:~$ ptp4l -i eno3 -s -m
ptp4l[3650610.080]: selected /dev/ptp2 as PTP clock
ptp4l[3650610.081]: Failed to open /dev/ptp2: Permission denied
failed to create a clock
xilinx@xszgs2:~$ sudo ptp4l -i eno3 -s -m
ptp4l[3650613.052]: selected /dev/ptp2 as PTP clock
ptp4l[3650613.071]: port 1: INITIALIZING to LISTENING on INITIALIZE
ptp4l[3650613.071]: port 0: INITIALIZING to LISTENING on INITIALIZE
ptp4l[3650613.072]: port 1: link up
ptp4l[3650614.597]: port 1: new foreign master 6c92bf.fffe.ccc500-1
ptp4l[3650618.597]: selected best master clock 6c92bf.fffe.ccc500
ptp4l[3650618.597]: port 1: LISTENING to UNCALIBRATED on RS_SLAVE
ptp4l[3650620.597]: master offset -496821638515 s0 freq +0 path delay 25928
ptp4l[3650621.597]: master offset -496821663985 s1 freq -25469 path delay 22934
ptp4l[3650622.597]: master offset -3011 s2 freq -28480 path delay 22934
ptp4l[3650622.599]: port 1: UNCALIBRATED to SLAVE on MASTER_CLOCK_SELECTED
ptp4l[3650623.596]: master offset 6729 s2 freq -19643 path delay 13071
ptp4l[3650624.596]: master offset -2000 s2 freq -26353 path delay 13071
ptp4l[3650625.596]: master offset -4376 s2 freq -29329 path delay 13297
ptp4l[3650626.596]: master offset -3468 s2 freq -29734 path delay 13071
ptp4l[3650627.596]: master offset -2191 s2 freq -29498 path delay 13071
ptp4l[3650628.596]: master offset -994 s2 freq -28958 path delay 12936
ptp4l[3650629.596]: master offset -435 s2 freq -28697 path delay 12874
ptp4l[3650630.596]: master offset -380 s2 freq -28773 path delay 12874
ptp4l[3650631.596]: master offset -176 s2 freq -28683 path delay 12874
ptp4l[3650632.596]: master offset 161 s2 freq -28398 path delay 12874


在1588 slave的打印中可以看到,PC机上slave报告的master offset和path delay,都远远大于在zcu106之间运行1588的数据。



3
参考文档

MPSoC Ethernet Macb Driver(链接点击“阅读原文查看”)





扫码关注我们
关注电子元件技术,了解最新的产品技术资讯。

扫码申请加入电子元件技术交流圈

FPGA开发圈 这里介绍、交流、有关FPGA开发资料(文档下载,技术解答等),提升FPGA应用能力。
评论
  • 2024年是很平淡的一年,能保住饭碗就是万幸了,公司业绩不好,跳槽又不敢跳,还有一个原因就是老板对我们这些员工还是很好的,碍于人情也不能在公司困难时去雪上加霜。在工作其间遇到的大问题没有,小问题还是有不少,这里就举一两个来说一下。第一个就是,先看下下面的这个封装,你能猜出它的引脚间距是多少吗?这种排线座比较常规的是0.6mm间距(即排线是0.3mm间距)的,而这个规格也是我们用得最多的,所以我们按惯性思维来看的话,就会认为这个座子就是0.6mm间距的,这样往往就不会去细看规格书了,所以这次的运气
    wuliangu 2025-01-21 00:15 183浏览
  • 高速先生成员--黄刚这不马上就要过年了嘛,高速先生就不打算给大家上难度了,整一篇简单但很实用的文章给大伙瞧瞧好了。相信这个标题一出来,尤其对于PCB设计工程师来说,心就立马凉了半截。他们辛辛苦苦进行PCB的过孔设计,高速先生居然说设计多大的过孔他们不关心!另外估计这时候就跳出很多“挑刺”的粉丝了哈,因为翻看很多以往的文章,高速先生都表达了过孔孔径对高速性能的影响是很大的哦!咋滴,今天居然说孔径不关心了?别,别急哈,听高速先生在这篇文章中娓娓道来。首先还是要对各位设计工程师的设计表示肯定,毕竟像我
    一博科技 2025-01-21 16:17 100浏览
  • 临近春节,各方社交及应酬也变得多起来了,甚至一月份就排满了各式约见。有的是关系好的专业朋友的周末“恳谈会”,基本是关于2025年经济预判的话题,以及如何稳定工作等话题;但更多的预约是来自几个客户老板及副总裁们的见面,他们为今年的经济预判与企业发展焦虑而来。在聊天过程中,我发现今年的聊天有个很有意思的“点”,挺多人尤其关心我到底是怎么成长成现在的多领域风格的,还能掌握一些经济趋势的分析能力,到底学过哪些专业、在企业管过哪些具体事情?单单就这个一个月内,我就重复了数次“为什么”,再辅以我上次写的:《
    牛言喵语 2025-01-22 17:10 41浏览
  •  万万没想到!科幻电影中的人形机器人,正在一步步走进我们人类的日常生活中来了。1月17日,乐聚将第100台全尺寸人形机器人交付北汽越野车,再次吹响了人形机器人疯狂进厂打工的号角。无独有尔,银河通用机器人作为一家成立不到两年时间的创业公司,在短短一年多时间内推出革命性的第一代产品Galbot G1,这是一款轮式、双臂、身体可折叠的人形机器人,得到了美团战投、经纬创投、IDG资本等众多投资方的认可。作为一家成立仅仅只有两年多时间的企业,智元机器人也把机器人从梦想带进了现实。2024年8月1
    刘旷 2025-01-21 11:15 390浏览
  •     IPC-2581是基于ODB++标准、结合PCB行业特点而指定的PCB加工文件规范。    IPC-2581旨在替代CAM350格式,成为PCB加工行业的新的工业规范。    有一些免费软件,可以查看(不可修改)IPC-2581数据文件。这些软件典型用途是工艺校核。    1. Vu2581        出品:Downstream     
    电子知识打边炉 2025-01-22 11:12 49浏览
  • 本文介绍瑞芯微开发板/主板Android配置APK默认开启性能模式方法,开启性能模式后,APK的CPU使用优先级会有所提高。触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。源码修改修改源码根目录下文件device/rockchip/rk3562/package_performance.xml并添加以下内容,注意"+"号为添加内容,"com.tencent.mm"为AP
    Industio_触觉智能 2025-01-17 14:09 164浏览
  • 现在为止,我们已经完成了Purple Pi OH主板的串口调试和部分配件的连接,接下来,让我们趁热打铁,完成剩余配件的连接!注:配件连接前请断开主板所有供电,避免敏感电路损坏!1.1 耳机接口主板有一路OTMP 标准四节耳机座J6,具备进行音频输出及录音功能,接入耳机后声音将优先从耳机输出,如下图所示:1.21.2 相机接口MIPI CSI 接口如上图所示,支持OV5648 和OV8858 摄像头模组。接入摄像头模组后,使用系统相机软件打开相机拍照和录像,如下图所示:1.3 以太网接口主板有一路
    Industio_触觉智能 2025-01-20 11:04 150浏览
  • Ubuntu20.04默认情况下为root账号自动登录,本文介绍如何取消root账号自动登录,改为通过输入账号密码登录,使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568,四核A55处理器,主频2.0Ghz,1T算力NPU;支持OpenHarmony5.0及Linux、Android等操作系统,接口丰富,开发评估快人一步!添加新账号1、使用adduser命令来添加新用户,用户名以industio为例,系统会提示设置密码以及其他信息,您可以根据需要填写或跳过,命令如下:root@id
    Industio_触觉智能 2025-01-17 14:14 121浏览
  • 嘿,咱来聊聊RISC-V MCU技术哈。 这RISC-V MCU技术呢,简单来说就是基于一个叫RISC-V的指令集架构做出的微控制器技术。RISC-V这个啊,2010年的时候,是加州大学伯克利分校的研究团队弄出来的,目的就是想搞个新的、开放的指令集架构,能跟上现代计算的需要。到了2015年,专门成立了个RISC-V基金会,让这个架构更标准,也更好地推广开了。这几年啊,这个RISC-V的生态系统发展得可快了,好多公司和机构都加入了RISC-V International,还推出了不少RISC-V
    丙丁先生 2025-01-21 12:10 111浏览
  • 数字隔离芯片是一种实现电气隔离功能的集成电路,在工业自动化、汽车电子、光伏储能与电力通信等领域的电气系统中发挥着至关重要的作用。其不仅可令高、低压系统之间相互独立,提高低压系统的抗干扰能力,同时还可确保高、低压系统之间的安全交互,使系统稳定工作,并避免操作者遭受来自高压系统的电击伤害。典型数字隔离芯片的简化原理图值得一提的是,数字隔离芯片历经多年发展,其应用范围已十分广泛,凡涉及到在高、低压系统之间进行信号传输的场景中基本都需要应用到此种芯片。那么,电气工程师在进行电路设计时到底该如何评估选择一
    华普微HOPERF 2025-01-20 16:50 73浏览
  •  光伏及击穿,都可视之为 复合的逆过程,但是,复合、光伏与击穿,不单是进程的方向相反,偏置状态也不一样,复合的工况,是正偏,光伏是零偏,击穿与漂移则是反偏,光伏的能源是外来的,而击穿消耗的是结区自身和电源的能量,漂移的载流子是 客席载流子,须借外延层才能引入,客席载流子 不受反偏PN结的空乏区阻碍,能漂不能漂,只取决于反偏PN结是否处于外延层的「射程」范围,而穿通的成因,则是因耗尽层的过度扩张,致使跟 端子、外延层或其他空乏区 碰触,当耗尽层融通,耐压 (反向阻断能力) 即告彻底丧失,
    MrCU204 2025-01-17 11:30 182浏览
  • 日前,商务部等部门办公厅印发《手机、平板、智能手表(手环)购新补贴实施方案》明确,个人消费者购买手机、平板、智能手表(手环)3类数码产品(单件销售价格不超过6000元),可享受购新补贴。每人每类可补贴1件,每件补贴比例为减去生产、流通环节及移动运营商所有优惠后最终销售价格的15%,每件最高不超过500元。目前,京东已经做好了承接手机、平板等数码产品国补优惠的落地准备工作,未来随着各省市关于手机、平板等品类的国补开启,京东将第一时间率先上线,满足消费者的换新升级需求。为保障国补的真实有效发放,基于
    华尔街科技眼 2025-01-17 10:44 221浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦