Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,793 changes: 1,793 additions & 0 deletions docs/projects/adrv9009zu11eg/adrv9009_zu11eg_hdl_corundum.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1,965 changes: 735 additions & 1,230 deletions docs/projects/adrv9009zu11eg/adrv9009_zu11eg_jesd204b.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
73 changes: 72 additions & 1 deletion docs/projects/adrv9009zu11eg/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,17 @@ Block design
:align: center
:alt: ADRV9009ZU11EG block diagram

Block design - Corundum Network Interface Card integrated
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This is available only if the project was build using the command
``make CORUNDUM=1``.

.. image:: adrv9009_zu11eg_hdl_corundum.svg
:width: 800
:align: center
:alt: ADRV9009ZU11EG block diagram Corundum N.I.C

Block diagram
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Expand Down Expand Up @@ -168,9 +179,18 @@ axi_adrv9009_obs_jesd 0x84A7_0000
axi_adrv9009_rx_dma 0x9C42_0000
axi_adrv9009_tx_dma 0x9C40_0000
axi_adrv9009_obs_dma 0x9C44_0000
axi_sysid_0 0x8500_0000
axi_sysid_0 0x8500_0000
===================== ===========

In case of :adi:`ADRV2CRR-FMC`, additional interconnects may be present in
the system.

============================================ ===========
Instance Address
============================================ ===========
corundum_hierarchy/corundum_core/s_axil_ctrl 0xA000_0000
============================================ ===========
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing axi_iic address mapping.


SPI connections
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Expand Down Expand Up @@ -331,6 +351,14 @@ axi_adrv9009_fmc_tx_jesd 12 108 140
axi_adrv9009_fmc_rx_jesd 13 109 141
========================== === ============ =============

In case of :adi:`ADRV2CRR-FMC`, additional interrupts may be present in the system.

======================= === ============ =============
Instance name HDL Linux ZynqMP Actual ZynqMP
======================= === ============ =============
corundum_hierarcy/irq 4 93 125
======================= === ============ =============
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing axi_iic interrupt mapping.


Building the HDL project
-------------------------------------------------------------------------------

Expand Down Expand Up @@ -385,8 +413,44 @@ configure this project, depending on the carrier used.
| RX_OS_JESD_S | 1 | 1 |
+-------------------+----------------------------------+-------------------+

Build the project with Corundum Network Stack support for ADRV9009-ZU11EG/ADRV2CRR-FMC
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

For this configuration of the project only, the Corundum Network Stack can be
added. This configuration supports **10 Gbps** on the **QSFP+** connector.

`Corundum NIC <https://github.com/ucsdsysnet/corundum>`_ repository needs to
be cloned alongside HDL repository. Do a git checkout to the latest tested
version (commit - 37f2607). When the 10G-based implementation (e.g., in
this project) is used, apply the indicated patch. Then navigate back to the
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please specify the wiki page where the indicated patch application process is described.

location of the project, and build the project using the enviromental variable
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo: environment variable.

