Skip to content

Commit cb0d0c0

Browse files
Update to QPDS 25.1 tools release
This is a significant update to all hardware and software objects within this repo as they are all updated to build under the QPDS 2.1 tools environment. Some of the more notable changes are listed below: The following IP cores are updated in the 25.1 tools: altera_avalon_sysid_qsys 19.1.8 altera_i2cslave_to_avlmm_bridge 19.1.6 altera_msgdma 19.2.5 altera_s10_configuration_clock 19.1.6 emif_io96b_hps 3.0.0 intel_agilex_5_soc 7.0.0 intel_lw_uart lw_uart 1.0.8 intel_niosv_c 4.0.0 intel_onchip_memory 1.4.10 The 25.1 tools introduce a new Quartus project setting that we need to enable the HPS to acquire ownership of the SDM QSPI flash device: set_global_assignment -name QSPI_OWNERSHIP HPS The Linux kernel build needs to add the following flag to the make invocation: DTC_FLAGS=-@ The Agilex 5 devicetree in the Linux kernel source tree moves the FPGA region node: FROM: target-path = /soc@0/base_fpga_region; TO: target-path = /fpga-region; Some additional devicetree syntax needed to be modified for proper operation as well. The placement of these properties needed to be relocated: /delete-node/ voltage; /delete-node/ temperature; In 25.1 the H2F bridge hardware design has an HPS IO hash mismatch with respect to all of the other designs. By placing an AXI4 bridge in front of the H2F bridge and connecting all of the subordinates to the AXI4 bridge, the HPS IO hash seems to consistently match the hash of the rest of the designs. u-boot-socfpga, arm-trusted-firmware and linux-socfpga are updated to the latest tag, QPDS25.1_REL_GSRD_PR toybox remains at the latest tag, 0.8.12 In the 6.12-lts kernel, the iommu kernel driver framework does not allow peripherals to bypass translation as easily as previous kernel releases. There are a number of ways to work around this, we chose to add devicetree properties to define iommu-addresses for our reserved memory buffer so that the kernel will provide a 1:1 physical to logical mapping for the buffer span. This approach is a little messy as overlays are added and removed, but it seems to work reliably and consistently. The devicetree overlays for the f2h_bridge and emac examples are updated with this property. The 6.12-lts kernel introduces a new kernel config for the Designware I2C driver, CONFIG_I2C_DESIGNWARE_CORE, which has been added to our kernel config. Signed-off-by: Rod Frazer <rod.frazer@altera.com>
1 parent 29fb0d9 commit cb0d0c0

File tree

99 files changed

+1138
-585
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

99 files changed

+1138
-585
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
- **title**: agilex5-demo-hps2fpga-interfaces
88
- **source**: GitHub
99
- **family**: Agilex 5
10-
- **quartus_version**: Version 24.3.1 Build 102 01/14/2025 Patches 1.14 SC Pro Edition
10+
- **quartus_version**: Version 25.1.0 Build 129 03/26/2025 SC Pro Edition
1111
- **devkit**: Agilex 5 FPGA E-Series 065B Premium Development Kit, and others
1212
- **device_part**: A5ED065BB32AE5SR0, A5ED065BB32AE4SR0, A5ED065BB32AE6SR0
1313
- **description**: Agilex 5 HPS-to-FPGA interfaces demos.

