On Wed, Dec 19, 2012 at 03:17:59PM -0800, H. Peter Anvin wrote: > I presume with "too big" he really means "oddly shaped". Yeah, that's why it could be enlarged a little in order to adjust it to the MTRR scheme. This is what the BKDG says about it: PhysMask and PhysBase are used together to determine whether a target physical-address falls within the specified address range. PhysMask is logically ANDed with PhysBase and separately ANDed with the upper 40 bits of the target physical-address. If the results of the two operations are identical, the target physical-address falls within the specified memory range. The pseudo-code for the operation is: MaskBase = PhysMask AND PhysBase MaskTarget = PhysMask AND Target_Address[51:12] IF MaskBase == MaskTarget target address is in range ELSE target address is not in range And then there are the alignment requirements: * The boundary on which a variable range is aligned must be equal to the range size. For example, a memory range of 16 Mbytes must be aligned on a 16-Mbyte boundary. * The range size must be a power of 2 (2n, 52 > n > 11), with a minimum allowable size of 4 Kbytes. For example, 4 Mbytes and 8 Mbytes are allowable memory range sizes, but 6 Mbytes is not allowable. and then some examples about how to calculate those values. Jacob, if you still have the system, you might try to experiment with that, provided there are some variable MTRRs free, of course. And also provided, there's nothing else in the hw stopping us from doing that. Thanks. -- Regards/Gruss, Boris. Sent from a fat crate under my desk. Formatting is fine. -- -- To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html