diff options
author | Nico Huber <nico.h@gmx.de> | 2017-10-07 13:40:19 +0200 |
---|---|---|
committer | Aaron Durbin <adurbin@chromium.org> | 2018-04-09 20:38:35 +0000 |
commit | bd5fb66d960a6fe9bc16fad4571110001a4fc5bf (patch) | |
tree | 95a3dc7f4b1b8e68fb6d58205eab4aae74c931b4 /src/superio/winbond | |
parent | 42ac9773334e4b3fb29053802bea7288cecf138c (diff) |
cpu/x86/mtrr: Optimize hole carving strategy
For WB ranges with unaligned end, we try to align the range up and
carve a hole out of it which might reduce MTRR usage. Instead of
trying an arbitrary alignment, we try all and choose an optimal
one.
Also, restructure the cases when we try to find a hole. Which leads
us to the following three:
1. WB range is last in address space:
Aligning up, up to the next power of 2, may gain us something.
2. The next range is of type UC:
We may align up, up to the _end_ of the next range. If there
is a gap between the current and the next range, it would
have been covered by the default type UC anyway.
3. The next range is not of type UC:
We may align up, up to the _base_ of the next range. This is
the end of the gap, if there is one.
Change-Id: Iefb064ce8c4f293490a19dd46054b966c63bde44
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/21915
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Diffstat (limited to 'src/superio/winbond')
0 files changed, 0 insertions, 0 deletions