On 06.09.2014 00:19, ron minnich wrote:
I don't think it's random at all. Vladimir can confirm, but if he is caching the RAM parameters, then this 'solution' will work for you until the next time you reflash coreboot, or change your dram type, at which point it will stop working.
Nehalem code discards cache if there is any mismatch between cache and modules. There are 2 techniques in use: 1) If SPD mismatches, cache is discarded, so plugging new module will discard cache. 2) Series of witnesses ensure that cache is only used if full algorithm would yield the same result. E.g. if the result is a middle of timing segment, then it saves the ends of segments and checks on next boot that ends are the same. So even reseating the modules is likely to cause cache to be discarded.
I think that his problem is either: 1) Badly seated modules 2) Only one permutation fails. 3) Code bug triggered by specific insertion of the said module Since I've spent countless hours will all kinds of modules inserted and reinserted on nehalem and the only bug I'm aware of is triggered by having over 8G (maximum for nehalem) worth of RAM which causes die() instead of proper ignore of extra RAM, without proof to contrary I'd guess 1 is the case.