Browse Source

fix(imx8m): fix dram retention fsp_table access

The fsp_table access by [i-1] can cause invalid memory access in case of
i=0. This can be the case if no fsp_table is available. Fix this by
adding the idx variable which tracks the correct index.

Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
Change-Id: If2285517eb9fe837f3ad54360307a77a658bf62c
pull/1989/head
Marco Felsch 2 years ago
parent
commit
6c8f523138
  1. 4
      plat/imx/imx8m/ddr/dram.c

4
plat/imx/imx8m/ddr/dram.c

@ -120,6 +120,7 @@ static uint64_t waiting_dvfs(uint32_t id, uint32_t flags,
void dram_info_init(unsigned long dram_timing_base)
{
uint32_t ddrc_mstr, current_fsp;
unsigned int idx = 0;
uint32_t flags = 0;
uint32_t rc;
unsigned int i;
@ -144,11 +145,12 @@ void dram_info_init(unsigned long dram_timing_base)
if (!dram_info.timing_info->fsp_table[i]) {
break;
}
idx = i;
}
dram_info.num_fsp = i;
/* check if has bypass mode support */
if (dram_info.timing_info->fsp_table[i-1] < 666) {
if (dram_info.timing_info->fsp_table[idx] < 666) {
dram_info.bypass_mode = true;
} else {
dram_info.bypass_mode = false;

Loading…
Cancel
Save