**CORUNDUM**, by setting it to 1 (default it's 0).

**Linux/Cygwin/WSL**

.. shell::

$git clone https://github.com/ucsdsysnet/corundum.git
$cd corundum
$git checkout 37f2607
$git apply ../hdl/library/corundum/patch_axis_xgmii_rx_64.patch
$cd ../hdl/projects/adrv9009_zu11eg/adrv2crr_fmc
$make CORUNDUM=1

A more comprehensive build guide can be found in the :ref:`build_hdl` user guide.

.. admonition:: Publications

The following papers pertain to the Corundum source code:

- J- A. Forencich, A. C. Snoeren, G. Porter, G. Papen, Corundum: An Open-Source 100-Gbps NIC, in FCCM'20.
(`FCCM Paper`_, `FCCM Presentation`_)
- J- A. Forencich, System-Level Considerations for Optical Switching in Data Center Networks. (`Thesis`_)

.. _FCCM Paper: https://www.cse.ucsd.edu/~snoeren/papers/corundum-fccm20.pdf
.. _FCCM Presentation: https://www.fccm.org/past/2020/forums/topic/corundum-an-open-source-100-gbps-nic/
.. _Thesis: https://escholarship.org/uc/item/3mc9070t

Other considerations
-------------------------------------------------------------------------------

Expand Down Expand Up @@ -514,6 +578,12 @@ HDL related
* - JESD204_TPL_DAC
- :git-hdl:`library/jesd204/ad_ip_jesd204_tpl_dac`
- :ref:`ad_ip_jesd204_tpl_dac`
* - CORUNDUM_CORE
- :git-hdl:`library/corundum/corundum_core`
- :ref:`corundum_core`
* - ETHERNET_CORE
- :git-hdl:`library/corundum/ethernet`
- :ref:`corundum_ethernet_core`

- :dokuwiki:`[Wiki] Generic JESD204B block designs <resources/fpga/docs/hdl/generic_jesd_bds>`
- :ref:`jesd204`
Expand All @@ -526,6 +596,7 @@ Software related
- :git-linux:`ADRV9009ZU11EG device tree <arch/arm64/boot/dts/xilinx/zynqmp-adrv9009-zu11eg-revb-adrv2crr-fmc-revb-jesd204-fsm.dts>`
- :git-linux:`ADRV9009ZU11EG + FMCOMMS8 device tree <arch/arm64/boot/dts/xilinx/zynqmp-adrv9009-zu11eg-revb-adrv2crr-fmc-revb-sync-fmcomms8-jesd204-fsm.dts>`
- :git-linux:`ADRV9009ZU11EG + FMCXMWBR1 device tree <arch/arm64/boot/dts/xilinx/zynqmp-adrv9009-zu11eg-revb-adrv2crr-fmc-revb-jesd204-fsm-xmicrowave.dts>`
- :git-linux:`ADRV9009ZU11EG + ADRV2CRR-FMC CORUNDUM device tree <arch/arm64/boot/dts/xilinx/zynqmp-adrv9009-zu11eg-revb-adrv2crr-fmc-revb-jesd204-fsm-100-qsfp.dts>`
- :git-no-os:`ADRV9009ZU11EG NO-OS PROJECT <projects/adrv9009>`

.. include:: ../common/more_information.rst
Expand Down
55 changes: 55 additions & 0 deletions library/corundum/ethernet/adrv9009zu11eg/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
LIBRARY_NAME := ethernet_adrv9009zu11eg

GENERIC_DEPS += ethernet_adrv9009zu11eg.v

XILINX_DEPS += ethernet_adrv9009zu11eg_ip.tcl

EXTERNAL_DEPS += ../../../../../corundum/fpga/mqnic/KR260/fpga/rtl/sync_signal.v
EXTERNAL_DEPS += ../../../../../corundum/fpga/common/rtl/eth_xcvr_phy_10g_gty_quad_wrapper.v
EXTERNAL_DEPS += ../../../../../corundum/fpga/common/rtl/eth_xcvr_phy_10g_gty_wrapper.v
EXTERNAL_DEPS += ../../../../../corundum/fpga/lib/eth/rtl/eth_phy_10g.v
EXTERNAL_DEPS += ../../../../../corundum/fpga/lib/eth/rtl/eth_phy_10g_tx_if.v
EXTERNAL_DEPS += ../../../../../corundum/fpga/lib/eth/rtl/eth_phy_10g_tx.v
EXTERNAL_DEPS += ../../../../../corundum/fpga/lib/eth/rtl/eth_phy_10g_rx.v
EXTERNAL_DEPS += ../../../../../corundum/fpga/lib/eth/rtl/eth_phy_10g_rx_frame_sync.v
EXTERNAL_DEPS += ../../../../../corundum/fpga/lib/eth/rtl/eth_phy_10g_rx_if.v
EXTERNAL_DEPS += ../../../../../corundum/fpga/lib/eth/rtl/eth_phy_10g_rx_ber_mon.v
EXTERNAL_DEPS += ../../../../../corundum/fpga/lib/eth/rtl/eth_phy_10g_rx_watchdog.v
EXTERNAL_DEPS += ../../../../../corundum/fpga/lib/eth/rtl/xgmii_baser_dec_64.v
EXTERNAL_DEPS += ../../../../../corundum/fpga/lib/eth/rtl/xgmii_baser_enc_64.v
EXTERNAL_DEPS += ../../../../../corundum/fpga/lib/eth/rtl/axis_xgmii_rx_32.v
EXTERNAL_DEPS += ../../../../../corundum/fpga/lib/eth/rtl/axis_xgmii_tx_32.v
EXTERNAL_DEPS += ../../../../../corundum/fpga/common/rtl/mqnic_port_map_phy_xgmii.v
EXTERNAL_DEPS += ../../../../../corundum/fpga/lib/eth/lib/axis/rtl/sync_reset.v
EXTERNAL_DEPS += ../../../../../corundum/fpga/common/rtl/rb_drp.v
EXTERNAL_DEPS += ../../../../../corundum/fpga/lib/eth/rtl/eth_mac_10g.v
EXTERNAL_DEPS += ../../../../../corundum/fpga/lib/eth/rtl/axis_xgmii_rx_64.v
EXTERNAL_DEPS += ../../../../../corundum/fpga/lib/eth/rtl/axis_xgmii_tx_64.v
EXTERNAL_DEPS += ../../../../../corundum/fpga/lib/eth/rtl/lfsr.v
EXTERNAL_DEPS += ../../../../../corundum/fpga/lib/eth/rtl/mac_ctrl_rx.v
EXTERNAL_DEPS += ../../../../../corundum/fpga/lib/eth/rtl/mac_ctrl_tx.v
EXTERNAL_DEPS += ../../../../../corundum/fpga/lib/eth/rtl/mac_pause_ctrl_rx.v
EXTERNAL_DEPS += ../../../../../corundum/fpga/lib/eth/rtl/mac_pause_ctrl_tx.v

EXTERNAL_DEPS += ../../../../../corundum/fpga/mqnic/ZCU102/fpga/ip/eth_xcvr_gth.tcl

XILINX_DEPS += ../../interfaces/if_ctrl_reg.xml
XILINX_DEPS += ../../interfaces/if_ctrl_reg_rtl.xml
XILINX_DEPS += ../../interfaces/if_ptp.xml
XILINX_DEPS += ../../interfaces/if_ptp_rtl.xml
XILINX_DEPS += ../../interfaces/if_flow_control_tx.xml
XILINX_DEPS += ../../interfaces/if_flow_control_tx_rtl.xml
XILINX_DEPS += ../../interfaces/if_flow_control_rx.xml
XILINX_DEPS += ../../interfaces/if_flow_control_rx_rtl.xml
XILINX_DEPS += ../../interfaces/if_ethernet_ptp.xml
XILINX_DEPS += ../../interfaces/if_ethernet_ptp_rtl.xml
XILINX_DEPS += ../../interfaces/if_axis_tx_ptp.xml
XILINX_DEPS += ../../interfaces/if_axis_tx_ptp_rtl.xml
XILINX_DEPS += ../../interfaces/if_qsfp.xml
XILINX_DEPS += ../../interfaces/if_qsfp_rtl.xml
XILINX_DEPS += ../../interfaces/if_i2c.xml
XILINX_DEPS += ../../interfaces/if_i2c_rtl.xml

XILINX_INTERFACE_DEPS += corundum/interfaces

include ../../../scripts/library.mk
Loading
Loading