
Dear Scott Wood,
In message 20100527190340.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.
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.
[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 ;-)
Best regards,
Wolfgang Denk