i.mx28 memory autosizing ?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.mx28 memory autosizing ?

1,260 Views
SJA
Contributor II

What is the procedure for DRAM auto-sizing ?

We want to have a single bootstream that supports 64MB, 128MB, 256MB.

So we need to have different settings for DRAM_REG[29] ....

Can I just change DRAM_REG[29] on the fly ??

So I set it for 256MB ... look for pattern wraparound at 64MB and 128MB and

then set DRAM_REG[29] to 64MB setting or 128MB settings or leave it at 256MB

depending on wraparound results ....

Or do I have to do something to shutdown and restart the DRAM controller in order to

change DRAM_REG[29] ?

Labels (1)
0 Kudos
Reply
4 Replies

1,067 Views
igorpadykov
NXP Employee
NXP Employee

Hi Stuart

correct procedure would be restart the DRAM controller

using small subroutine running in iRAM.

Best regards

igor

-----------------------------------------------------------------------------------------------------------------------

Note: If this post answers your question, please click the Correct Answer button. Thank you!

-----------------------------------------------------------------------------------------------------------------------

0 Kudos
Reply

1,067 Views
SJA
Contributor II

What do I need to do to stop the DRAM controller before going through the startup sequence again ???

Here is what we do to startup the DRAM:

        Init_mddr_200MHz();

        value = HW_DRAM_CTL17_RD();
        value &= ~BM_DRAM_CTL17_SREFRESH;
        HW_DRAM_CTL17_WR(value);

        value = HW_DRAM_CTL16_RD();
        value |= BM_DRAM_CTL16_START;
        HW_DRAM_CTL16_WR(value);

        //Wait for DDR ready
        while(!(HW_DRAM_CTL58_RD()&0x100000));

0 Kudos
Reply

1,067 Views
gianlucarenzi71
Contributor II

Hello Stuart!

Did you achieve your goal?

I am in the same situation as you, as we are upgrading various memory sizes (128MB=default, 256M, 512M and 1GB as options) in our iMX28 based boards.

Some memories need to have one CS but different memory layout, some other will have more than one CS and different row and columns, ...

Did you find a suitable solution to cover a wide spread range of memory sizes in bootlets?

0 Kudos
Reply

1,067 Views
igorpadykov
NXP Employee
NXP Employee

one can set START=0 in HW_DRAM_CTL16.

~igor

0 Kudos
Reply