brd_altera_a5e065_premium_es/hw_base/a55_do_create_no_pins_hps.tcl

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ proc do_create_no_pins_hps {} {
1515
# add HDL parameters
1616

1717
# add the components
18-
add_component agilex_5_soc ip/no_pins_hps/agilex_5_soc.ip intel_agilex_5_soc agilex_5_soc 6.0.0
18+
add_component agilex_5_soc ip/no_pins_hps/agilex_5_soc.ip intel_agilex_5_soc agilex_5_soc 7.0.0
1919
load_component agilex_5_soc
2020
set_component_parameter_value ATB_Enable {0}
2121
set_component_parameter_value CM_Mode {N/A}
@@ -381,6 +381,7 @@ proc do_create_no_pins_hps {} {
381381
set_instantiation_interface_parameter_value hps2fpga combinedIssuingCapability {16}
382382
set_instantiation_interface_parameter_value hps2fpga dataCheck {false}
383383
set_instantiation_interface_parameter_value hps2fpga enableConcurrentSubordinateAccess {0}
384+
set_instantiation_interface_parameter_value hps2fpga isTranslator {false}
384385
set_instantiation_interface_parameter_value hps2fpga issuesFIXEDBursts {true}
385386
set_instantiation_interface_parameter_value hps2fpga issuesINCRBursts {true}
386387
set_instantiation_interface_parameter_value hps2fpga issuesWRAPBursts {true}
@@ -448,6 +449,7 @@ proc do_create_no_pins_hps {} {
448449
set_instantiation_interface_parameter_value lwhps2fpga combinedIssuingCapability {16}
449450
set_instantiation_interface_parameter_value lwhps2fpga dataCheck {false}
450451
set_instantiation_interface_parameter_value lwhps2fpga enableConcurrentSubordinateAccess {0}
452+
set_instantiation_interface_parameter_value lwhps2fpga isTranslator {false}
451453
set_instantiation_interface_parameter_value lwhps2fpga issuesFIXEDBursts {true}
452454
set_instantiation_interface_parameter_value lwhps2fpga issuesINCRBursts {true}
453455
set_instantiation_interface_parameter_value lwhps2fpga issuesWRAPBursts {true}
@@ -661,6 +663,7 @@ proc do_create_no_pins_hps {} {
661663
set_instantiation_interface_parameter_value f2sdram dfhParameterId {}
662664
set_instantiation_interface_parameter_value f2sdram dfhParameterName {}
663665
set_instantiation_interface_parameter_value f2sdram dfhParameterVersion {}
666+
set_instantiation_interface_parameter_value f2sdram isTranslator {false}
664667
set_instantiation_interface_parameter_value f2sdram maximumOutstandingReads {1}
665668
set_instantiation_interface_parameter_value f2sdram maximumOutstandingTransactions {1}
666669
set_instantiation_interface_parameter_value f2sdram maximumOutstandingWrites {1}
@@ -750,6 +753,7 @@ proc do_create_no_pins_hps {} {
750753
set_instantiation_interface_parameter_value fpga2hps dfhParameterId {}
751754
set_instantiation_interface_parameter_value fpga2hps dfhParameterName {}
752755
set_instantiation_interface_parameter_value fpga2hps dfhParameterVersion {}
756+
set_instantiation_interface_parameter_value fpga2hps isTranslator {false}
753757
set_instantiation_interface_parameter_value fpga2hps maximumOutstandingReads {1}
754758
set_instantiation_interface_parameter_value fpga2hps maximumOutstandingTransactions {1}
755759
set_instantiation_interface_parameter_value fpga2hps maximumOutstandingWrites {1}
@@ -884,7 +888,7 @@ proc do_create_no_pins_hps {} {
884888
add_instantiation_interface_port io96b0_to_hps io96b0_to_hps_axi4_ch0_arprot axi4_ch0_arprot 3 STD_LOGIC_VECTOR Output
885889
add_instantiation_interface_port io96b0_to_hps io96b0_to_hps_axi4_ch0_awprot axi4_ch0_awprot 3 STD_LOGIC_VECTOR Output
886890
save_instantiation
887-
add_component emif_bank3a_hps ip/no_pins_hps/emif_bank3a_hps.ip emif_io96b_hps emif_bank3a_hps 2.0.0
891+
add_component emif_bank3a_hps ip/no_pins_hps/emif_bank3a_hps.ip emif_io96b_hps emif_bank3a_hps 3.0.0
888892
load_component emif_bank3a_hps
889893
set_component_parameter_value EMIF_PROTOCOL {DDR4_COMP}
890894
set_component_parameter_value EMIF_REF_CLK_SHARING {0}
@@ -1059,13 +1063,13 @@ proc do_create_no_pins_hps {} {
10591063
set_component_sub_module_parameter_value emif_0_ddr4comp TURNAROUND_W2W_DIFFCS_CYC {0}
10601064
set_component_sub_module_parameter_value emif_0_ddr4comp TURNAROUND_W2W_SAMECS_CYC {0}
10611065
set_component_sub_module_parameter_value emif_0_ddr5comp ADV_CAL_ENABLE_MARGIN {0}
1062-
set_component_sub_module_parameter_value emif_0_ddr5comp ADV_CAL_ENABLE_RD_DFE {1}
1066+
set_component_sub_module_parameter_value emif_0_ddr5comp ADV_CAL_ENABLE_RD_DFE {0}
10631067
set_component_sub_module_parameter_value emif_0_ddr5comp ADV_CAL_ENABLE_REQ {1}
10641068
set_component_sub_module_parameter_value emif_0_ddr5comp ADV_CAL_ENABLE_WEQ {1}
1065-
set_component_sub_module_parameter_value emif_0_ddr5comp ADV_CAL_ENABLE_WR_DFE {1}
1069+
set_component_sub_module_parameter_value emif_0_ddr5comp ADV_CAL_ENABLE_WR_DFE {0}
10661070
set_component_sub_module_parameter_value emif_0_ddr5comp ANALOG_PARAM_DERIVATION_PARAM_NAME {}
10671071
set_component_sub_module_parameter_value emif_0_ddr5comp AXI4_ADDR_WIDTH {31}
1068-
set_component_sub_module_parameter_value emif_0_ddr5comp AXI4_USER_WIDTH {32}
1072+
set_component_sub_module_parameter_value emif_0_ddr5comp AXI4_USER_WIDTH {0}
10691073
set_component_sub_module_parameter_value emif_0_ddr5comp CTRL_AUTO_PRECHARGE_EN {0}
10701074
set_component_sub_module_parameter_value emif_0_ddr5comp CTRL_DM_EN {0}
10711075
set_component_sub_module_parameter_value emif_0_ddr5comp CTRL_ECC_AUTOCORRECT_EN {0}
@@ -1104,7 +1108,7 @@ proc do_create_no_pins_hps {} {
11041108
set_component_sub_module_parameter_value emif_0_ddr5comp MEM_DIE_DQ_WIDTH {16}
11051109
set_component_sub_module_parameter_value emif_0_ddr5comp MEM_DQ_PER_DQS {8}
11061110
set_component_sub_module_parameter_value emif_0_ddr5comp MEM_DQ_VREF {46}
1107-
set_component_sub_module_parameter_value emif_0_ddr5comp MEM_FINE_GRANULARITY_REFRESH_MODE {0.0}
1111+
set_component_sub_module_parameter_value emif_0_ddr5comp MEM_FINE_GRANULARITY_REFRESH_MODE {0}
11081112
set_component_sub_module_parameter_value emif_0_ddr5comp MEM_NUM_CHANNELS {1}
11091113
set_component_sub_module_parameter_value emif_0_ddr5comp MEM_NUM_CHANNELS_PER_IO96 {1}
11101114
set_component_sub_module_parameter_value emif_0_ddr5comp MEM_NUM_IO96 {1}
@@ -1234,13 +1238,13 @@ proc do_create_no_pins_hps {} {
12341238
set_component_sub_module_parameter_value emif_0_ddr5comp TURNAROUND_W2W_DIFFCS_CYC {0}
12351239
set_component_sub_module_parameter_value emif_0_ddr5comp TURNAROUND_W2W_SAMECS_CYC {0}
12361240
set_component_sub_module_parameter_value emif_0_ddr5dimm ADV_CAL_ENABLE_MARGIN {0}
1237-
set_component_sub_module_parameter_value emif_0_ddr5dimm ADV_CAL_ENABLE_RD_DFE {1}
1241+
set_component_sub_module_parameter_value emif_0_ddr5dimm ADV_CAL_ENABLE_RD_DFE {0}
12381242
set_component_sub_module_parameter_value emif_0_ddr5dimm ADV_CAL_ENABLE_REQ {1}
12391243
set_component_sub_module_parameter_value emif_0_ddr5dimm ADV_CAL_ENABLE_WEQ {1}
1240-
set_component_sub_module_parameter_value emif_0_ddr5dimm ADV_CAL_ENABLE_WR_DFE {1}
1244+
set_component_sub_module_parameter_value emif_0_ddr5dimm ADV_CAL_ENABLE_WR_DFE {0}
12411245
set_component_sub_module_parameter_value emif_0_ddr5dimm ANALOG_PARAM_DERIVATION_PARAM_NAME {}
12421246
set_component_sub_module_parameter_value emif_0_ddr5dimm AXI4_ADDR_WIDTH {32}
1243-
set_component_sub_module_parameter_value emif_0_ddr5dimm AXI4_USER_WIDTH {32}
1247+
set_component_sub_module_parameter_value emif_0_ddr5dimm AXI4_USER_WIDTH {0}
12441248
set_component_sub_module_parameter_value emif_0_ddr5dimm CTRL_AUTO_PRECHARGE_EN {0}
12451249
set_component_sub_module_parameter_value emif_0_ddr5dimm CTRL_DM_EN {0}
12461250
set_component_sub_module_parameter_value emif_0_ddr5dimm CTRL_ECC_AUTOCORRECT_EN {1}
@@ -1280,7 +1284,7 @@ proc do_create_no_pins_hps {} {
12801284
set_component_sub_module_parameter_value emif_0_ddr5dimm MEM_DIMM_TYPE {UDIMM}
12811285
set_component_sub_module_parameter_value emif_0_ddr5dimm MEM_DQ_PER_DQS {8}
12821286
set_component_sub_module_parameter_value emif_0_ddr5dimm MEM_DQ_VREF {39}
1283-
set_component_sub_module_parameter_value emif_0_ddr5dimm MEM_FINE_GRANULARITY_REFRESH_MODE {0.0}
1287+
set_component_sub_module_parameter_value emif_0_ddr5dimm MEM_FINE_GRANULARITY_REFRESH_MODE {0}
12841288
set_component_sub_module_parameter_value emif_0_ddr5dimm MEM_NUM_CHANNELS {2}
12851289
set_component_sub_module_parameter_value emif_0_ddr5dimm MEM_NUM_CHANNELS_PER_IO96 {1}
12861290
set_component_sub_module_parameter_value emif_0_ddr5dimm MEM_NUM_IO96 {2}
@@ -1422,10 +1426,10 @@ proc do_create_no_pins_hps {} {
14221426
set_component_sub_module_parameter_value emif_0_ddr5dimm TURNAROUND_W2W_DIFFCS_CYC {0}
14231427
set_component_sub_module_parameter_value emif_0_ddr5dimm TURNAROUND_W2W_SAMECS_CYC {0}
14241428
set_component_sub_module_parameter_value emif_0_lpddr4 ADV_CAL_ENABLE_MARGIN {0}
1425-
set_component_sub_module_parameter_value emif_0_lpddr4 ADV_CAL_ENABLE_RD_DFE {1}
1429+
set_component_sub_module_parameter_value emif_0_lpddr4 ADV_CAL_ENABLE_RD_DFE {0}
14261430
set_component_sub_module_parameter_value emif_0_lpddr4 ADV_CAL_ENABLE_REQ {1}
14271431
set_component_sub_module_parameter_value emif_0_lpddr4 ADV_CAL_ENABLE_WEQ {1}
1428-
set_component_sub_module_parameter_value emif_0_lpddr4 ADV_CAL_ENABLE_WR_DFE {1}
1432+
set_component_sub_module_parameter_value emif_0_lpddr4 ADV_CAL_ENABLE_WR_DFE {0}
14291433
set_component_sub_module_parameter_value emif_0_lpddr4 ANALOG_PARAM_DERIVATION_PARAM_NAME {}
14301434
set_component_sub_module_parameter_value emif_0_lpddr4 AXI4_ADDR_WIDTH {31}
14311435
set_component_sub_module_parameter_value emif_0_lpddr4 CTRL_AUTO_PRECHARGE_EN {0}
@@ -1523,7 +1527,7 @@ proc do_create_no_pins_hps {} {
15231527
set_component_sub_module_parameter_value emif_0_lpddr4 MEM_VREF_DQ_X_RANGE {1}
15241528
set_component_sub_module_parameter_value emif_0_lpddr4 MEM_VREF_DQ_X_VALUE {18.0}
15251529
set_component_sub_module_parameter_value emif_0_lpddr4 MEM_WLS {1.0}
1526-
set_component_sub_module_parameter_value emif_0_lpddr4 MEM_WR_POSTAMBLE_CYC {0}
1530+
set_component_sub_module_parameter_value emif_0_lpddr4 MEM_WR_POSTAMBLE_CYC {1}
15271531
set_component_sub_module_parameter_value emif_0_lpddr4 NUM_IO96_IN_CHIP {8}
15281532
set_component_sub_module_parameter_value emif_0_lpddr4 PHY_AC_PLACEMENT {FULL}
15291533
set_component_sub_module_parameter_value emif_0_lpddr4 PHY_REFCLK_ADVANCED_SELECT_EN {0}
@@ -1572,18 +1576,22 @@ proc do_create_no_pins_hps {} {
15721576
set_component_sub_module_parameter_value emif_0_lpddr4 TURNAROUND_W2W_DIFFCS_CYC {0}
15731577
set_component_sub_module_parameter_value emif_0_lpddr4 TURNAROUND_W2W_SAMECS_CYC {0}
15741578
set_component_sub_module_parameter_value emif_0_lpddr5 ADV_CAL_ENABLE_MARGIN {0}
1575-
set_component_sub_module_parameter_value emif_0_lpddr5 ADV_CAL_ENABLE_RD_DFE {1}
1579+
set_component_sub_module_parameter_value emif_0_lpddr5 ADV_CAL_ENABLE_RD_DFE {0}
15761580
set_component_sub_module_parameter_value emif_0_lpddr5 ADV_CAL_ENABLE_REQ {1}
15771581
set_component_sub_module_parameter_value emif_0_lpddr5 ADV_CAL_ENABLE_WEQ {1}
1578-
set_component_sub_module_parameter_value emif_0_lpddr5 ADV_CAL_ENABLE_WR_DFE {1}
1582+
set_component_sub_module_parameter_value emif_0_lpddr5 ADV_CAL_ENABLE_WR_DFE {0}
15791583
set_component_sub_module_parameter_value emif_0_lpddr5 ANALOG_PARAM_DERIVATION_PARAM_NAME {}
15801584
set_component_sub_module_parameter_value emif_0_lpddr5 AXI4_ADDR_WIDTH {32}
15811585
set_component_sub_module_parameter_value emif_0_lpddr5 CTRL_AUTO_PRECHARGE_EN {0}
15821586
set_component_sub_module_parameter_value emif_0_lpddr5 CTRL_DM_EN {0}
15831587
set_component_sub_module_parameter_value emif_0_lpddr5 CTRL_ECC_AUTOCORRECT_EN {0}
15841588
set_component_sub_module_parameter_value emif_0_lpddr5 CTRL_ECC_INLINE_EN {0}
1585-
set_component_sub_module_parameter_value emif_0_lpddr5 CTRL_ECC_RD_LINK_EN {0}
1586-
set_component_sub_module_parameter_value emif_0_lpddr5 CTRL_ECC_WR_LINK_EN {0}
1589+
set_component_sub_module_parameter_value emif_0_lpddr5 CTRL_ECC_RD_LINK_EN_FSP0 {0}
1590+
set_component_sub_module_parameter_value emif_0_lpddr5 CTRL_ECC_RD_LINK_EN_FSP1 {0}
1591+
set_component_sub_module_parameter_value emif_0_lpddr5 CTRL_ECC_RD_LINK_EN_FSP2 {0}
1592+
set_component_sub_module_parameter_value emif_0_lpddr5 CTRL_ECC_WR_LINK_EN_FSP0 {0}
1593+
set_component_sub_module_parameter_value emif_0_lpddr5 CTRL_ECC_WR_LINK_EN_FSP1 {0}
1594+
set_component_sub_module_parameter_value emif_0_lpddr5 CTRL_ECC_WR_LINK_EN_FSP2 {0}
15871595
set_component_sub_module_parameter_value emif_0_lpddr5 CTRL_PERFORMANCE_PROFILE {default}
15881596
set_component_sub_module_parameter_value emif_0_lpddr5 CTRL_RD_DBI_EN {0}
15891597
set_component_sub_module_parameter_value emif_0_lpddr5 CTRL_SCRAMBLER_EN {0}
@@ -1640,6 +1648,7 @@ proc do_create_no_pins_hps {} {
16401648
set_component_sub_module_parameter_value emif_0_lpddr5 MEM_FSP0_TWTR_L_NS {12.0}
16411649
set_component_sub_module_parameter_value emif_0_lpddr5 MEM_FSP0_TWTR_S_NS {7.0}
16421650
set_component_sub_module_parameter_value emif_0_lpddr5 MEM_FSP0_TXP_NS {7.0}
1651+
set_component_sub_module_parameter_value emif_0_lpddr5 MEM_FSP0_TXSR_NS {388.0}
16431652
set_component_sub_module_parameter_value emif_0_lpddr5 MEM_FSP0_TZQPD_NS {5.0}
16441653
set_component_sub_module_parameter_value emif_0_lpddr5 MEM_FSP1_CK_FREQ_MHZ {687.5}
16451654
set_component_sub_module_parameter_value emif_0_lpddr5 MEM_FSP1_CL_CYC {15}
@@ -1666,6 +1675,7 @@ proc do_create_no_pins_hps {} {
16661675
set_component_sub_module_parameter_value emif_0_lpddr5 MEM_FSP1_TWTR_L_NS {12.0}
16671676
set_component_sub_module_parameter_value emif_0_lpddr5 MEM_FSP1_TWTR_S_NS {7.0}
16681677
set_component_sub_module_parameter_value emif_0_lpddr5 MEM_FSP1_TXP_NS {7.0}
1678+
set_component_sub_module_parameter_value emif_0_lpddr5 MEM_FSP1_TXSR_NS {388.0}
16691679
set_component_sub_module_parameter_value emif_0_lpddr5 MEM_FSP1_TZQPD_NS {5.0}
16701680
set_component_sub_module_parameter_value emif_0_lpddr5 MEM_FSP2_CK_FREQ_MHZ {687.5}
16711681
set_component_sub_module_parameter_value emif_0_lpddr5 MEM_FSP2_CL_CYC {15}
@@ -1692,6 +1702,7 @@ proc do_create_no_pins_hps {} {
16921702
set_component_sub_module_parameter_value emif_0_lpddr5 MEM_FSP2_TWTR_L_NS {12.0}
16931703
set_component_sub_module_parameter_value emif_0_lpddr5 MEM_FSP2_TWTR_S_NS {7.0}
16941704
set_component_sub_module_parameter_value emif_0_lpddr5 MEM_FSP2_TXP_NS {7.0}
1705+
set_component_sub_module_parameter_value emif_0_lpddr5 MEM_FSP2_TXSR_NS {388.0}
16951706
set_component_sub_module_parameter_value emif_0_lpddr5 MEM_FSP2_TZQPD_NS {5.0}
16961707
set_component_sub_module_parameter_value emif_0_lpddr5 MEM_MINNUMREFSREQ {8192.0}
16971708
set_component_sub_module_parameter_value emif_0_lpddr5 MEM_NUM_CHANNELS {2}
@@ -1736,7 +1747,6 @@ proc do_create_no_pins_hps {} {
17361747
set_component_sub_module_parameter_value emif_0_lpddr5 MEM_TRPPB_NS {18.0}
17371748
set_component_sub_module_parameter_value emif_0_lpddr5 MEM_TSR_NS {15.0}
17381749
set_component_sub_module_parameter_value emif_0_lpddr5 MEM_TWR_NS {34.0}
1739-
set_component_sub_module_parameter_value emif_0_lpddr5 MEM_TXSR_NS {388.0}
17401750
set_component_sub_module_parameter_value emif_0_lpddr5 MEM_TZQLAT_NS {30.0}
17411751
set_component_sub_module_parameter_value emif_0_lpddr5 MEM_VREF_CA_X_CA_VALUE {50.0}
17421752
set_component_sub_module_parameter_value emif_0_lpddr5 MEM_VREF_DQ_X_VALUE {24.0}

0 commit comments

Comments
 (0)