18 for (
unsigned int i = 0; i <
length; i++) {
62 .post_ssq_wait = post,
91 .post_ssq_wait = post,
109 int channel,
int slotrank,
u32 tMOD,
u32 loops,
u32 gap,
u32 loops2,
u32 post2)
126 .post_ssq_wait = tMOD,
143 .cmd_executions = loops,
144 .cmd_delay_gap = gap,
162 .cmd_executions = loops2,
164 .post_ssq_wait = post2,
187 .post_ssq_wait = tMOD,
213 .post_ssq_wait = ctrl->
tRP,
234 .cmd_delay_gap =
MAX(ctrl->
tRRD, (ctrl->
tFAW >> 2) + 1),
235 .post_ssq_wait = ctrl->
CAS,
256 .cmd_executions = 500,
258 .post_ssq_wait =
MAX(ctrl->
tRTP, 8),
281 .post_ssq_wait = ctrl->
tRP,
302 const u32 tWLMRD = 40;
314 .post_ssq_wait = tWLMRD,
333 .post_ssq_wait = ctrl->
CWL + ctrl->
tWLO,
352 .post_ssq_wait = ctrl->
CAS + 38,
371 .post_ssq_wait = ctrl->
tMOD,
375 .address = mr1reg | 1 << 12,
396 .cmd_executions = loops0,
397 .cmd_delay_gap = gap0,
398 .post_ssq_wait = ctrl->
tRCD,
408 .inc_bank = loops0 == 1 ? 0 : 1,
409 .addr_wrap = loops0 == 1 ? 0 : 18,
420 .cmd_delay_gap = gap1,
441 .cmd_executions = loops2,
466 .post_ssq_wait = ctrl->
CWL + ctrl->
tWTR + 5,
495 .cmd_delay_gap =
MAX(ctrl->
tRRD, (ctrl->
tFAW >> 2) + 1),
496 .post_ssq_wait = ctrl->
tRCD,
517 .cmd_executions = 32,
519 .post_ssq_wait = ctrl->
CWL + ctrl->
tWTR + 8,
542 .cmd_executions = 32,
544 .post_ssq_wait =
MAX(ctrl->
tRTP, 8),
597 .cmd_delay_gap =
MAX(ctrl->
tRRD, (ctrl->
tFAW >> 2) + 1),
598 .post_ssq_wait = ctrl->
tRCD,
619 .cmd_executions = 32,
621 .post_ssq_wait = ctrl->
CWL + ctrl->
tWTR + 8,
642 .cmd_executions = 32,
644 .post_ssq_wait =
MAX(ctrl->
tRTP, 8),
667 .post_ssq_wait = ctrl->
tRP,
692 .cmd_delay_gap =
MAX((ctrl->
tFAW >> 2) + 1, ctrl->
tRRD),
693 .post_ssq_wait = ctrl->
tRCD,
714 .cmd_executions = 480,
716 .post_ssq_wait = ctrl->
tWTR + ctrl->
CWL + 8,
737 .cmd_executions = 480,
739 .post_ssq_wait =
MAX(ctrl->
tRTP, 8),
762 .post_ssq_wait = ctrl->
tRP,
809 .cmd_executions = 100,
832 .cmd_executions = 100,
static __always_inline void mchbar_write32(const uintptr_t offset, const uint32_t value)
static __always_inline uint32_t mchbar_read32(const uintptr_t offset)
static struct dramc_channel const ch[2]
void iosav_write_prea_sequence(int channel, int slotrank, u32 post, u32 wrap)
void iosav_run_queue(const int ch, const u8 loops, const u8 as_timer)
void iosav_write_aggressive_write_read_sequence(ramctr_timing *ctrl, int channel, int slotrank)
void iosav_write_command_training_sequence(ramctr_timing *ctrl, int channel, int slotrank, unsigned int address)
void iosav_write_memory_test_sequence(ramctr_timing *ctrl, int channel, int slotrank)
void iosav_write_read_mpr_sequence(int channel, int slotrank, u32 tMOD, u32 loops, u32 gap, u32 loops2, u32 post2)
static unsigned int ssq_count
void iosav_write_zqcs_sequence(int channel, int slotrank, u32 gap, u32 post, u32 wrap)
void iosav_write_misc_write_sequence(ramctr_timing *ctrl, int channel, int slotrank, u32 gap0, u32 loops0, u32 gap1, u32 loops2, u32 wrap2)
void iosav_run_once_and_wait(const int ch)
void iosav_write_prea_act_read_sequence(ramctr_timing *ctrl, int channel, int slotrank)
void wait_for_iosav(int channel)
void iosav_write_sequence(const int ch, const struct iosav_ssq *seq, const unsigned int length)
void iosav_write_data_write_sequence(ramctr_timing *ctrl, int channel, int slotrank)
void iosav_write_jedec_write_leveling_sequence(ramctr_timing *ctrl, int channel, int slotrank, int bank, u32 mr1reg)
#define IOSAV_n_ADDR_UPDATE_ch(ch, y)
#define IOSAV_n_SUBSEQ_CTRL_ch(ch, y)
#define IOSAV_n_SP_CMD_ADDR_ch(ch, y)
#define IOSAV_SEQ_CTL_ch(ch)
#define IOSAV_STATUS_ch(ch)
#define IOSAV_n_SP_CMD_CTRL_ch(ch, y)
union iosav_ssq::@334 sp_cmd_ctrl