The common mtrr registers are separated into their own macros. For instance, check out the AMD car code. AMD has additional mtrr registers that are used. There is an AMD_MTRR_MSRS_TABLE_ENTRIES_ASM as a result. Is this not enough to separate the vendors?
Or is your assertion that the values in X86_MTRR_MSRS_TABLE_ENTRIES_ASM can vary?
Thanks, wt
On Tue, Oct 5, 2010 at 3:18 PM, ron minnich rminnich@gmail.com wrote:
It's proven dangerous in the past to cross mtrr settings across vendors.
Which is what you are doing. Then somebody patches, e.g., cpu/x86/mtrr.h for some fix to via, and we find out a year later it is not right for some flavor of AMD. MTRRs have been a rolling headache for 10 years now.
Sure they should all be the same. Sometimes there are weird issues.
So what I'd prefer, personally: leave the settings in each vendor file: amd, via, whatever, don't make the common settings in cpu/x86/mtrr.h. But use your nice macros to set those up.
ron