Zynq Emacps Linux Driver
来源:互联网 发布:wow7.0优化 编辑:程序博客网 时间:2024/05/29 12:56
阅读全文
0 1
- Zynq Emacps Linux Driver
- Linux Zynq GPIO中断
- zynq linux 使用记录
- Build Zynq linux kernal time
- zynq linux 开发环境搭建
- Linux driver
- linux driver
- Linux Driver
- linux driver
- linux kernel, driver, network driver
- Xilinx Zynq Linux内核源码编译
- linux zynq opencv 2.4.9 交叉编译
- zynq-7000的linux QSPI flash启动
- Zynq-Linux移植学习笔记之一-入门
- 从零开始zynq linux AXI DMA传输
- Xilinx zynq 7000 Linux系统启动流程
- zynq linux 设置静态ip地址
- zynq平台实现linux gpio驱动
- [YTU]_2624( B 结构体--统计投票)
- Neither BindingResult nor plain target object for bean name 'sqmy' available as request attribute
- LeetCode Algorithms 233. Number of Digit One 题解
- eclipse安装maven时,pom.xml提示报错
- bzoj 2434: [Noi2011]阿狸的打字机 AC自动机+树状数组
- Zynq Emacps Linux Driver
- kivy textinput弹出输入框处理
- 设计模式学习:工厂模式
- springboot的三种启动方式
- 使用SfntTool制作字体剪辑工具1
- ssM框架简单配置文件
- 蓝桥杯 BASIC-26 基础练习 报时助手
- 机器学习算法实现解析——libFM之libFM的训练过程之SGD的方法
- B-1007
NOTE: This driver is now deprecated. Please refer to macb driver.
Introduction
Table of Contents
Kernel Configuration Options
The following config options should be enabled in order to build the emacps driver
CONFIG_ETHERNET
CONFIG_NET_VENDOR_XILINX
CONFIG_XILINX_PS_EMAC
For enabling the IEEE1588 timestamp support in driver
CONFIG_XILINX_PS_EMAC_HWTSTAMP=y
Kernel configuration options needed for PTP support
CONFIG_PPS - Required
CONFIG_NETWORK_PHY_TIMESTAMPING - Time stamping in PHY devices
PTP_1588_CLOCK - PTP clock support
Device tree node details
For more details on phy bindings please refer "Documentation/devicetree/bindings/net/phy.txt"
Features supported
Known Issues and Limitations
IEEE1588 time stamping:
Since the hardware frequency adjustment is complex,using software method to do that. In this mode, PTP packets are still time stamped by the NIC, but the clock which is controlled by PTPd is the system time. For this to work, the time stamps generated inside the NIC are transformed into system time before feeding them into the normal PTPd machinery: each time a NIC time stamp is extracted from the NIC, the NIC system time offset is measured and added to the NIC time stamp to obtain the corresponding system time stamp.This implementation is tested using With back to back Zynq boards - PTP clock configured to freq 111 Mhz and 125 Mhz for both the boards and one with 111Mhz and the other one with 125Mhz Between Zynq and Linux host machine.
Test results show that, without traffic, the jitter ranging from +- 100ns in best case and +- 1000 to 1200ns in worst case.
Currently the driver calculates the ns_delta/addendum using the formula NS_PER_SEC/rate and update to the XEMACPS_1588_INC register. if the above formula results in fractional values, those values may not fit in to the given register fields. So, it is recommended to use frequencies which will not result in fractional values. like 100 MHz, 111 MHz, 125 Mhz, 166 Mhz.
Here NS_PER_SEC = 1000000000, rate is the ptp clock frequency.
Also the following tech tip details more setup details and PTP protocol information
IEEE1588 Tech Tip
Single MAC managing two PHYs:
The current driver has no support for this use case.No interrupt support for PHY events in driver
The current implementation rely on polling method for phy eventsTesting Tools
Diagnostic and Protocol Tests
PINGThis utility used to test the reachability of a host on an Internet Protocol(IP) network and to measure the round trip time for messages sent from the originating host to a destination computer
How to Run
ping <Remote IP Address>
WebServer
<TBD>
Telnet
telnet <Server IP Address>
FTP & TFTP
<TBD>
Pkt Generator
Please refer the below link for how to run and various options
https://www.kernel.org/doc/Documentation/networking/pktgen.txt
Stress Test
Iperf with option -dRun iperf in dual testing mode. This will cause the server to connect back to the client on the port specified in the -L option (or defaults to the port the client connected to the server on). This is done immediately therefore running the tests simultaneously.
./iperf_arm -c <Server IP> -d
Ping flood test
Users can send hundred or more packets per second using -f option. It prints a ‘.’ when a packet is sent, and a backspace is printed when a packet is received
Performance Tests
NetperfMore information please refer the below link
http://www.netperf.org/netperf/
How to Run
Server:
netserver
Client:
taskset 2 ./netperf -H <Server IP> -t TCP_STREAM
taskset 2 ./netperf -H <Server IP> -t UDP_STREAM
Iperf
More information please refer the below link
http://en.wikipedia.org/wiki/Iperf
How to Run
Server:
./iperf_arm -s -u
./iperf_arm -s
Client:
./iperf_arm -c <Server IP> -u -b <banwidth>
./iperf_arm -c <Server IP>
IEEE1588
Build Instructions PTPd
Build Instructions for PTPd
- Get the source from git clone git://git.code.sf.net/p/linuxptp/code linuxptp
- Set the CROSS_COMPILE environment variable arm tool chain
- Install the kernel headers
- Include the headers path in makefile
INC = -I<PATH>/includeCFLAGS = -Wall $(VER) $(incdefs) $(DEBUG) $(INC) $(EXTRA_CFLAGS)
- run make
- Installing kernel headers: https://www.kernel.org/doc/Documentation/make/headers_install.txt
How to Run:Master:
./ptp4l -i eth0 -m -P &
Slave:
./ptp4l -i eth0 -s -m -P &
Build Instructions for TestPtp utility
Work tobe done