
On 05/27/2010 02:53 PM, Wolfgang Denk wrote:
Dear Scott Wood,
In message20100527190340.GA5915@schlenkerla.am.freescale.net you wrote:
Passing the actual, known size of RAM (why guess when we know?) as "maxsize" should eliminate the machine check problem[1] -- you'd just be using it as a not particularly exhaustive memory tester. I don't see why it should be mandatory.
Typically we chose "maxsize" to b twice the actual possible maximum to allow for real testing.
If you set maxsize beyond what you expect to find, how are you going to constrain it to operating on one bank?
It also doesn't handle non-power-of-two sized memory -- don't rely on the value it returns.
Such configurations are usually set up of from several differently sized banks of memory, and get_ram_size() is always run per bank. So as long as chip manufacturers continue to make RAM chips with power-of-two sizes only, everything should be fine.
So it's not the board code at all that should be calling this, it's the SDRAM code? Which is already in u-boot, and not in this patch (other than some board-specific tweaks)?
[1] It's worse than machine checks, what if some I/O device is mapped directly after RAM? IIRC people have run into this sort of problem doing this type of memory sizing on PCs.
Well, let's call this a bug in setting up the memory map for the system ;-)
Let's not. It can be crowded enough as is, we don't need more restrictions coming from u-boot wanting to do questionable and unnecessary things.
-Scott