From 18247787ba26a91c20cd79ebd1e3344ad373e64e Mon Sep 17 00:00:00 2001
From: vauban353 <vauban353@gmail.com>
Date: Mon, 21 Feb 2022 16:11:52 +0000
Subject: [PATCH] Ethernet: Connect to PHY

  - Connect Ethernet management interface to PHY.
  - Connect PHY reset input to FPGA system reset.
  - Connect PHY interrupt to MSS F2M fabric interrupt 2.
---
 script_support/PF_SoC_MSS_Icicle.cfg          |  4 +-
 .../components/B_V_F_BASE_DESIGN.tcl          | 28 +++++-----
 script_support/constraints/base_design.pdc    | 51 +++++--------------
 3 files changed, 31 insertions(+), 52 deletions(-)

diff --git a/script_support/PF_SoC_MSS_Icicle.cfg b/script_support/PF_SoC_MSS_Icicle.cfg
index 0d91f41..e1e3bd8 100644
--- a/script_support/PF_SoC_MSS_Icicle.cfg
+++ b/script_support/PF_SoC_MSS_Icicle.cfg
@@ -1089,9 +1089,9 @@ LPDDR4_ZQ_CAL_TIME                                  1
 LP_STATE                                            UNUSED
 M2F_MONITOR                                         UNUSED
 MAC_0                                               SGMII_IO_B5
-MAC_0_MANAGEMENT                                    UNUSED
+MAC_0_MANAGEMENT                                    MSSIO_B2_B
 MAC_0_OTHER                                         UNUSED
-MAC_0_TSU                                           INCREMENT_MODE
+MAC_0_TSU                                           UNUSED
 MAC_1                                               UNUSED
 MAC_1_MANAGEMENT                                    UNUSED
 MAC_1_OTHER                                         UNUSED
diff --git a/script_support/components/B_V_F_BASE_DESIGN.tcl b/script_support/components/B_V_F_BASE_DESIGN.tcl
index 3800c53..2fd831d 100644
--- a/script_support/components/B_V_F_BASE_DESIGN.tcl
+++ b/script_support/components/B_V_F_BASE_DESIGN.tcl
@@ -235,16 +235,6 @@ sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {B_V_F_MSS:MSS_INT_F2
 sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {B_V_F_MSS:SPI_0_SS_F2M} -value {GND}
 sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {B_V_F_MSS:SPI_0_CLK_F2M} -value {GND}
 sd_mark_pins_unused -sd_name ${sd_name} -pin_names {B_V_F_MSS:MSS_INT_M2F}
-sd_mark_pins_unused -sd_name ${sd_name} -pin_names {B_V_F_MSS:MAC_0_TSU_SOF_TX_M2F}
-sd_mark_pins_unused -sd_name ${sd_name} -pin_names {B_V_F_MSS:MAC_0_TSU_SYNC_FRAME_TX_M2F}
-sd_mark_pins_unused -sd_name ${sd_name} -pin_names {B_V_F_MSS:MAC_0_TSU_DELAY_REQ_TX_M2F}
-sd_mark_pins_unused -sd_name ${sd_name} -pin_names {B_V_F_MSS:MAC_0_TSU_PDELAY_REQ_TX_M2F}
-sd_mark_pins_unused -sd_name ${sd_name} -pin_names {B_V_F_MSS:MAC_0_TSU_PDELAY_RESP_TX_M2F}
-sd_mark_pins_unused -sd_name ${sd_name} -pin_names {B_V_F_MSS:MAC_0_TSU_SOF_RX_M2F}
-sd_mark_pins_unused -sd_name ${sd_name} -pin_names {B_V_F_MSS:MAC_0_TSU_SYNC_FRAME_RX_M2F}
-sd_mark_pins_unused -sd_name ${sd_name} -pin_names {B_V_F_MSS:MAC_0_TSU_DELAY_REQ_RX_M2F}
-sd_mark_pins_unused -sd_name ${sd_name} -pin_names {B_V_F_MSS:MAC_0_TSU_PDELAY_REQ_RX_M2F}
-sd_mark_pins_unused -sd_name ${sd_name} -pin_names {B_V_F_MSS:MAC_0_TSU_PDELAY_RESP_RX_M2F}
 sd_mark_pins_unused -sd_name ${sd_name} -pin_names {B_V_F_MSS:FIC_2_AXI4_TARGET}
 
 
@@ -379,10 +369,25 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"REF_CLK_PAD_P" "CLOCKS_AND_RESE
 sd_connect_pins -sd_name ${sd_name} -pin_names {"REFCLK" "B_V_F_MSS:REFCLK" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"REFCLK_N" "B_V_F_MSS:REFCLK_N" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"RESET_N" "B_V_F_MSS:RESET_N" }
+
+#-------------------------------------------------------------------------------
+# Ethernet PHY connections
+#-------------------------------------------------------------------------------
+sd_create_scalar_port -sd_name ${sd_name} -port_name {PHY_RSTn} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {PHY_INTn} -port_direction {IN}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {PHY_MDC} -port_direction {OUT}
+sd_create_scalar_port -sd_name ${sd_name} -port_name {PHY_MDIO} -port_direction {INOUT}
+
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PHY_MDIO" "B_V_F_MSS:MAC_0_MDIO" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PHY_MDC" "B_V_F_MSS:MAC_0_MDC" }
+sd_connect_pins -sd_name ${sd_name} -pin_names {"PHY_INTn" "B_V_F_MSS:MSS_INT_F2M[2:2]" }
+
 sd_connect_pins -sd_name ${sd_name} -pin_names {"SGMII_RX0_N" "B_V_F_MSS:SGMII_RX0_N" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"SGMII_RX0_P" "B_V_F_MSS:SGMII_RX0_P" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"SGMII_TX0_N" "B_V_F_MSS:SGMII_TX0_N" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"SGMII_TX0_P" "B_V_F_MSS:SGMII_TX0_P" }
