⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ps7_init.c

📁 自学ZedBoard:使用IP通过ARM PS访问FPGA(源代码)
💻 C
📖 第 1 页 / 共 5 页
字号:
    // .. .. ==> 0XF8006040[27:24] = 0x0000000FU
    // .. ..     ==> MASK : 0x0F000000U    VAL : 0x0F000000U
    // .. .. reg_ddrc_addrmap_col_b11 = 0xf
    // .. .. ==> 0XF8006040[31:28] = 0x0000000FU
    // .. ..     ==> MASK : 0xF0000000U    VAL : 0xF0000000U
    // .. .. 
    EMIT_MASKWRITE(0XF8006040, 0xFFFFFFFFU ,0xFFF00000U),
    // .. .. reg_ddrc_addrmap_row_b0 = 0x6
    // .. .. ==> 0XF8006044[3:0] = 0x00000006U
    // .. ..     ==> MASK : 0x0000000FU    VAL : 0x00000006U
    // .. .. reg_ddrc_addrmap_row_b1 = 0x6
    // .. .. ==> 0XF8006044[7:4] = 0x00000006U
    // .. ..     ==> MASK : 0x000000F0U    VAL : 0x00000060U
    // .. .. reg_ddrc_addrmap_row_b2_11 = 0x6
    // .. .. ==> 0XF8006044[11:8] = 0x00000006U
    // .. ..     ==> MASK : 0x00000F00U    VAL : 0x00000600U
    // .. .. reg_ddrc_addrmap_row_b12 = 0x6
    // .. .. ==> 0XF8006044[15:12] = 0x00000006U
    // .. ..     ==> MASK : 0x0000F000U    VAL : 0x00006000U
    // .. .. reg_ddrc_addrmap_row_b13 = 0x6
    // .. .. ==> 0XF8006044[19:16] = 0x00000006U
    // .. ..     ==> MASK : 0x000F0000U    VAL : 0x00060000U
    // .. .. reg_ddrc_addrmap_row_b14 = 0x6
    // .. .. ==> 0XF8006044[23:20] = 0x00000006U
    // .. ..     ==> MASK : 0x00F00000U    VAL : 0x00600000U
    // .. .. reg_ddrc_addrmap_row_b15 = 0xf
    // .. .. ==> 0XF8006044[27:24] = 0x0000000FU
    // .. ..     ==> MASK : 0x0F000000U    VAL : 0x0F000000U
    // .. .. 
    EMIT_MASKWRITE(0XF8006044, 0x0FFFFFFFU ,0x0F666666U),
    // .. .. reg_ddrc_rank0_rd_odt = 0x0
    // .. .. ==> 0XF8006048[2:0] = 0x00000000U
    // .. ..     ==> MASK : 0x00000007U    VAL : 0x00000000U
    // .. .. reg_ddrc_rank0_wr_odt = 0x1
    // .. .. ==> 0XF8006048[5:3] = 0x00000001U
    // .. ..     ==> MASK : 0x00000038U    VAL : 0x00000008U
    // .. .. reg_ddrc_rank1_rd_odt = 0x1
    // .. .. ==> 0XF8006048[8:6] = 0x00000001U
    // .. ..     ==> MASK : 0x000001C0U    VAL : 0x00000040U
    // .. .. reg_ddrc_rank1_wr_odt = 0x1
    // .. .. ==> 0XF8006048[11:9] = 0x00000001U
    // .. ..     ==> MASK : 0x00000E00U    VAL : 0x00000200U
    // .. .. reg_phy_rd_local_odt = 0x0
    // .. .. ==> 0XF8006048[13:12] = 0x00000000U
    // .. ..     ==> MASK : 0x00003000U    VAL : 0x00000000U
    // .. .. reg_phy_wr_local_odt = 0x3
    // .. .. ==> 0XF8006048[15:14] = 0x00000003U
    // .. ..     ==> MASK : 0x0000C000U    VAL : 0x0000C000U
    // .. .. reg_phy_idle_local_odt = 0x3
    // .. .. ==> 0XF8006048[17:16] = 0x00000003U
    // .. ..     ==> MASK : 0x00030000U    VAL : 0x00030000U
    // .. .. reg_ddrc_rank2_rd_odt = 0x0
    // .. .. ==> 0XF8006048[20:18] = 0x00000000U
    // .. ..     ==> MASK : 0x001C0000U    VAL : 0x00000000U
    // .. .. reg_ddrc_rank2_wr_odt = 0x0
    // .. .. ==> 0XF8006048[23:21] = 0x00000000U
    // .. ..     ==> MASK : 0x00E00000U    VAL : 0x00000000U
    // .. .. reg_ddrc_rank3_rd_odt = 0x0
    // .. .. ==> 0XF8006048[26:24] = 0x00000000U
    // .. ..     ==> MASK : 0x07000000U    VAL : 0x00000000U
    // .. .. reg_ddrc_rank3_wr_odt = 0x0
    // .. .. ==> 0XF8006048[29:27] = 0x00000000U
    // .. ..     ==> MASK : 0x38000000U    VAL : 0x00000000U
    // .. .. 
    EMIT_MASKWRITE(0XF8006048, 0x3FFFFFFFU ,0x0003C248U),
    // .. .. reg_phy_rd_cmd_to_data = 0x0
    // .. .. ==> 0XF8006050[3:0] = 0x00000000U
    // .. ..     ==> MASK : 0x0000000FU    VAL : 0x00000000U
    // .. .. reg_phy_wr_cmd_to_data = 0x0
    // .. .. ==> 0XF8006050[7:4] = 0x00000000U
    // .. ..     ==> MASK : 0x000000F0U    VAL : 0x00000000U
    // .. .. reg_phy_rdc_we_to_re_delay = 0x8
    // .. .. ==> 0XF8006050[11:8] = 0x00000008U
    // .. ..     ==> MASK : 0x00000F00U    VAL : 0x00000800U
    // .. .. reg_phy_rdc_fifo_rst_disable = 0x0
    // .. .. ==> 0XF8006050[15:15] = 0x00000000U
    // .. ..     ==> MASK : 0x00008000U    VAL : 0x00000000U
    // .. .. reg_phy_use_fixed_re = 0x1
    // .. .. ==> 0XF8006050[16:16] = 0x00000001U
    // .. ..     ==> MASK : 0x00010000U    VAL : 0x00010000U
    // .. .. reg_phy_rdc_fifo_rst_err_cnt_clr = 0x0
    // .. .. ==> 0XF8006050[17:17] = 0x00000000U
    // .. ..     ==> MASK : 0x00020000U    VAL : 0x00000000U
    // .. .. reg_phy_dis_phy_ctrl_rstn = 0x0
    // .. .. ==> 0XF8006050[18:18] = 0x00000000U
    // .. ..     ==> MASK : 0x00040000U    VAL : 0x00000000U
    // .. .. reg_phy_clk_stall_level = 0x0
    // .. .. ==> 0XF8006050[19:19] = 0x00000000U
    // .. ..     ==> MASK : 0x00080000U    VAL : 0x00000000U
    // .. .. reg_phy_gatelvl_num_of_dq0 = 0x7
    // .. .. ==> 0XF8006050[27:24] = 0x00000007U
    // .. ..     ==> MASK : 0x0F000000U    VAL : 0x07000000U
    // .. .. reg_phy_wrlvl_num_of_dq0 = 0x7
    // .. .. ==> 0XF8006050[31:28] = 0x00000007U
    // .. ..     ==> MASK : 0xF0000000U    VAL : 0x70000000U
    // .. .. 
    EMIT_MASKWRITE(0XF8006050, 0xFF0F8FFFU ,0x77010800U),
    // .. .. reg_ddrc_dll_calib_to_min_x1024 = 0x1
    // .. .. ==> 0XF8006058[7:0] = 0x00000001U
    // .. ..     ==> MASK : 0x000000FFU    VAL : 0x00000001U
    // .. .. reg_ddrc_dll_calib_to_max_x1024 = 0x1
    // .. .. ==> 0XF8006058[15:8] = 0x00000001U
    // .. ..     ==> MASK : 0x0000FF00U    VAL : 0x00000100U
    // .. .. reg_ddrc_dis_dll_calib = 0x0
    // .. .. ==> 0XF8006058[16:16] = 0x00000000U
    // .. ..     ==> MASK : 0x00010000U    VAL : 0x00000000U
    // .. .. 
    EMIT_MASKWRITE(0XF8006058, 0x0001FFFFU ,0x00000101U),
    // .. .. reg_ddrc_rd_odt_delay = 0x3
    // .. .. ==> 0XF800605C[3:0] = 0x00000003U
    // .. ..     ==> MASK : 0x0000000FU    VAL : 0x00000003U
    // .. .. reg_ddrc_wr_odt_delay = 0x0
    // .. .. ==> 0XF800605C[7:4] = 0x00000000U
    // .. ..     ==> MASK : 0x000000F0U    VAL : 0x00000000U
    // .. .. reg_ddrc_rd_odt_hold = 0x0
    // .. .. ==> 0XF800605C[11:8] = 0x00000000U
    // .. ..     ==> MASK : 0x00000F00U    VAL : 0x00000000U
    // .. .. reg_ddrc_wr_odt_hold = 0x5
    // .. .. ==> 0XF800605C[15:12] = 0x00000005U
    // .. ..     ==> MASK : 0x0000F000U    VAL : 0x00005000U
    // .. .. 
    EMIT_MASKWRITE(0XF800605C, 0x0000FFFFU ,0x00005003U),
    // .. .. reg_ddrc_pageclose = 0x0
    // .. .. ==> 0XF8006060[0:0] = 0x00000000U
    // .. ..     ==> MASK : 0x00000001U    VAL : 0x00000000U
    // .. .. reg_ddrc_lpr_num_entries = 0x1f
    // .. .. ==> 0XF8006060[6:1] = 0x0000001FU
    // .. ..     ==> MASK : 0x0000007EU    VAL : 0x0000003EU
    // .. .. reg_ddrc_auto_pre_en = 0x0
    // .. .. ==> 0XF8006060[7:7] = 0x00000000U
    // .. ..     ==> MASK : 0x00000080U    VAL : 0x00000000U
    // .. .. reg_ddrc_refresh_update_level = 0x0
    // .. .. ==> 0XF8006060[8:8] = 0x00000000U
    // .. ..     ==> MASK : 0x00000100U    VAL : 0x00000000U
    // .. .. reg_ddrc_dis_wc = 0x0
    // .. .. ==> 0XF8006060[9:9] = 0x00000000U
    // .. ..     ==> MASK : 0x00000200U    VAL : 0x00000000U
    // .. .. reg_ddrc_dis_collision_page_opt = 0x0
    // .. .. ==> 0XF8006060[10:10] = 0x00000000U
    // .. ..     ==> MASK : 0x00000400U    VAL : 0x00000000U
    // .. .. reg_ddrc_selfref_en = 0x0
    // .. .. ==> 0XF8006060[12:12] = 0x00000000U
    // .. ..     ==> MASK : 0x00001000U    VAL : 0x00000000U
    // .. .. 
    EMIT_MASKWRITE(0XF8006060, 0x000017FFU ,0x0000003EU),
    // .. .. reg_ddrc_go2critical_hysteresis = 0x0
    // .. .. ==> 0XF8006064[12:5] = 0x00000000U
    // .. ..     ==> MASK : 0x00001FE0U    VAL : 0x00000000U
    // .. .. reg_arb_go2critical_en = 0x1
    // .. .. ==> 0XF8006064[17:17] = 0x00000001U
    // .. ..     ==> MASK : 0x00020000U    VAL : 0x00020000U
    // .. .. 
    EMIT_MASKWRITE(0XF8006064, 0x00021FE0U ,0x00020000U),
    // .. .. reg_ddrc_wrlvl_ww = 0x41
    // .. .. ==> 0XF8006068[7:0] = 0x00000041U
    // .. ..     ==> MASK : 0x000000FFU    VAL : 0x00000041U
    // .. .. reg_ddrc_rdlvl_rr = 0x41
    // .. .. ==> 0XF8006068[15:8] = 0x00000041U
    // .. ..     ==> MASK : 0x0000FF00U    VAL : 0x00004100U
    // .. .. reg_ddrc_dfi_t_wlmrd = 0x28
    // .. .. ==> 0XF8006068[25:16] = 0x00000028U
    // .. ..     ==> MASK : 0x03FF0000U    VAL : 0x00280000U
    // .. .. 
    EMIT_MASKWRITE(0XF8006068, 0x03FFFFFFU ,0x00284141U),
    // .. .. dfi_t_ctrlupd_interval_min_x1024 = 0x10
    // .. .. ==> 0XF800606C[7:0] = 0x00000010U
    // .. ..     ==> MASK : 0x000000FFU    VAL : 0x00000010U
    // .. .. dfi_t_ctrlupd_interval_max_x1024 = 0x16
    // .. .. ==> 0XF800606C[15:8] = 0x00000016U
    // .. ..     ==> MASK : 0x0000FF00U    VAL : 0x00001600U
    // .. .. 
    EMIT_MASKWRITE(0XF800606C, 0x0000FFFFU ,0x00001610U),
    // .. .. refresh_timer0_start_value_x32 = 0x0
    // .. .. ==> 0XF80060A0[11:0] = 0x00000000U
    // .. ..     ==> MASK : 0x00000FFFU    VAL : 0x00000000U
    // .. .. refresh_timer1_start_value_x32 = 0x8
    // .. .. ==> 0XF80060A0[23:12] = 0x00000008U
    // .. ..     ==> MASK : 0x00FFF000U    VAL : 0x00008000U
    // .. .. 
    EMIT_MASKWRITE(0XF80060A0, 0x00FFFFFFU ,0x00008000U),
    // .. .. reg_ddrc_dis_auto_zq = 0x0
    // .. .. ==> 0XF80060A4[0:0] = 0x00000000U
    // .. ..     ==> MASK : 0x00000001U    VAL : 0x00000000U
    // .. .. reg_ddrc_ddr3 = 0x1
    // .. .. ==> 0XF80060A4[1:1] = 0x00000001U
    // .. ..     ==> MASK : 0x00000002U    VAL : 0x00000002U
    // .. .. reg_ddrc_t_mod = 0x200
    // .. .. ==> 0XF80060A4[11:2] = 0x00000200U
    // .. ..     ==> MASK : 0x00000FFCU    VAL : 0x00000800U
    // .. .. reg_ddrc_t_zq_long_nop = 0x200
    // .. .. ==> 0XF80060A4[21:12] = 0x00000200U
    // .. ..     ==> MASK : 0x003FF000U    VAL : 0x00200000U
    // .. .. reg_ddrc_t_zq_short_nop = 0x40
    // .. .. ==> 0XF80060A4[31:22] = 0x00000040U
    // .. ..     ==> MASK : 0xFFC00000U    VAL : 0x10000000U
    // .. .. 
    EMIT_MASKWRITE(0XF80060A4, 0xFFFFFFFFU ,0x10200802U),
    // .. .. t_zq_short_interval_x1024 = 0xcb73
    // .. .. ==> 0XF80060A8[19:0] = 0x0000CB73U
    // .. ..     ==> MASK : 0x000FFFFFU    VAL : 0x0000CB73U
    // .. .. dram_rstn_x1024 = 0x2
    // .. .. ==> 0XF80060A8[27:20] = 0x00000002U
    // .. ..     ==> MASK : 0x0FF00000U    VAL : 0x00200000U
    // .. .. 
    EMIT_MASKWRITE(0XF80060A8, 0x0FFFFFFFU ,0x0020CB73U),
    // .. .. deeppowerdown_en = 0x0
    // .. .. ==> 0XF80060AC[0:0] = 0x00000000U
    // .. ..     ==> MASK : 0x00000001U    VAL : 0x00000000U
    // .. .. deeppowerdown_to_x1024 = 0xff
    // .. .. ==> 0XF80060AC[8:1] = 0x000000FFU
    // .. ..     ==> MASK : 0x000001FEU    VAL : 0x000001FEU
    // .. .. 
    EMIT_MASKWRITE(0XF80060AC, 0x000001FFU ,0x000001FEU),
    // .. .. dfi_wrlvl_max_x1024 = 0xfff
    // .. .. ==> 0XF80060B0[11:0] = 0x00000FFFU
    // .. ..     ==> MASK : 0x00000FFFU    VAL : 0x00000FFFU
    // .. .. dfi_rdlvl_max_x1024 = 0xfff
    // .. .. ==> 0XF80060B0[23:12] = 0x00000FFFU
    // .. ..     ==> MASK : 0x00FFF000U    VAL : 0x00FFF000U
    // .. .. ddrc_reg_twrlvl_max_error = 0x0
    // .. .. ==> 0XF80060B0[24:24] = 0x00000000U
    // .. ..     ==> MASK : 0x01000000U    VAL : 0x00000000U
    // .. .. ddrc_reg_trdlvl_max_error = 0x0
    // .. .. ==> 0XF80060B0[25:25] = 0x00000000U
    // .. ..     ==> MASK : 0x02000000U    VAL : 0x00000000U
    // .. .. reg_ddrc_dfi_wr_level_en = 0x1
    // .. .. ==> 0XF80060B0[26:26] = 0x00000001U
    // .. ..     ==> MASK : 0x04000000U    VAL : 0x04000000U
    // .. .. reg_ddrc_dfi_rd_dqs_gate_level = 0x1
    // .. .. ==> 0XF80060B0[27:27] = 0x00000001U
    // .. ..     ==> MASK : 0x08000000U    VAL : 0x08000000U
    // .. .. reg_ddrc_dfi_rd_data_eye_train = 0x1
    // .. .. ==> 0XF80060B0[28:28] = 0x00000001U
    // .. ..     ==> MASK : 0x10000000U    VAL : 0x10000000U
    // .. .. 
    EMIT_MASKWRITE(0XF80060B0, 0x1FFFFFFFU ,0x1CFFFFFFU),
    // .. .. reg_ddrc_2t_delay = 0x0
    // .. .. ==> 0XF80060B4[8:0] = 0x00000000U
    // .. ..     ==> MASK : 0x000001FFU    VAL : 0x00000000U
    // .. .. reg_ddrc_skip_ocd = 0x1
    // .. .. ==> 0XF80060B4[9:9] = 0x00000001U
    // .. ..     ==> MASK : 0x00000200U    VAL : 0x00000200U
    // .. .. reg_ddrc_dis_pre_bypass = 0x0
    // .. .. ==> 0XF80060B4[10:10] = 0x00000000U
    // .. ..     ==> MASK : 0x00000400U    VAL : 0x00000000U
    // .. .. 
    EMIT_MASKWRITE(0XF80060B4, 0x000007FFU ,0x00000200U),
    // .. .. reg_ddrc_dfi_t_rddata_en = 0x6
    // .. .. ==> 0XF80060B8[4:0] = 0x00000006U
    // .. ..     ==> MASK : 0x0000001FU    VAL : 0x00000006U
    // .. .. reg_ddrc_dfi_t_ctrlup_min = 0x3
    // .. .. ==> 0XF80060B8[14:5] = 0x00000003U
    // .. ..     ==> MASK : 0x00007FE0U    VAL : 0x00000060U
    // .. .. reg_ddrc_dfi_t_ctrlup_max = 0x40
    // .. .. ==> 0XF80060B8[24:15] = 0x00000040U
    // .. ..     ==> MASK : 0x01FF8000U    VAL : 0x00200000U
    // .. .. 
    EMIT_MASKWRITE(0XF80060B8, 0x01FFFFFFU ,0x00200066U),
    // .. .. reg_ddrc_refresh_timer2_start_value_x32 = 0x0
    // .. .. ==> 0XF80060BC[11:0] = 0x00000000U
    // .. ..     ==> MASK : 0x00000FFFU    VAL : 0x00000000U
    // .. .. reg_ddrc_refresh_timer3_start_value_x32 = 0x0
    // .. .. ==> 0XF80060BC[23:12] = 0x00000000U
    // .. ..     ==> MASK : 0x00FFF000U    VAL : 0x00000000U
    // .. .. 
    EMIT_MASKWRITE(0XF80060BC, 0x00FFFFFFU ,0x00000000U),
    // .. .. Clear_Uncorrectable_DRAM_ECC_error = 0x0
    // .. .. ==> 0XF80060C4[0:0] = 0x00000000U
    // .. ..     ==> MASK : 0x00000001U    VAL : 0x00000000U
    // .. .. Clear_Correctable_DRAM_ECC_error = 0x0
    // .. .. ==> 0XF80060C4[1:1] = 0x00000000U
    // .. ..     ==> MASK : 0x00000002U    VAL : 0x00000000U
    // .. .. 
    EMIT_MASKWRITE(0XF80060C4, 0x00000003U ,0x00000000U),
    // .. .. CORR_ECC_LOG_VALID = 0x0
    // .. .. ==> 0XF80060C8[0:0] = 0x00000000U
    // .. ..     ==> MASK : 0x00000001U    VAL : 0x00000000U
    // .. .. ECC_CORRECTED_BIT_NUM = 0x0
    // .. .. ==> 0XF80060C8[7:1] = 0x00000000U

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -