Patrick Rudolph (siro@das-labor.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/10890
-gerrit
commit 4395d87649780c3534fb5a629662e3d38bd3c2ec Author: Patrick Rudolph siro@das-labor.org Date: Sun Jul 12 17:01:42 2015 +0200
intel raminit: rewrite timB high adjust calculation
Found while doing code review.
Simplify the code by using a loop for positive and negative phase adjustments.
Change-Id: I0980443d0d2815bccef969709fddecc07d61a788 Signed-off-by: Patrick Rudolph siro@das-labor.org --- src/northbridge/intel/sandybridge/raminit_native.c | 23 +++++++++++----------- 1 file changed, 11 insertions(+), 12 deletions(-)
diff --git a/src/northbridge/intel/sandybridge/raminit_native.c b/src/northbridge/intel/sandybridge/raminit_native.c index 850ce93..d56d60d 100644 --- a/src/northbridge/intel/sandybridge/raminit_native.c +++ b/src/northbridge/intel/sandybridge/raminit_native.c @@ -2288,18 +2288,17 @@ static int get_timB_high_adjust(u64 val) if (val == 0xffffffffffffffffLL) return 0;
- if (val >= 0xfffffffffffff000LL) - return 3; - if (val >= 0xfffffffffff00000LL) - return -1; - if (val >= 0xfffffff000000000LL) - return -2; - if (val >= 0xfff0000000000000LL) - return -3; - - for (i = 0; i < 8; i++) - if (val >> (8 * (7 - i) + 4)) - return i; + if (val >= 0xf000000000000000LL) { + /* needs negative adjustment */ + for (i = 0; i < 8; i++) + if (val << (8 * (7 - i) + 4)) + return -i; + } else { + /* needs positive adjustment */ + for (i = 0; i < 8; i++) + if (val >> (8 * (7 - i) + 4)) + return i; + } return 8; }