Table of Contents

Introduction

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

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

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
VersalRGMIIYes - supported in HW and driver

Features not supported

Interop

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

2021.2

https://github.com/Xilinx/embeddedsw/blob/xlnx_rel_v2021.2/doc/ChangeLog#L62

2020.2

Summary:

Commits:

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

2020.1

Summary:

Commits:

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


2019.2

Summary:

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:

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:

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