On Thu, Oct 07, 2010 at 09:16:28AM -0700, Stefan Reinauer wrote:
On 10/7/10 5:58 AM, Kevin O'Connor wrote:
BTW, the list concept doesn't make much sense anyway - at least on Via, there is no need to clear the fixed mtrrs, and you don't need a list to clear the variable mtrrs (a simple iterator would suffice).
The list seemed more comprehensible than writing down linear code. It's simple for the variable mtrrs, but the fixed ones are not linearly spread.
Why do you assume it's not needed to clear the fixed MTRRs on VIA systems? I don't think we should assume they didn't get set to "bad" values by the OS running prior to a reset, for example.
The via code runs with fixed mtrrs disabled in MTRRdefType_MSR. (It writes 0x800 there instead of 0xc00.) Because fixed MTRRs aren't enabled during CAR, they don't need to be cleared in the CAR setup phase.
-Kevin