Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 14 Next »

Introduction

This page provides details related to the standalone emacps driver.
This driver supports GEM on Zynq and Zynq Ultrascale+ MPSoC

How to enable

emacps driver can be found at
https://github.com/Xilinx/embeddedsw/tree/master/XilinxProcessorIPLib/drivers/emacps
The driver structure is as follows:
emacps
|
- doc - Provides the API and data structure details
|
- examples - Reference application to show how to use the driver.
|
- src - Driver source files

Features supported

Controller/Driver features supported

  • 10/100/1000 speeds, phy/external loop back (supported in emacps
  • PHY management
  • DMA, Packet buffer support, Checksum offload, FCS stripping, programmable IPG, multicasting, promiscuous and broadcast modes.
  • Flow control and half duplex features are supported by controller but not demonstrated in the examples.
  • ZynqMP only: 64 bit descriptor support, Priority queue support, Jumbo frame support, CCI support

PHY configurations

emacps driver supports the following PHY configurations:

FamilyPHYSupport
ZynqRGMIIYes - supported in HW and driver
ZynqMPRGMIIYes - supported in HW and driver
ZynqMPSGMIIYes - supported in HW and driver

Features not supported

  • External FIFO interface - this driver only targets DMA
  • Partial store and forward not supported

Interop

  • PHY device Marvell 88E1116 has been tested on Zynq evaluation board
  • PHY devices Marvell 88E1512, TI DP83867 (RGMII and SGMII), VSC8211 and RTL8211 have been tested on ZynqMP.

Performance

Standalone ethernet performance is benchmarked with the use of light weight IP library and application. Please refer to
http://www.wiki.xilinx.com/Standalone+LWIP+library#Performance

Test cases

Emacps example

Emacps basic DMA loopbakc example can be tested by selecting xemacps_intr_dma.c, xemacps_example_util.c and xemacps_example.h from the driver.
Refer to https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPLib/drivers/emacps/examples/xemacps_example_readme.txt for more information.
Run fsbl and then the application elf.
Expected output is

Entering into main()
Success in examples

Known Issues/Limitations

None

Change log

2020.2

Summary:

  • Removed deprecated Zynq IEEE1588 example.
  • Updated parallel makefile execution

Commits:

https://github.com/Xilinx/embeddedsw/commits/xilinx-v2020.2/XilinxProcessorIPLib/drivers/emacps

2020.1

Summary:

  • Baremetal clocking support.

Commits:

https://github.com/Xilinx/embeddedsw/commits/xilinx-v2020.1/XilinxProcessorIPLib/drivers/emacps


2019.2

Summary:

  • Minor enhancements. Bug fix in clearing status register.

Commits:

https://github.com/Xilinx/embeddedsw/commits/xilinx-v2019.2/XilinxProcessorIPLib/drivers/emacps

bc126d5 emapcs: Clear status registers properly in reset
761c9af Fixed trivial typos reported by codespell utility
e5bfe9c emacps: Remove peripheral test app support
4ac1709 emacps: Move common variable definition to _util example file


2019.1

Summary:

  • Minor enhancements
  • Bugfixes

Commits:

https://github.com/Xilinx/embeddedsw/commits/xilinx-v2019.1/XilinxProcessorIPLib/drivers/emacps

6a7d6b2 emacps: Add provision to set RX watermark register
d4f92e6 emacps: Use selected speed in loopback mode
625c97b emacps: Fix BD space handling in examples
de0a89f emacps: Fix pointer cast warnings in examples
53a68ac emacps: Add support for psv_ethernet IP name
f626344 emacps: Fix data alignment for IAR compiler in example
7477196 emacps: Update example to use PSV_ suffix 


2018.3

Summary:

  • Cleanup and fixes for GCC and coverity warnings
  • Support for 64 bit addressing on Microblaze

Commits:

07c73dd emacps: Fix GCC warnings and add an additional canonical property
40d00e8 emacps: Fix coverity warnings
6ea92b1 emacps: Fix unused variable warning in example
05be3ac emacps: Remove duplicate definition of XEmacPs_BdSetLength
5b51039 emacps: Fix PTP interrupt masks and cleanup stale comments
848ceb0 emacps: Fix warning for redefining interrupt number
b87f96d drivers: Support 64 bit DMA addresses for Microblaze-X


2018.2

No changes


2018.1

6f4d0c9 emacps: Export TSU clock frequency to xparameters.h

2017.4

baf6acc emacps: Export PL PCS PMA information for ETH1/2/3

2017.3

cee2171 emacps: Export CCI enablement information
e0f9615 emacps: Update examples for CCI

2017.2

No changes

2017.1

56fc262 emacps: Modify tcl to detect Xilinx PCS PMA without PHY address - This patch adds support for use of PL PCS/PMA with ZynqMP GEM and also supports latest PL PCS/PMA IP.
2449879 emacps: Fixed compilation warnings
5322e65 emacps : Modified xil_printf statement in examples

2016.4

No changes


2016.3

commit: Fix the IEEE1588 example for Zynq
commit: Use sleep routine where delay is needed to avoid issues with optimization

Related Links

Baremetal Drivers and Libraries

Standalone LWIP library



  • No labels