From 11ab168d80afa0ac2fc78d9f3712c58501568e5b Mon Sep 17 00:00:00 2001 From: "Wong, Felix Siew An" Date: Fri, 10 Nov 2023 00:09:32 +0800 Subject: [PATCH] Enable NAND dc for 23.4 Signed-off-by: Wong, Felix Siew An --- sm_soc_devkit_ghrd/create_ghrd_qsys.tcl | 4 +- sm_soc_devkit_ghrd/hps_subsys/Makefile | 4 ++ .../hps_subsys/agilex_hps_pinmux_solver.tcl | 4 +- .../hps_subsys/construct_subsys_hps.tcl | 2 + sm_soc_devkit_ghrd/top_level_template.v.terp | 54 ++++++++++--------- 5 files changed, 40 insertions(+), 28 deletions(-) diff --git a/sm_soc_devkit_ghrd/create_ghrd_qsys.tcl b/sm_soc_devkit_ghrd/create_ghrd_qsys.tcl index cd3d79c..18b5c4a 100755 --- a/sm_soc_devkit_ghrd/create_ghrd_qsys.tcl +++ b/sm_soc_devkit_ghrd/create_ghrd_qsys.tcl @@ -239,8 +239,9 @@ if {$lwh2f_width > 0} { export clk_100 in_clk clk_100 export rst_in in_reset reset export user_rst_clkgate_0 ninit_done ninit_done -export subsys_hps usb31_io usb31_io export subsys_hps hps_io hps_io +if {$hps_usb0_en == 1 | $hps_usb1_en == 1} { +export subsys_hps usb31_io usb31_io export subsys_hps usb31_phy_pma_cpu_clk usb31_phy_pma_cpu_clk export subsys_hps usb31_phy_refclk_p usb31_phy_refclk_p export subsys_hps usb31_phy_refclk_n usb31_phy_refclk_n @@ -251,6 +252,7 @@ export subsys_hps usb31_phy_tx_serial_p usb31_phy_tx_serial_p export subsys_hps usb31_phy_reconfig_rst usb31_phy_reconfig_rst export subsys_hps usb31_phy_reconfig_clk usb31_phy_reconfig_clk export subsys_hps usb31_phy_reconfig_slave usb31_phy_reconfig_slave +} if {$hps_emif_en == 1} { export subsys_hps emif_hps_emif_mem_0 emif_hps_emif_mem_0 diff --git a/sm_soc_devkit_ghrd/hps_subsys/Makefile b/sm_soc_devkit_ghrd/hps_subsys/Makefile index 22f80a3..12ce7d8 100755 --- a/sm_soc_devkit_ghrd/hps_subsys/Makefile +++ b/sm_soc_devkit_ghrd/hps_subsys/Makefile @@ -20,6 +20,10 @@ # HPS_HBME_EN : # - 0: disable [default] # - 1: enable +# DAUGHTER_CARD: +# - devkit_dc_oobe: none[default] +# - devkit_dc_nand: none +# - devkit_dc_emmc: none ##demo: ## hps_other_var0 : ## - val00: val00_description [default] diff --git a/sm_soc_devkit_ghrd/hps_subsys/agilex_hps_pinmux_solver.tcl b/sm_soc_devkit_ghrd/hps_subsys/agilex_hps_pinmux_solver.tcl index b0fb081..dc95b17 100755 --- a/sm_soc_devkit_ghrd/hps_subsys/agilex_hps_pinmux_solver.tcl +++ b/sm_soc_devkit_ghrd/hps_subsys/agilex_hps_pinmux_solver.tcl @@ -401,14 +401,14 @@ set io48_q2_assignment [lreplace $io48_q2_assignment 0 3 NAND:ALE NAND:RB_N NAND set io48_q2_assignment [lreplace $io48_q2_assignment 0 11 NAND:ALE NAND:RB_N NAND:CE_N NAND:DQS NAND:DATA8 NAND:DATA9 NAND:DATA10 NAND:DATA11 NAND:DATA12 NAND:DATA13 NAND:DATA14 NAND:DATA15] } } elseif {$hps_nand_q34_en == 1} { -set io48_q3_assignment [lreplace $io48_q3_assignment 0 11 NAND:DATA0 NAND:DATA1 NAND:WE_N NAND:RE_N NAND:WP_N NAND:DATA2 NAND:DATA3 NAND:CLE NAND:DATA4 NAND:DATA5 NAND:DATA6 NAND:DATA7] +set io48_q3_assignment [lreplace $io48_q3_assignment 0 11 NAND:ADQ0 NAND:ADQ1 NAND:WE_N NAND:RE_N NAND:WP_N NAND:ADQ2 NAND:ADQ3 NAND:CLE NAND:ADQ4 NAND:ADQ5 NAND:ADQ6 NAND:ADQ7] set io48_q4_assignment [lreplace $io48_q4_assignment 0 3 NAND:ALE NAND:RB_N NAND:CE_N NAND:DQS] if {$hps_nand_16b_en == 1} { set io48_q4_assignment [lreplace $io48_q4_assignment 0 11 NAND:ALE NAND:RB_N NAND:CE_N NAND:DQS NAND:DATA8 NAND:DATA9 NAND:DATA10 NAND:DATA11 NAND:DATA12 NAND:DATA13 NAND:DATA14 NAND:DATA15] } } -if {$hps_trace_q12_en} { +if {$hps_trace_q12_en == 1} { set io48_q2_assignment [lreplace $io48_q2_assignment 7 11 TRACE:CLK TRACE:D0 TRACE:D1 TRACE:D2 TRACE:D3] if {$hps_trace_alt_en == 1} { if {$hps_trace_8b_en == 1} { diff --git a/sm_soc_devkit_ghrd/hps_subsys/construct_subsys_hps.tcl b/sm_soc_devkit_ghrd/hps_subsys/construct_subsys_hps.tcl index 4c61345..ce28e73 100755 --- a/sm_soc_devkit_ghrd/hps_subsys/construct_subsys_hps.tcl +++ b/sm_soc_devkit_ghrd/hps_subsys/construct_subsys_hps.tcl @@ -588,6 +588,7 @@ connect "clk_100.out_clk agilex_hps.f2h_free_clock" # -------------------- Exported Interfaces -----------------------# export agilex_hps h2f_reset h2f_reset +if {$hps_usb0_en == 1 | $hps_usb1_en == 1} { export agilex_hps usb31_io usb31_io export agilex_hps usb31_phy_pma_cpu_clk usb31_phy_pma_cpu_clk export agilex_hps usb31_phy_refclk_p usb31_phy_refclk_p @@ -599,6 +600,7 @@ export agilex_hps usb31_phy_tx_serial_p usb31_phy_tx_serial_p export agilex_hps usb31_phy_reconfig_rst usb31_phy_reconfig_rst export agilex_hps usb31_phy_reconfig_clk usb31_phy_reconfig_clk export agilex_hps usb31_phy_reconfig_slave usb31_phy_reconfig_slave +} if {$hps_emif_en == 1} { export sub_rst_in in_reset reset diff --git a/sm_soc_devkit_ghrd/top_level_template.v.terp b/sm_soc_devkit_ghrd/top_level_template.v.terp index 22d0669..0f5d693 100755 --- a/sm_soc_devkit_ghrd/top_level_template.v.terp +++ b/sm_soc_devkit_ghrd/top_level_template.v.terp @@ -289,9 +289,10 @@ inout wire hps_i2c_emac2_SCL, @@if {$hps_nand_q12_en == 1 || $hps_nand_q34_en == 1} { output wire hps_nand_ALE, output wire hps_nand_CE_N, +inout wire hps_nand_DQS, output wire hps_nand_CLE, output wire hps_nand_RE_N, -input wire hps_nand_RB, +input wire hps_nand_RB_N, output wire hps_nand_WP_N, output wire hps_nand_WE_N, inout wire hps_nand_ADQ0, @@ -537,7 +538,9 @@ ${qsys_name} soc_inst ( .hps_io_emac0_txd0 (hps_emac0_TXD0), .hps_io_emac0_txd1 (hps_emac0_TXD1), .hps_io_emac0_rxd0 (hps_emac0_RXD0), -.hps_io_emac0_rxd1 (hps_emac0_RXD1), +.hps_io_emac0_rxd1 (hps_emac0_RXD1), +.hps_io_emac0_pps (hps_emac0_PPS), +.hps_io_emac0_pps_trig (hps_emac0_PPS_TRIG), @@} @@if {$hps_emac0_rgmii_en == 1} { .hps_io_emac0_txd2 (hps_emac0_TXD2), @@ -606,21 +609,22 @@ ${qsys_name} soc_inst ( .hps_io_sdmmc_data7 (hps_sdmmc_D7), @@} @@if {$hps_nand_q12_en == 1 || $hps_nand_q34_en == 1} { -.hps_io_NAND_ALE (hps_nand_ALE), -.hps_io_NAND_CE_N (hps_nand_CE_N), -.hps_io_NAND_CLE (hps_nand_CLE), -.hps_io_NAND_RE_N (hps_nand_RE_N), -.hps_io_NAND_RB (hps_nand_RB), -.hps_io_NAND_WP_N (hps_nand_WP_N), -.hps_io_NAND_WE_N (hps_nand_WE_N), -.hps_io_NAND_ADQ0 (hps_nand_ADQ0), -.hps_io_NAND_ADQ1 (hps_nand_ADQ1), -.hps_io_NAND_ADQ2 (hps_nand_ADQ2), -.hps_io_NAND_ADQ3 (hps_nand_ADQ3), -.hps_io_NAND_ADQ4 (hps_nand_ADQ4), -.hps_io_NAND_ADQ5 (hps_nand_ADQ5), -.hps_io_NAND_ADQ6 (hps_nand_ADQ6), -.hps_io_NAND_ADQ7 (hps_nand_ADQ7), +.hps_io_nand_ale (hps_nand_ALE), +.hps_io_nand_ce_n (hps_nand_CE_N), +.hps_io_nand_dqs (hps_nand_DQS), +.hps_io_nand_cle (hps_nand_CLE), +.hps_io_nand_re_n (hps_nand_RE_N), +.hps_io_nand_rb_n (hps_nand_RB_N), +.hps_io_nand_wp_n (hps_nand_WP_N), +.hps_io_nand_we_n (hps_nand_WE_N), +.hps_io_nand_data0 (hps_nand_ADQ0), +.hps_io_nand_data1 (hps_nand_ADQ1), +.hps_io_nand_data2 (hps_nand_ADQ2), +.hps_io_nand_data3 (hps_nand_ADQ3), +.hps_io_nand_data4 (hps_nand_ADQ4), +.hps_io_nand_data5 (hps_nand_ADQ5), +.hps_io_nand_data6 (hps_nand_ADQ6), +.hps_io_nand_data7 (hps_nand_ADQ7), @@} @@if {$hps_nand_16b_en == 1} { .hps_io_NAND_ADQ8 (hps_nand_ADQ8), @@ -633,12 +637,12 @@ ${qsys_name} soc_inst ( .hps_io_NAND_ADQ15 (hps_nand_ADQ15), @@} @@if {$hps_i2c0_q1_en == 1 || $hps_i2c0_q2_en == 1 || $hps_i2c0_q3_en == 1} { -.hps_io_I2C0_SDA (hps_i2c0_SDA), -.hps_io_I2C0_SCL (hps_i2c0_SCL), +.hps_io_i2c0_sda (hps_i2c0_SDA), +.hps_io_i2c0_scl (hps_i2c0_SCL), @@} @@if {$hps_i2c1_q1_en == 1 || $hps_i2c1_q2_en == 1 || $hps_i2c1_q3_en == 1 || $hps_i2c1_q4_en == 1} { -.hps_io_I2C1_SDA (hps_i2c1_SDA), -.hps_io_I2C1_SCL (hps_i2c1_SCL), +.hps_io_i2c1_sda (hps_i2c1_SDA), +.hps_io_i2c1_scl (hps_i2c1_SCL), @@} @@if {$hps_i3c0_q1_en == 1 || $hps_i3c0_q2_en == 1 || $hps_i3c0_q3_en == 1 || $hps_i3c0_q4_en == 1} { .hps_io_i3c0_sda (hps_i3c0_SDA), @@ -701,10 +705,10 @@ ${qsys_name} soc_inst ( .hps_io_SPIS0_SS0_N (hps_spis0_SS0_N), @@} @@if {$hps_spis1_q1_en == 1 || $hps_spis1_q3_en == 1 || $hps_spis1_q4_en == 1} { -.hps_io_SPIS1_CLK (hps_spis1_CLK), -.hps_io_SPIS1_MOSI (hps_spis1_MOSI), -.hps_io_SPIS1_MISO (hps_spis1_MISO), -.hps_io_SPIS1_SS0_N (hps_spis1_SS0_N), +.hps_io_spis1_clk (hps_spis1_CLK), +.hps_io_spis1_mosi (hps_spis1_MOSI), +.hps_io_spis1_miso (hps_spis1_MISO), +.hps_io_spis1_ss0_n (hps_spis1_SS0_N), @@} @@if {$hps_usb0_en == 1} { .hps_io_USB0_CLK (hps_usb0_CLK),