ky0ko has uploaded this change for review.

View Change

mtrr.h: refine _POW2_MASK

this patch adjusts _POW2_MASK to work with rom sizes between 64KiB
and 512MiB, additionally fixing incorrectness for sizes 128MiB and
above that previously were present.

Change-Id: I0272c0c43cba44f6fbfb5dc539509b4ed9b92e75
Signed-off-by: ky0ko <ky0ko@disroot.org>
---
M src/include/cpu/x86/mtrr.h
1 file changed, 4 insertions(+), 2 deletions(-)

git pull ssh://review.coreboot.org:29418/coreboot refs/changes/45/44845/1
diff --git a/src/include/cpu/x86/mtrr.h b/src/include/cpu/x86/mtrr.h
index 42964b0..fd4159d 100644
--- a/src/include/cpu/x86/mtrr.h
+++ b/src/include/cpu/x86/mtrr.h
@@ -176,9 +176,11 @@
#endif /* !defined(__ASSEMBLER__) */

/* Align up/down to next power of 2, suitable for assembler
- too. Range of result 256kB to 128MB is good enough here. */
+ too. Range works from 64kB to 512MB. */
#define _POW2_MASK(x) ((x>>1)|(x>>2)|(x>>3)|(x>>4)|(x>>5)| \
- (x>>6)|(x>>7)|(x>>8)|((1<<18)-1))
+ (x>>6)|(x>>7)|(x>>8)|(x>>9)|(x>>10)| \
+ (x>>11)|(x>>12)|(x>>13)|((1<<16)-1))
+
#define _ALIGN_UP_POW2(x) ((x + _POW2_MASK(x)) & ~_POW2_MASK(x))
#define _ALIGN_DOWN_POW2(x) ((x) & ~_POW2_MASK(x))


To view, visit change 44845. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I0272c0c43cba44f6fbfb5dc539509b4ed9b92e75
Gerrit-Change-Number: 44845
Gerrit-PatchSet: 1
Gerrit-Owner: ky0ko <ky0ko@disroot.org>
Gerrit-MessageType: newchange