![]() |
coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
|
Go to the source code of this file.
Data Structures | |
struct | dqs_perbit_dly |
anonymous enum |
Enumerator | |
---|---|
MAX_CLKO_DELAY |
Definition at line 10 of file dramc_pi_api.h.
anonymous enum |
Enumerator | |
---|---|
JMETER_COUNT | |
JMETER_COUNT_N | |
JMETER_WAIT_DONE_US |
Definition at line 14 of file dramc_pi_api.h.
anonymous enum |
Enumerator | |
---|---|
DLE_TEST_NUM |
Definition at line 22 of file dramc_pi_api.h.
anonymous enum |
Enumerator | |
---|---|
RX_WIN | |
TX_WIN | |
STAGE_SETUP | |
STAGE_HOLD | |
STAGE_SETUP_RX_WIN | |
STAGE_SETUP_TX_WIN | |
STAGE_HOLD_RX_WIN | |
STAGE_HOLD_TX_WIN |
Definition at line 26 of file dramc_pi_api.h.
anonymous enum |
Enumerator | |
---|---|
RX_DQ | |
RX_DQS | |
TX_DQ | |
TX_DQS | |
TX_DQM |
Definition at line 40 of file dramc_pi_api.h.
anonymous enum |
Enumerator | |
---|---|
AUDIO | |
XTALK | |
ISI |
Definition at line 48 of file dramc_pi_api.h.
anonymous enum |
Enumerator | |
---|---|
MEMPLL_INIT | |
MEMPLL_REF_LAG | |
MEMPLL_REF_LEAD |
Definition at line 54 of file dramc_pi_api.h.
anonymous enum |
Enumerator | |
---|---|
FIRST_DQ_DELAY | |
FIRST_DQS_DELAY | |
MAX_DQDLY_TAPS | |
MAX_TX_DQSDLY_TAPS | |
MAX_RX_DQSDLY_TAPS |
Definition at line 60 of file dramc_pi_api.h.
anonymous enum |
Enumerator | |
---|---|
DRAMK_READ | |
DRAMK_WRITE |
Definition at line 68 of file dramc_pi_api.h.
anonymous enum |
Enumerator | |
---|---|
ENABLE | |
DISABLE |
Definition at line 73 of file dramc_pi_api.h.
anonymous enum |
Enumerator | |
---|---|
DATA_WIDTH_16BIT | |
DATA_WIDTH_32BIT |
Definition at line 78 of file dramc_pi_api.h.
anonymous enum |
Enumerator | |
---|---|
DQS_GW_TE_OFFSET | |
DQS_GW_GOLD_COUNTER_32BIT | |
DQS_GW_PATTERN1 | |
DQS_GW_PATTERN2 |
Definition at line 88 of file dramc_pi_api.h.
anonymous enum |
Enumerator | |
---|---|
DEFAULT_TEST2_1_CAL | |
DEFAULT_TEST2_2_CAL | |
DEFAULT_TEST2_1_DQSIEN | |
DEFAULT_TEST2_2_DQSIEN | |
DEFAULT_GOLD_DQSIEN |
Definition at line 95 of file dramc_pi_api.h.
anonymous enum |
Enumerator | |
---|---|
TEST_ISI_PATTERN | |
TEST_AUDIO_PATTERN | |
TEST_TA1_SIMPLE | |
TEST_TESTPAT4 | |
TEST_TESTPAT4_3 | |
TEST_XTALK_PATTERN | |
TEST_MIX_PATTERN |
Definition at line 109 of file dramc_pi_api.h.
enum dram_tw_op |
Enumerator | |
---|---|
TE_OP_WRITE_READ_CHECK | |
TE_OP_READ_CHECK |
Definition at line 83 of file dramc_pi_api.h.
void ca_training | ( | u32 | channel, |
const struct mt8173_sdram_params * | sdram_params | ||
) |
Definition at line 46 of file dramc_pi_calibration_api.c.
References ao_regs, CATRAINING_NUM, ch, CHANNEL_NUM, clrsetbits32, dramc_ddrphy_regs::cmddly, CMDDLY0_RA2_SHIFT, CMDDLY1_RA7_SHIFT, CMDDLY3_BA0_SHIFT, CMDDLY3_BA1_SHIFT, CMDDLY3_BA2_SHIFT, CMDDLY4_CAS_SHIFT, CMDDLY4_CKE_SHIFT, CMDDLY4_CS_SHIFT, CMDDLY4_RAS_SHIFT, CMDDLY5_RA13_SHIFT, CMDDLY5_WE_SHIFT, ddrphy_regs, dramc_ddrphy_regs::dqscal0, DQSCAL0_RA14_SHIFT, dramc_ao_regs::dqscal1, DQSCAL1_CKE1_SHIFT, dramc_dbg, dramc_ddrphy_regs::padctl1, PADCTL1_CLK_SHIFT, PADCTL1_CS1_SHIFT, params, and read32().
Referenced by do_calib().
Definition at line 607 of file dramc_pi_calibration_api.c.
References ch, clrsetbits32, ddrphy_regs, dramc_dbg, dramc_ddrphy_regs::phyclkduty, PHYCLKDUTY_CMDCLKP0DUTYN_SHIFT, PHYCLKDUTY_CMDCLKP0DUTYP_SHIFT, PHYCLKDUTY_CMDCLKP0DUTYSEL_SHIFT, and read32().
Referenced by do_calib().
Definition at line 651 of file dramc_pi_basic_api.c.
References ch, CHANNEL_B, clrbits32, ddrphy_regs, MEMCLKENB_SHIFT, dramc_ddrphy_regs::mempll_divider, setbits32, and udelay().
Referenced by init_dram(), and mem_pll_init().
Definition at line 447 of file dramc_pi_calibration_api.c.
References DEFAULT_TEST2_1_CAL, DEFAULT_TEST2_2_CAL, dramc_engine2(), and TE_OP_WRITE_READ_CHECK.
Referenced by dramc_window_perbit_cal_partial(), and perbit_window_cal().
u32 dramc_engine2 | ( | u32 | channel, |
enum dram_tw_op | wr, | ||
u32 | test2_1, | ||
u32 | test2_2, | ||
u8 | testaudpat, | ||
u8 | log2loopcount | ||
) |
Definition at line 758 of file dramc_pi_basic_api.c.
References ao_regs, AUDIO, ch, clrbits32, clrsetbits32, dramc_nao_regs::cmp_err, dramc_ao_regs::conf2, CONF2_TEST1_EN, CONF2_TEST2R_EN, CONF2_TEST2W_EN, die(), ISI, nao_regs, read32(), setbits32, TE_OP_READ_CHECK, TE_OP_WRITE_READ_CHECK, dramc_nao_regs::test2_1, dramc_nao_regs::test2_2, dramc_ao_regs::test2_3, TEST2_3_TESTAUDPAT_EN, TEST2_3_TESTCNT_MASK, TEST2_3_TESTCNT_SHIFT, dramc_ao_regs::test2_4, TEST2_4_TESTAUDBITINV_EN, TEST2_4_TESTAUDINC_MASK, TEST2_4_TESTAUDINC_SHIFT, TEST2_4_TESTAUDINIT_MASK, TEST2_4_TESTAUDINIT_SHIFT, TEST2_4_TESTAUDMODE_EN, TEST2_4_TESTXTALKPAT_EN, dramc_nao_regs::testrpt, TESTRPT_DM_CMP_CPT_SHIFT, udelay(), value, write32(), and XTALK.
Referenced by dqs_gw_test(), dram_k_perbit(), and rx_datlat_cal().
void dramc_init | ( | u32 | channel, |
const struct mt8173_sdram_params * | sdram_params | ||
) |
Definition at line 451 of file dramc_pi_basic_api.c.
References dramc_ao_regs::actim0, dramc_ao_regs::actim1, ao_regs, dramc_ao_regs::arbctl0, assert, ch, dramc_ao_regs::clk1delay, dramc_ao_regs::clkctl, clrbits32, dramc_ao_regs::conf1, dramc_ao_regs::conf2, dramc_ao_regs::ddr2ctl, dramc_ddrphy_regs::ddr2ctl, ddrphy_regs, DEFAULT_DRIVING, dramc_ao_regs::dllconf, dramc_ao_regs::dqidly, DQS_BIT_NUMBER, dramc_ao_regs::dqscal0, dramc_ddrphy_regs::dqscal0, dramc_ao_regs::dqsctl1, dramc_ao_regs::dqsctl2, dramc_ddrphy_regs::dqsgctl, dramc_ao_regs::dqsien, dramc_ddrphy_regs::dqsisel, dramc_ao_regs::dramc_pd_ctrl, dramc_set_mrs_value(), DRIVING_DS2_0, dramc_ao_regs::drvctl1, dramc_ddrphy_regs::drvctl1, dramc_ao_regs::dummy, dramc_ao_regs::gddr3ctl1, dramc_ddrphy_regs::gddr3ctl1, dramc_ddrphy_regs::ioctl, dramc_ao_regs::iodrv6, is_dual_rank(), dramc_ao_regs::mckdly, dramc_ddrphy_regs::mckdly, dramc_ao_regs::misc, dramc_ao_regs::misctl0, dramc_ddrphy_regs::misctl0, dramc_ao_regs::ocdk, dramc_ddrphy_regs::ocdk, dramc_ddrphy_regs::padctl1, dramc_ddrphy_regs::padctl2, dramc_ao_regs::padctl4, dramc_ao_regs::padctl7, dramc_ao_regs::perfctl0, dramc_ddrphy_regs::peri, dramc_ddrphy_regs::phyclkduty, dramc_ao_regs::phyctl1, dramc_ao_regs::r0deldly, dramc_ao_regs::r1deldly, dramc_ao_regs::rkcfg, mt8173_calib_params::rx_dq_dly, mt8173_calib_params::rx_dqs_dly, setbits32, dramc_ddrphy_regs::tdsel, dramc_ao_regs::test2_3, dramc_ao_regs::test2_4, udelay(), dramc_ao_regs::wodt, write32(), and dramc_ao_regs::zqcs.
Referenced by dfs_init_for_calibration(), and init_dram().
Definition at line 661 of file dramc_pi_basic_api.c.
References ao_regs, ch, clrbits32, ddrphy_regs, dramc_ao_regs::gddr3ctl1, GDDR3CTL1_RDATRST_SHIFT, dramc_ddrphy_regs::phyctl1, PHYCTL1_PHYRST_SHIFT, setbits32, and udelay().
Referenced by dqs_gw_counter_reset(), and perbit_window_cal().
void dramc_pre_init | ( | u32 | channel, |
const struct mt8173_sdram_params * | sdram_params | ||
) |
Definition at line 396 of file dramc_pi_basic_api.c.
References dramc_ao_regs::ac_time_05t, ao_regs, ch, dramc_ao_regs::selph1, dramc_ao_regs::selph10, dramc_ao_regs::selph11, dramc_ao_regs::selph2, dramc_ao_regs::selph3, dramc_ao_regs::selph4, dramc_ao_regs::selph5, dramc_ao_regs::selph6_1, dramc_ao_regs::selph7, dramc_ao_regs::selph8, dramc_ao_regs::selph9, and write32().
Referenced by init_dram().
void dramc_rankinctl_config | ( | u32 | channel, |
const struct mt8173_sdram_params * | sdram_params | ||
) |
Definition at line 426 of file dramc_pi_calibration_api.c.
References ao_regs, ch, clrsetbits32, dramc_ao_regs::dqscal1, dramc_ao_regs::dummy, is_dual_rank(), MIN, opt_gw_coarse_value, dramc_ao_regs::rkcfg, RKCFG_PBREF_DISBYRATE_SHIFT, setbits32, and value.
Referenced by do_calib().
void dramc_runtime_config | ( | u32 | channel, |
const struct mt8173_sdram_params * | sdram_params | ||
) |
Definition at line 680 of file dramc_pi_basic_api.c.
References ao_regs, BIT, ch, CHANNEL_A, clrbits32, dramc_ddrphy_regs::ddrphy_cg_ctrl, ddrphy_regs, die(), dramc_ao_regs::dqscal0, DQSCAL0_STBCALEN_SHIFT, dramc_ddrphy_regs::dqsgctl, dramc_ao_regs::dummy, MHz, dramc_ao_regs::perfctl0, setbits32, and dramc_ao_regs::spcmd.
Referenced by after_calib(), and do_calib().
u8 dramk_calcu_best_dly | ( | u8 | bit, |
struct dqs_perbit_dly * | p, | ||
u8 * | p_max_byte | ||
) |
Definition at line 545 of file dramc_pi_calibration_api.c.
References dqs_perbit_dly::best_dqdly, dqs_perbit_dly::best_dqsdly, dqs_perbit_dly::best_first_dqdly_pass, dqs_perbit_dly::best_first_dqsdly_pass, dqs_perbit_dly::best_last_dqdly_pass, dqs_perbit_dly::best_last_dqsdly_pass, BIOS_ERR, dramc_dbg, and printk.
Referenced by perbit_window_cal().
void dramk_check_dq_win | ( | struct dqs_perbit_dly * | p, |
u8 | dly_step, | ||
u8 | last_step, | ||
u32 | fail_bit | ||
) |
Definition at line 501 of file dramc_pi_calibration_api.c.
References dqs_perbit_dly::best_first_dqdly_pass, dqs_perbit_dly::best_last_dqdly_pass, dqs_perbit_dly::first_dqdly_pass, and dqs_perbit_dly::last_dqdly_pass.
Referenced by perbit_window_cal().
void dramk_check_dqs_win | ( | struct dqs_perbit_dly * | p, |
u8 | dly_step, | ||
u8 | last_step, | ||
u32 | fail_bit | ||
) |
Definition at line 458 of file dramc_pi_calibration_api.c.
References dqs_perbit_dly::best_first_dqsdly_pass, dqs_perbit_dly::best_last_dqsdly_pass, dqs_perbit_dly::first_dqsdly_pass, and dqs_perbit_dly::last_dqsdly_pass.
Referenced by perbit_window_cal().
void dual_rank_rx_datlat_cal | ( | u32 | channel, |
const struct mt8173_sdram_params * | sdram_params | ||
) |
Definition at line 651 of file dramc_pi_calibration_api.c.
References ao_regs, ch, clrbits32, dramc_dbg, MASK_RKCFG_RKSWAP_EN, opt_gw_coarse_value, opt_gw_fine_value, dramc_ao_regs::rkcfg, rx_datlat_cal(), set_dle_factor(), set_gw_coarse_factor(), set_gw_fine_factor(), and setbits32.
Referenced by do_calib().
void dual_rank_rx_dqs_gating_cal | ( | u32 | channel, |
const struct mt8173_sdram_params * | sdram_params | ||
) |
Definition at line 395 of file dramc_pi_calibration_api.c.
References ao_regs, ch, clrbits32, dramc_ao_regs::dqsctl1, DQSCTL1_DQSINCTL_SHIFT, MASK_RKCFG_RKSWAP_EN, opt_gw_coarse_value, opt_gw_fine_value, read32(), dramc_ao_regs::rkcfg, rx_dqs_gating_cal(), set_gw_coarse_factor(), set_gw_coarse_factor_rank1(), set_gw_fine_factor(), and setbits32.
Referenced by do_calib().
|
inline |
Definition at line 24 of file dramc_pi_basic_api.c.
Referenced by do_calib(), dramc_init(), dramc_rankinctl_config(), and set_rank_info_to_conf().
void mem_pll_init | ( | const struct mt8173_sdram_params * | sdram_params | ) |
Definition at line 295 of file dramc_pi_basic_api.c.
References BIOS_DEBUG, ch, CHANNEL_NUM, clrbits32, ddrphy_regs, div2_phase_sync(), mem_pll_init_phase_sync(), mem_pll_init_set_params(), mem_pll_phase_cali(), mem_pll_pre_init(), dramc_ddrphy_regs::mempll, mt_mem_pll_config_post(), mt_mem_pll_config_pre(), mt_mem_pll_mux(), mtk_spm, mtk_spm_regs::power_on_val0, mtk_spm_regs::poweron_config_set, printk, setbits32, SPM_PROJECT_CODE, udelay(), and write32().
Referenced by mt_mem_init().
Definition at line 936 of file dramc_pi_calibration_api.c.
References dqs_perbit_dly::best_dqdly, dqs_perbit_dly::best_dqsdly, dqs_perbit_dly::best_first_dqdly_pass, dqs_perbit_dly::best_first_dqsdly_pass, dqs_perbit_dly::best_last_dqdly_pass, dqs_perbit_dly::best_last_dqsdly_pass, DATA_WIDTH_32BIT, die(), DQ_DATA_WIDTH, DQS_BIT_NUMBER, DQS_NUMBER, dram_k_perbit(), dramc_dbg, dramc_phy_reset(), dramk_calcu_best_dly(), dramk_check_dq_win(), dramk_check_dqs_win(), FIRST_DQ_DELAY, dqs_perbit_dly::first_dqdly_pass, FIRST_DQS_DELAY, dqs_perbit_dly::first_dqsdly_pass, dqs_perbit_dly::last_dqdly_pass, dqs_perbit_dly::last_dqsdly_pass, MAX_DQDLY_TAPS, MAX_RX_DQSDLY_TAPS, MAX_TX_DQSDLY_TAPS, set_dly_factor(), set_rx_best_dly_factor(), set_tx_best_dly_factor(), STAGE_HOLD, STAGE_SETUP, tx_delay_for_wrleveling(), TX_WIN, and type.
Referenced by do_calib().
u8 rx_datlat_cal | ( | u32 | channel, |
u8 | rank, | ||
const struct mt8173_sdram_params * | sdram_params | ||
) |
Definition at line 694 of file dramc_pi_calibration_api.c.
References ao_regs, BIOS_ERR, ch, clrbits32, DEFAULT_TEST2_1_CAL, DEFAULT_TEST2_2_CAL, DLE_TEST_NUM, dramc_dbg, dramc_engine2(), dramc_ao_regs::mckdly, MCKDLY_DQIENLAT_SHIFT, MCKDLY_DQIENQKEND_SHIFT, printk, set_dle_factor(), and TE_OP_WRITE_READ_CHECK.
Referenced by do_calib(), and dual_rank_rx_datlat_cal().
void rx_dqs_gating_cal | ( | u32 | channel, |
u8 | rank, | ||
const struct mt8173_sdram_params * | sdram_params | ||
) |
Definition at line 341 of file dramc_pi_calibration_api.c.
References ao_regs, BIOS_INFO, ch, clrbits32, ddrphy_regs, dqs_gw_coarse_tune_calib(), dqs_gw_counter_reset(), dqs_gw_fine_tune_calib(), dramc_ao_regs::dqscal0, DQSCAL0_STBCALEN_SHIFT, dramc_ao_regs::dqsctl1, DQSCTL1_DQSIENMODE_SHIFT, dramc_ddrphy_regs::dqsgctl, DQSGCTL_DQSGDUALP_SHIFT, dramc_dbg, opt_gw_coarse_value, opt_gw_fine_value, printk, set_gw_coarse_factor(), set_gw_fine_factor(), setbits32, dramc_ao_regs::spcmd, and SPCMD_DQSGCNTEN_SHIFT.
Referenced by do_calib(), and dual_rank_rx_dqs_gating_cal().
void sw_impedance_cal | ( | u32 | channel, |
const struct mt8173_sdram_params * | sdram_params | ||
) |
Definition at line 16 of file dramc_pi_calibration_api.c.
References ao_regs, ch, clrbits32, clrsetbits32, ddrphy_regs, dramc_dbg, dramc_ao_regs::drvctl1, dramc_ddrphy_regs::drvctl1, IMP_CALI_DRVN_SHIFT, IMP_CALI_DRVP_SHIFT, IMP_CALI_EN_SHIFT, IMP_CALI_ENN_SHIFT, IMP_CALI_ENP_SHIFT, dramc_ao_regs::impcal, dramc_ao_regs::iodrv4, dramc_ao_regs::iodrv6, mask, params, and value.
Referenced by do_calib().
Definition at line 740 of file dramc_pi_basic_api.c.
References BIT, ch, CHANNEL_A, CHANNEL_B, ddrphy_regs, mtk_apmixed, dramc_ddrphy_regs::peri, setbits32, val, and write32().
Referenced by do_calib().
Definition at line 722 of file dramc_pi_basic_api.c.
References BIT, ch, CHANNEL_A, CHANNEL_B, clrbits32, ddrphy_regs, mtk_apmixed, and dramc_ddrphy_regs::peri.
Referenced by do_calib().
void tx_delay_for_wrleveling | ( | u32 | channel, |
struct dqs_perbit_dly * | dqdqs_perbit_dly, | ||
u8 * | ave_dqdly_byte, | ||
u8 * | max_dqsdly_byte | ||
) |
Definition at line 745 of file dramc_pi_calibration_api.c.
References dqs_perbit_dly::best_dqdly, BIOS_ERR, DATA_WIDTH_32BIT, DQS_BIT_NUMBER, dramc_dbg, MAX_DQDLY_TAPS, printk, and wrlevel_dqs_dly.
Referenced by perbit_window_cal().
void write_leveling | ( | u32 | channel, |
const struct mt8173_sdram_params * | sdram_params | ||
) |
Definition at line 129 of file dramc_pi_calibration_api.c.
References ch, clrsetbits32, ddrphy_regs, dramc_ddrphy_regs::dqodly, DQS_BIT_NUMBER, DQS_NUMBER, dramc_dbg, MASK_PADCTL2_32BIT, dramc_ddrphy_regs::padctl2, PADCTL2_SHIFT, dramc_ddrphy_regs::padctl3, read32(), val, value, sdram_params::wr_level, write32(), and wrlevel_dqs_dly.
Referenced by do_calib().