|
| 1 | +# card_conf.tcl: Default parameters for Silicom ThunderFjord fb2cdg1 |
| 2 | +# Copyright (C) 2025 DynaNIC Semiconductors, Ltd. |
| 3 | +# Author(s): David Beneš <benes@dyna-nic.com> |
| 4 | +# |
| 5 | +# SPDX-License-Identifier: BSD-3-Clause |
| 6 | + |
| 7 | +# NOTE: For the detailed description of this file, visit the Parametrization section |
| 8 | +# in the documentation of the NDK-CORE repository. |
| 9 | +# |
| 10 | +# Mandatory project parameters |
| 11 | +set PROJECT_NAME "" |
| 12 | + |
| 13 | +# ------------------------------------------------------------------------------ |
| 14 | +# ETH parameters: |
| 15 | +# ------------------------------------------------------------------------------ |
| 16 | +# Number of Ethernet ports, must match number of items in list ETH_PORTS_SPEED ! |
| 17 | +set ETH_PORTS 2 |
| 18 | +# Speed for each one of the ETH_PORTS (allowed values: 400, 200, 100, 50, 40, 25, 10) |
| 19 | +# ETH_PORT_SPEED is an array where each index represents given ETH_PORT and |
| 20 | +# each index has associated a required port speed. |
| 21 | +# NOTE: at this moment, all ports must have same speed ! |
| 22 | +set ETH_PORT_SPEED(0) $env(ETH_PORT_SPEED) |
| 23 | +set ETH_PORT_SPEED(1) $env(ETH_PORT_SPEED) |
| 24 | +# Number of channels for each one of the ETH_PORTS (allowed values: 1, 2, 4, 8) |
| 25 | +# ETH_PORT_CHAN is an array where each index represents given ETH_PORT and |
| 26 | +# each index has associated a required number of channels this port has. |
| 27 | +# NOTE: at this moment, all ports must have same number of channels ! |
| 28 | +set ETH_PORT_CHAN(0) $env(ETH_PORT_CHAN) |
| 29 | +set ETH_PORT_CHAN(1) $env(ETH_PORT_CHAN) |
| 30 | +# Number of lanes for each one of the ETH_PORTS |
| 31 | +# Typical values: 4 (QSFP), 8 (QSFP-DD) |
| 32 | +set ETH_PORT_LANES(0) 8 |
| 33 | +set ETH_PORT_LANES(1) 8 |
| 34 | +# EHIP_PORT_TYPE is an array where each index represents given ETH_PORT and |
| 35 | +# each index has associated a required type of IP core, which this port has. |
| 36 | +# NOTE: at this moment, all ports must have same type of IP core ! |
| 37 | +set EHIP_PORT_TYPE(0) $env(EHIP_PORT_TYPE) |
| 38 | +set EHIP_PORT_TYPE(1) $env(EHIP_PORT_TYPE) |
| 39 | + |
| 40 | +# ------------------------------------------------------------------------------ |
| 41 | +# PCIe parameters (not all combinations work): |
| 42 | +# ------------------------------------------------------------------------------ |
| 43 | +# Supported combinations for this card: |
| 44 | +# 1x PCIe Gen4 x16 -- PCIE_GEN=4, PCIE_ENDPOINTS=1, PCIE_ENDPOINT_MODE=0 (Note: for DMA Calypte) |
| 45 | +# 1x PCIe Gen5 x8x8 -- PCIE_GEN=5, PCIE_ENDPOINTS=2, PCIE_ENDPOINT_MODE=1 (Note: for DMA Medusa only) |
| 46 | +# 1x PCIe Gen5 x16 -- PCIE_GEN=5, PCIE_ENDPOINTS=1, PCIE_ENDPOINT_MODE=0 (Note: for DMA Medusa only) |
| 47 | +# ------------------------------------------------------------------------------ |
| 48 | + |
| 49 | +# Set default PCIe configuration |
| 50 | +set PCIE_CONF "1xGen5x8x8" |
| 51 | +if { [info exist env(PCIE_CONF)] } { |
| 52 | + set PCIE_CONF $env(PCIE_CONF) |
| 53 | +} |
| 54 | + |
| 55 | +# Parsing PCIE_CONF string to list of parameters |
| 56 | +set pcie_conf_list [ParsePcieConf $PCIE_CONF] |
| 57 | + |
| 58 | +# PCIe Generation (possible values: 4, 5): |
| 59 | +# 4 = PCIe Gen4 (Stratix 10 with P-Tile or Agilex) |
| 60 | +# 5 = PCIe Gen5 (Agilex with R-Tile) |
| 61 | +set PCIE_GEN [lindex $pcie_conf_list 1] |
| 62 | +# PCIe endpoints (possible values: 2, 4): |
| 63 | +# 2 = 2x PCIe x16 in two slot OR 2x PCIe x8 in one slot (bifurcation x8+x8) |
| 64 | +# 4 = 4x PCIe x8 in two slots (bifurcation x8+x8) |
| 65 | +set PCIE_ENDPOINTS [lindex $pcie_conf_list 0] |
| 66 | +# PCIe endpoint mode (possible values: 1): |
| 67 | +# 1 = 2x8 lanes (bifurcation x8+x8) |
| 68 | +set PCIE_ENDPOINT_MODE [lindex $pcie_conf_list 2] |
| 69 | + |
| 70 | +# ------------------------------------------------------------------------------ |
| 71 | +# DMA parameters: |
| 72 | +# ------------------------------------------------------------------------------ |
| 73 | +# This variable can be set in COREs *.mk file or as a parameter when launching the make |
| 74 | +set DMA_TYPE $env(DMA_TYPE) |
| 75 | +# The minimum number of RX/TX DMA channels for this card is 32. |
| 76 | +set DMA_RX_CHANNELS 32 |
| 77 | +set DMA_TX_CHANNELS 32 |
| 78 | +# In blocking mode, packets are dropped only when the RX DMA channel is off. |
| 79 | +# In non-blocking mode, packets are dropped whenever they cannot be sent. |
| 80 | +set DMA_RX_BLOCKING_MODE true |
| 81 | + |
| 82 | +# ------------------------------------------------------------------------------ |
| 83 | +# DDR4 parameters: |
| 84 | +# ------------------------------------------------------------------------------ |
| 85 | +set MEM_PORTS 0 |
| 86 | + |
| 87 | +# ------------------------------------------------------------------------------ |
| 88 | +# Other parameters: |
| 89 | +# ------------------------------------------------------------------------------ |
| 90 | +set TSU_ENABLE true |
0 commit comments