
On Fri, Jan 31, 2014 at 6:17 AM, Tom Rini trini@ti.com wrote:
On 01/30/2014 06:05 PM, Darwin Rambo wrote:
We tried using this on our reference board and it hangs accessing memory regions that are not populated. Our memory controller doesn't appear to properly support accessing regions that are not backed by physical sdram. So I think it's best to keep this code as is and consider this approach for future designs.
Wait, what did you do? get_ram_size(base, max) must work and return CONFIG_SYS_SDRAM_SIZE, or you haven't properly configured your controller (as get_ram_size just pokes parts of the specified range).
Tom,
In my experience, there are three general ways memory controllers behave when an access is made to an address that could be backed by RAM but isn't on a particular board.
1. All reads return a fixed pattern and writes are ignored 2. A bus error is triggered that the CPU sees as a data abort 3. No response to the transaction so the bus and CPU lock up
I believe the Broadcom memory controller can only behave in the third, least desirable way.
Thanks, Tim Kryger