Lines Matching refs:para
27 static void mctl_set_bit_delays(struct dram_para *para)
37 writel(DXBDLR_WRITE_DELAY(para->dx_write_delays[i][j]) |
38 DXBDLR_READ_DELAY(para->dx_read_delays[i][j]),
42 writel(ACBDLR_WRITE_DELAY(para->ac_delays[i]),
267 static void mctl_h3_zq_calibration_quirk(struct dram_para *para)
334 static void mctl_set_cr(uint16_t socid, struct dram_para *para)
349 (para->bank_bits == 3 ? MCTL_CR_EIGHT_BANKS : MCTL_CR_FOUR_BANKS) |
350 MCTL_CR_BUS_FULL_WIDTH(para->bus_full_width) |
351 (para->dual_rank ? MCTL_CR_DUAL_RANK : MCTL_CR_SINGLE_RANK) |
352 MCTL_CR_PAGE_SIZE(para->page_size) |
353 MCTL_CR_ROW_BITS(para->row_bits), &mctl_com->cr);
356 if (para->dual_rank)
364 static void mctl_sys_init(uint16_t socid, struct dram_para *para)
419 static int mctl_channel_init(uint16_t socid, struct dram_para *para)
428 mctl_set_cr(socid, para);
429 mctl_set_timing_params(socid, para);
488 if (!para->bus_full_width) {
501 (para->dual_rank ? 0x3 : 0x1) << 24);
503 mctl_set_bit_delays(para);
507 mctl_h3_zq_calibration_quirk(para);
533 para->dual_rank = 0;
542 para->bus_full_width = 0;
547 para->bus_full_width = 0;
551 mctl_set_cr(socid, para);
584 static void mctl_auto_detect_dram_size(uint16_t socid, struct dram_para *para)
587 para->page_size = 512;
588 para->row_bits = 16;
589 para->bank_bits = 2;
590 mctl_set_cr(socid, para);
592 for (para->row_bits = 11; para->row_bits < 16; para->row_bits++)
593 if (mctl_mem_matches((1 << (para->row_bits + para->bank_bits)) * para->page_size))
597 para->bank_bits = 3;
598 mctl_set_cr(socid, para);
600 for (para->bank_bits = 2; para->bank_bits < 3; para->bank_bits++)
601 if (mctl_mem_matches((1 << para->bank_bits) * para->page_size))
605 para->page_size = 8192;
606 mctl_set_cr(socid, para);
608 for (para->page_size = 512; para->page_size < 8192; para->page_size *= 2)
609 if (mctl_mem_matches(para->page_size))
691 struct dram_para para = {
726 para.dual_rank = 0;
736 mctl_sys_init(socid, ¶);
737 if (mctl_channel_init(socid, ¶))
740 if (para.dual_rank)
762 mctl_auto_detect_dram_size(socid, ¶);
763 mctl_set_cr(socid, ¶);
765 return (1UL << (para.row_bits + para.bank_bits)) * para.page_size *
766 (para.dual_rank ? 2 : 1);