Tool/software:
Hi TI experts,
Are these the steps to reset the DDR power supply(ddr_Reset func)?
I am working on compatibility with different DDRs on SBL. When I compile different SBLs using different DDR configurations, executing memtester is normal; After successfully identifying different DDRs through the MR register in sbl, I found that memtester would fail.
I have also provided modifications for DDR compatibility, please help to check them as well.
static int32_t ddr_Reset(void)
{
Bootloader_profileAddProfilePoint("Resetting DDRSS 0721——2...\n");
*(volatile unsigned int*)(0x400B20) = (*(volatile unsigned int*)(0x400B20) & 0xFFFFFF00) | 0x1;
*(volatile unsigned int*)(0x400120) = 0x1;
while(*(volatile unsigned int*)(0x400128) != 0);
*(volatile unsigned int*)(0x400B24) = (*(volatile unsigned int*)(0x400B24) & 0xFFFFFF00) | 0x1;
*(volatile unsigned int*)(0x400120) = 0x1;
while(*(volatile unsigned int*)(0x400128) != 0);
*(volatile unsigned int*)(0x400B28) = (*(volatile unsigned int*)(0x400B28) & 0xFFFFFF00) | 0x1;
*(volatile unsigned int*)(0x400120) = 0x1;
while(*(volatile unsigned int*)(0x400128) != 0);
*(volatile unsigned int*)(0x400B20) = (*(volatile unsigned int*)(0x400B20) & 0xFFFFFF00) | 0x3;
*(volatile unsigned int*)(0x400120) = 0x1;
while(*(volatile unsigned int*)(0x400128) != 0);
*(volatile unsigned int*)(0x400B24) = (*(volatile unsigned int*)(0x400B24) & 0xFFFFFF00) | 0x3;
*(volatile unsigned int*)(0x400120) = 0x1;
while(*(volatile unsigned int*)(0x400128) != 0);
*(volatile unsigned int*)(0x400B28) = (*(volatile unsigned int*)(0x400B28) & 0xFFFFFF00) | 0x3;
*(volatile unsigned int*)(0x400120) = 0x1;
while(*(volatile unsigned int*)(0x400128) != 0);
return SystemP_SUCCESS;
}

