Having looked into this further, I find that adding the kernel boot parameter "enable_mtrr_cleanup" does exactly what I'd done in replacing the 4GB entry, and for the same purpose (opening up a range where a new write-combining entry can go). Plus, it's a general algorithm, not something specific to this one motherboard. The sanitizer can be selected by default when compiling the kernel (CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1), but Ubuntu doesn't do so.
it seems that the kernel developers are moving towards using PAT, rather than MTRRs, for the write-combining regions; but the Ubuntu kernel doesn't have PAT enabled.
So people who are getting the "write error: invalid argument" message might try adding that boot parameter.
Having looked into this further, I find that adding the kernel boot parameter "enable_ mtrr_cleanup" does exactly what I'd done in replacing the 4GB entry, and for the same purpose (opening up a range where a new write-combining entry can go). Plus, it's a general algorithm, not something specific to this one motherboard. The sanitizer can be selected by default when compiling the kernel (CONFIG_ MTRR_SANITIZER_ ENABLE_ DEFAULT= 1), but Ubuntu doesn't do so.
Looking at this thread: lkml.org/ lkml/2008/ 4/28/52
http://
it seems that the kernel developers are moving towards using PAT, rather than MTRRs, for the write-combining regions; but the Ubuntu kernel doesn't have PAT enabled.
So people who are getting the "write error: invalid argument" message might try adding that boot parameter.