[coreboot] Rev 4099+ Broken Tree?

ron minnich rminnich at gmail.com
Fri Apr 24 20:07:04 CEST 2009


On Fri, Apr 24, 2009 at 10:58 AM, Peter Stuge <peter at stuge.se> wrote:
> Ward Vandewege wrote:
>> Confirmed, reverting that hunk fixes the problem for me.
>
> Oops.
>
> So does ECC always have to be scrubbed going out of self refresh?
> That seems bad.

well, were these failures occuring from a resume or cold boot?

If we're doing a cold boot and not clearing memory (i.e. not scrubbing
ECC tags), that may be trouble. I get the impression from this patch
that
that is what we are doing.

The safest way to scrub ECC, if you don't know if you are resuming or
cold booting, is to read the memory and write it back. Even if the
memory is
garbage, the ECC tags will end up with a valid value. This is slower however.

We've always done the clear_memory because we did not have resume. I
think having resume is going to affect every cpu type.

But, do we know if it is a resume? Maybe we should have this kind of thing:
 if (is_resume()) /* or whatever it's called */
       clear_memory( _RAMBASE,  (CONFIG_LB_MEM_TOPK << 10) -  _RAMBASE
- DCACHE_RAM_SIZE);
    else
       clear_memory(0,  ((CONFIG_LB_MEM_TOPK<<10) - DCACHE_RAM_SIZE));

hmm, did I get that backwards? Anyway, hope this makes  sense.

ron




More information about the coreboot mailing list