Skip to content

Commit

Permalink
Fix hps pinmux and solver for SDMMC and I3C. OOBE DC compilation succeed
Browse files Browse the repository at this point in the history
Signed-off-by: Ong, Lean Kim <lean.kim.ong@intel.com>
  • Loading branch information
lekong-pg authored and FelixWongSiewAn committed Mar 28, 2024
1 parent 78bd8fe commit b53eb0b
Show file tree
Hide file tree
Showing 4 changed files with 129 additions and 21 deletions.
8 changes: 4 additions & 4 deletions sm_soc_devkit_ghrd/agilex_hps_pinmux_solver.tcl
Expand Up @@ -22,10 +22,10 @@ set hps_sdmmc4b_q3_alt_en 0
set hps_sdmmc12b_q3_alt_en 0
set hps_sdmmc_pupd_q2_en 0
set hps_sdmmc_pwr_q2_en 0
set hps_sdmmc_data_strobe_q2_en 0
set hps_sdmmc_dstrb_q2_en 0
set hps_sdmmc_pupd_q4_en 0
set hps_sdmmc_pwr_q4_en 0
set hps_sdmmc_data_strobe_q4_en 0
set hps_sdmmc_dstrb_q4_en 0

set hps_usb0_en 0
set hps_usb1_en 0
Expand Down Expand Up @@ -167,7 +167,7 @@ if {$hps_sdmmc_pupd_q2_en == 1} {
if {$hps_sdmmc_pwr_q2_en == 1} {
set io48_q2_assignment [lreplace $io48_q2_assignment 1 1 SDMMC:BUS_PWR]
}
if {$hps_sdmmc_data_strobe_q2_en == 1} {
if {$hps_sdmmc_dstrb_q2_en == 1} {
set io48_q2_assignment [lreplace $io48_q2_assignment 3 3 SDMMC:DATA_STROBE]
}

Expand All @@ -190,7 +190,7 @@ if {$hps_sdmmc_pupd_q4_en == 1} {
if {$hps_sdmmc_pwr_q4_en == 1} {
set io48_q4_assignment [lreplace $io48_q4_assignment 1 1 SDMMC:BUS_PWR
}
if {$hps_sdmmc_data_strobe_q4_en == 1} {
if {$hps_sdmmc_dstrb_q4_en == 1} {
set io48_q4_assignment [lreplace $io48_q4_assignment 3 3 SDMMC:DATA_STROBE
}

Expand Down
108 changes: 100 additions & 8 deletions sm_soc_devkit_ghrd/agilex_io48.tcl
Expand Up @@ -8,6 +8,101 @@
# This file host all the enabled HPS Daugther Card
#
#****************************************************************************
#
#
# Following are HPS IO quadrants feature for individual peripherals
# Variable naming convention: hps_<peripheral>_<quadrant>_en
# Set default of veriables disable

# -- the quadrant # of CM:HPS_OSC_CLK selected
# -- the IO # within a quadrant for CM:HPS_OSC_CLK
set hps_cm_q 0
set hps_cm_io 0
set hps_pll_clk0_en 0
set hps_pll_clk1_en 0
set hps_pll_clk2_en 0
set hps_pll_clk3_en 0
set hps_jtag_en 0
set hps_spim0_q1_en 0
set hps_spim0_q4_en 0
set hps_spim1_q1_en 0
set hps_spim1_q2_en 0
set hps_spim1_q3_en 0
set hps_spis0_q1_en 0
set hps_spis0_q2_en 0
set hps_spis0_q3_en 0
set hps_spis1_q1_en 0
set hps_spis1_q3_en 0
set hps_spis1_q4_en 0
set hps_uart0_q1_en 0
set hps_uart0_q2_en 0
set hps_uart0_q3_en 0
set hps_uart1_q1_en 0
set hps_uart1_q3_en 0
set hps_i2c0_q1_en 0
set hps_i2c0_q2_en 0
set hps_i2c0_q3_en 0
set hps_i2c1_q1_en 0
set hps_i2c1_q2_en 0
set hps_i2c1_q3_en 0
set hps_i2c1_q4_en 0
set hps_i2c_emac0_q1_en 0
set hps_i2c_emac0_q3_en 0
set hps_i2c_emac0_q4_en 0
set hps_i2c_emac1_q1_en 0
set hps_i2c_emac1_q4_en 0
set hps_i2c_emac2_q1_en 0
set hps_i2c_emac2_q3_en 0
set hps_i2c_emac2_q4_en 0
set hps_pps_emac0_q1_en 0
set hps_pps_emac0_q3_en 0
set hps_pps_emac1_q1_en 0
set hps_pps_emac2_q1_en 0
set hps_pps_emac2_q3_en 0
set hps_trig_emac0_q1_en 0
set hps_trig_emac0_q3_en 0
set hps_trig_emac1_q1_en 0
set hps_trig_emac2_q1_en 0
set hps_trig_emac2_q3_en 0
set hps_emac0_q2_en 0
set hps_emac1_q3_en 0
set hps_emac2_q4_en 0
set hps_mdio0_q1_en 0
set hps_mdio0_q3_en 0
set hps_mdio0_q4_en 0
set hps_mdio1_q1_en 0
set hps_mdio1_q4_en 0
set hps_mdio2_q3_en 0
set hps_i3c0_q1_en 0
set hps_i3c0_q2_en 0
set hps_i3c0_q3_en 0
set hps_i3c0_q4_en 0
set hps_i3c1_q1_en 0
set hps_i3c1_q2_en 0
set hps_i3c1_q3_en 0
set hps_i3c1_q4_en 0
set hps_nand_q12_en 0
set hps_nand_q34_en 0
set hps_sdmmc4b_q1_en 0
set hps_sdmmc8b_q1_en 0
set hps_sdmmc_wp_q1_en 0
set hps_sdmmc_pupd_q2_en 0
set hps_sdmmc_pwr_q2_en 0
set hps_sdmmc_dstrb_q2_en 0
set hps_sdmmc4b_q3_en 0
set hps_sdmmc8b_q3_en 0
set hps_sdmmc_wp_q3_en 0
set hps_sdmmc_pupd_q4_en 0
set hps_sdmmc_pwr_q4_en 0
set hps_sdmmc_dstrb_q4_en 0
set hps_usb0_en 0
set hps_usb1_en 0
set hps_trace_en 0
set hps_gpio0_en 0
set hps_gpio0_list ""
set hps_gpio1_en 0
set hps_gpio1_list ""


if {$daughter_card == "devkit_dc_oobe"} {
set hps_cm_q 1
Expand All @@ -18,14 +113,12 @@ set hps_uart0_q1_en 1
set hps_emac2_q1_en 1
set hps_mdio2_q1_en 1
#temporary turn off I3C for first compilation succeed
set hps_i3c1_q1_en 0
set hps_i3c1_q1_en 1
set hps_usb1_en 1
#temporary turn off sdmmc for first compilation succeed
set hps_sdmmc4b_q3_en 0
set hps_sdmmc4b_q3_en 1
set hps_gpio1_en 1
set hps_gpio1_list "3 4"
#temporary turn off sdmmc for first compilation succeed
set hps_sdmmc8b_q3_alt_en 0
set hps_jtag_en 1
set hps_emac2_rgmii_en 1

Expand Down Expand Up @@ -55,7 +148,6 @@ set hps_emac0_rgmii_en 1
set hps_sdmmc4b_q3_en 1
set hps_gpio1_en 1
set hps_gpio1_list "3 4"
set hps_sdmmc8b_q3_alt_en 1
set hps_jtag_en 1
set hps_sdmmc_pupd_q4_en 1
set hps_cm_q 4
Expand All @@ -73,9 +165,8 @@ set hps_cm_io 10
set hps_mdio0_q1_en 1
set hps_emac0_rgmii_en 1
set hps_sdmmc4b_q1_en 1
set hps_sdmmc4b_q1_sel_en 1
set hps_sdmmc4b_q1_alt_en 1
set hps_sdmmc8b_q1_alt_en 1
#set hps_sdmmc4b_q1_sel_en 1
#set hps_sdmmc4b_q1_alt_en 1
set hps_jtag_en 1
set hps_emac2_rgmii_en 1

Expand All @@ -93,6 +184,7 @@ set hps_emac2_rgmii_en 1
} elseif {$daughter_card == "none"} {
puts "Disable all HPS IO48 IO"
set hps_io_off 1

} else {
puts "Inserted daughter_card variant: $daughter_card NOT supported"
}
Expand Down
8 changes: 5 additions & 3 deletions sm_soc_devkit_ghrd/create_ghrd_top.tcl
Expand Up @@ -51,13 +51,15 @@ set param(board_rev) $board_rev
set param(cross_trigger_en) $cross_trigger_en
set param(hps_stm_en) $hps_stm_en
set param(hps_sdmmc4b_q1_en) $hps_sdmmc4b_q1_en
set param(hps_sdmmc8b_q1_alt_en) $hps_sdmmc8b_q1_alt_en
set param(hps_sdmmc8b_q1_en) $hps_sdmmc8b_q1_en
set param(hps_sdmmc_pupd_q2_en) $hps_sdmmc_pupd_q2_en
set param(hps_sdmmc_pwr_q2_en) $hps_sdmmc_pwr_q2_en
set param(hps_sdmmc_dstrb_q2_en) $hps_sdmmc_dstrb_q2_en
set param(hps_sdmmc4b_q3_en) $hps_sdmmc4b_q3_en
set param(hps_sdmmc8b_q3_alt_en) $hps_sdmmc8b_q3_alt_en
set param(hps_sdmmc8b_q3_en) $hps_sdmmc8b_q3_en
set param(hps_sdmmc_pupd_q4_en) $hps_sdmmc_pupd_q4_en
set param(hps_sdmmc_pwr_q4_en) $hps_sdmmc_pwr_q4_en
set param(hps_sdmmc_dstrb_q4_en) $hps_sdmmc_dstrb_q4_en
set param(hps_usb0_en) $hps_usb0_en
set param(hps_usb1_en) $hps_usb1_en
set param(hps_emac0_rmii_en) $hps_emac0_rmii_en
Expand All @@ -68,7 +70,7 @@ set param(hps_emac2_rmii_en) $hps_emac2_rmii_en
set param(hps_emac2_rgmii_en) $hps_emac2_rgmii_en
set param(hps_spim0_q1_en) $hps_spim0_q1_en
set param(hps_spim0_q4_en) $hps_spim0_q4_en
set param(hps_spim0_q4_alt_en) $hps_spim0_q4_alt_en
set param(hps_spim0_q4_en) $hps_spim0_q4_en
set param(hps_spim0_2ss_en) $hps_spim0_2ss_en
set param(hps_spim1_q1_en) $hps_spim1_q1_en
set param(hps_spim1_q2_en) $hps_spim1_q2_en
Expand Down
26 changes: 20 additions & 6 deletions sm_soc_devkit_ghrd/top_level_template.v.terp
Expand Up @@ -35,20 +35,34 @@ input wire hps_jtag_tms,
output wire hps_jtag_tdo,
input wire hps_jtag_tdi,
@@}
@@if {$hps_sdmmc4b_q1_en == 1 || $hps_sdmmc8b_q1_alt_en == 1 || $hps_sdmmc_pupd_q4_en == 1 || $hps_sdmmc_pwr_q4_en == 1} {
@@if {$hps_sdmmc4b_q3_en == 1 || $hps_sdmmc8b_q3_en == 1 || $hps_sdmmc4b_q1_en == 1 || $hps_sdmmc8b_q1_en == 1} {
@@# Assumption with only single SDMMC controller to be enabled onto HPS IO at one time
output wire hps_sdmmc_CCLK,
inout wire hps_sdmmc_CMD,
inout wire hps_sdmmc_D0,
inout wire hps_sdmmc_D1,
inout wire hps_sdmmc_D2,
inout wire hps_sdmmc_D3,
@@}
@@if {$hps_sdmmc8b_q1_alt_en == 1 || $hps_sdmmc_pwr_q4_en == 1} {
@@if {$hps_sdmmc8b_q3_en == 1 || $hps_sdmmc8b_q1_en == 1} {
inout wire hps_sdmmc_D4,
inout wire hps_sdmmc_D5,
inout wire hps_sdmmc_D6,
inout wire hps_sdmmc_D7,
@@}
@@if {$hps_sdmmc_pwr_q4_en == 1 || $hps_sdmmc_pwr_q2_en == 1} {
//Temporary no plan for power detect on devkit
@@}
@@if {$hps_sdmmc_pupd_q4_en == 1 || $hps_sdmmc_pupd_q2_en == 1} {
//Temporary no plan for PUPD on devkit
@@}
@@if {$hps_sdmmc_dstrb_q4_en == 1 || $hps_sdmmc_dstrb_q2_en == 1} {
//Temporary no plan for data strobe on devkit
@@}




@@if {$hps_usb0_en == 1} {
inout wire hps_usb0_DATA0,
inout wire hps_usb0_DATA1,
Expand Down Expand Up @@ -487,15 +501,15 @@ ${qsys_name} soc_inst (
.hps_io_mdio2_mdio (hps_emac2_MDIO),
.hps_io_mdio2_mdc (hps_emac2_MDC),
@@}
@@if {$hps_sdmmc4b_q1_en == 1 || $hps_sdmmc4b_q3_en == 1} {
@@if {$hps_sdmmc4b_q1_en == 1 || $hps_sdmmc4b_q3_en == 1 || $hps_sdmmc8b_q1_en == 1 || $hps_sdmmc8b_q3_en == 1} {
.hps_io_sdmmc_cclk (hps_sdmmc_CCLK),
.hps_io_sdmmc_cmd (hps_sdmmc_CMD),
.hps_io_sdmmc_data0 (hps_sdmmc_D0),
.hps_io_sdmmc_data1 (hps_sdmmc_D1),
.hps_io_sdmmc_data2 (hps_sdmmc_D2),
.hps_io_sdmmc_data3 (hps_sdmmc_D3),
@@}
@@if {$hps_sdmmc8b_q1_alt_en == 1} {
@@if {$hps_sdmmc8b_q1_en == 1 || $hps_sdmmc8b_q3_en == 1} {
.hps_io_sdmmc_data4 (hps_sdmmc_D4),
.hps_io_sdmmc_data5 (hps_sdmmc_D5),
.hps_io_sdmmc_data6 (hps_sdmmc_D6),
Expand Down Expand Up @@ -541,8 +555,8 @@ ${qsys_name} soc_inst (
.hps_io_i3c0_scl (hps_i3c0_SCL),
@@}
@@if {$hps_i3c1_q1_en == 1 || $hps_i3c1_q2_en == 1 || $hps_i3c1_q3_en == 1 || $hps_i3c1_q4_en == 1} {
.hps_io_i3c1_sda (hps_i3c0_SDA),
.hps_io_i3c1_scl (hps_i3c0_SCL),
.hps_io_i3c1_sda (hps_i3c1_SDA),
.hps_io_i3c1_scl (hps_i3c1_SCL),
@@}
@@if {$hps_i2c_emac0_q1_en == 1 || $hps_i2c_emac0_q3_en == 1 || $hps_i2c_emac0_q4_en == 1} {
.hps_io_I2CEMAC0_SDA (hps_i2c_emac0_SDA),
Expand Down

0 comments on commit b53eb0b

Please sign in to comment.