+
+#-------------------------------------------------------------------------------
 sd_connect_pins -sd_name ${sd_name} -pin_names {"B_V_F_MSS:SPI_0_CLK_M2F" "SPI_0_CLK_M2F" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"B_V_F_MSS:SPI_0_DI_F2M" "SPI_0_DI_F2M" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"B_V_F_MSS:SPI_0_DO_M2F" "SPI_0_DO_M2F" }
@@ -399,7 +404,7 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"B_V_F_MSS:USB_DATA7" "USB_DATA7
 sd_connect_pins -sd_name ${sd_name} -pin_names {"B_V_F_MSS:USB_DIR" "USB_DIR" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"B_V_F_MSS:USB_NXT" "USB_NXT" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"B_V_F_MSS:USB_STP" "USB_STP" }
-sd_connect_pins -sd_name ${sd_name} -pin_names {"USB_ULPI_RESET" "FIC0_INITIATOR:ARESETN" "CLOCKS_AND_RESETS:RESETN_CLK_125MHz"}
+sd_connect_pins -sd_name ${sd_name} -pin_names {"USB_ULPI_RESET" "FIC0_INITIATOR:ARESETN" "CLOCKS_AND_RESETS:RESETN_CLK_125MHz" "PHY_RSTn"}
 sd_connect_pins -sd_name ${sd_name} -pin_names {"SD_CLK_EMMC_CLK" "B_V_F_MSS:SD_CLK_EMMC_CLK" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"SD_CMD_EMMC_CMD" "B_V_F_MSS:SD_CMD_EMMC_CMD" }
 sd_connect_pins -sd_name ${sd_name} -pin_names {"SD_DATA0_EMMC_DATA0" "B_V_F_MSS:SD_DATA0_EMMC_DATA0" }
@@ -659,7 +664,6 @@ sd_connect_pins -sd_name ${sd_name} -pin_names {"CAM_D3_N" "MIPI_CSI_INTERFACE_0
 #-------------------------------------------------------------------------------
 # Temporary connections to allow running through complete flow.
 #-------------------------------------------------------------------------------
-sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {B_V_F_MSS:MSS_INT_F2M[2:2]} -value {GND} 
 sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {B_V_F_MSS:MSS_INT_F2M[4:4]} -value {GND} 
 sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {B_V_F_MSS:MSS_INT_F2M[3:3]} -value {GND} 
 sd_connect_pins_to_constant -sd_name ${sd_name} -pin_names {B_V_F_MSS:MSS_RESET_N_F2M} -value {VCC}
diff --git a/script_support/constraints/base_design.pdc b/script_support/constraints/base_design.pdc
index 1da36e7..e08a0f5 100644
--- a/script_support/constraints/base_design.pdc
+++ b/script_support/constraints/base_design.pdc
@@ -2,43 +2,18 @@ set_iobank -bank_name Bank1  \
     -vcci 3.30               \
     -fixed true             \
     -update_iostd true
-    
-#set_io -port_name SW1 \
-#    -pin_name V19 \
-#    -fixed true \
-#    -DIRECTION INPUT
-    
-#set_io -port_name SW2 \
-#    -pin_name U18 \
-#    -fixed true \
-#    -DIRECTION INPUT
 
-#set_io -port_name SW3 \
-#    -pin_name W19 \
-#    -fixed true \
-#    -DIRECTION INPUT
-    
-#set_io -port_name SW4 \
-#    -pin_name W18 \
-#    -fixed true \
-#    -DIRECTION INPUT
 
-#set_io -port_name LED0 \
-#    -pin_name V14 \
-#    -fixed true \
-#    -DIRECTION OUTPUT
-    
-#set_io -port_name LED1 \
-#    -pin_name U13 \
-#    -fixed true \
-#    -DIRECTION OUTPUT
-    
-#set_io -port_name LED2 \
-#    -pin_name T12 \
-#    -fixed true \
-#    -DIRECTION OUTPUT
-    
-#set_io -port_name LED3 \
-#    -pin_name AB19 \
-#    -fixed true \
-#    -DIRECTION OUTPUT
+set_io -port_name PHY_RSTn	\
+    -pin_name B4	\
+    -fixed true	\
+    -io_std LVCMOS33  \
+    -DIRECTION INOUT
+
+
+set_io -port_name PHY_INTn	\
+    -pin_name C4	\
+    -fixed true	\
+    -io_std LVCMOS33  \
+    -DIRECTION INOUT
+
-- 
GitLab