Software Archive
Read-only legacy content
17061 Discussions

MTRR Configuration

Embleton__Shawn
Beginner
608 Views

I'm looking at the MTRR configuration on an Intel NUC8i3BEH and I am confused. As an example consider the following MTRR:

PHYSBASE7    0x40_0000_0001  -  0100 0000 0000 0000 0000 0000 0000 0000 0000 0001
PHYSMASK7    0x60_0000_0800  -  0110 0000 0000 0000 0000 0000 0000 0000 0000 0000

These values are the same from within the UEFI environment as they are from within a booted Windows OS.

Firstly, why is this register mapping non-existent memory starting at 256 GiB? The system only supports 32 GiB.

I now understand this memory to be the GMADR range. This seems to be a departure from earlier Intel boards where the range was much closer to TOUUD. I'm still not sure why the range is so large as this processor seems to be limited to a 4GiB graphics memory aperture in function 0 and trusted space (which is not supported on this processor).

Perhaps they are trying to homogenize the BIOS across multiple processor families but that seems like a lot of wasted physical addressing bits?

Secondly, why is the MSB (bit 39) not set in the MASK register as this processor supports 39 bit physical addressing?

Secondly, why is the MSB (bit 39) set in the MASK register? The address 0x5F_FFFF_FFFF & MASK yields the same result as the BASE & MASK yet Linux seems to report the size as 128GiB rather than 384GiB.

I consider the second issue to be of larger importance.

Can anyone shed any light on these issues for me?

0 Kudos
0 Replies
Reply