diff --git a/src/northbridge/intel/sandybridge/raminit_common.c b/src/northbridge/intel/sandybridge/raminit_common.c
index a21caea..c705f2a 100644
--- a/src/northbridge/intel/sandybridge/raminit_common.c
+++ b/src/northbridge/intel/sandybridge/raminit_common.c
@@ -1143,7 +1143,7 @@
 		if (upperA[lane] < rn.middle)
 			upperA[lane] += 128;
 
-		printram("rcven: %d, %d, %d: 0x%02x-0x%02x-0x%02x\n",
+		printram("rcven: %d, %d, %d: % 4d-% 4d-% 4d\n",
 			 channel, slotrank, lane, rn.start, rn.middle, rn.end);
 	}
 }
@@ -1189,7 +1189,7 @@
 		ctrl->timings[channel][slotrank].lanes[lane].rcven =
 			(last_zero + first_all) / 2 + upperA[lane];
 
-		printram("Aval: %d, %d, %d: %x\n", channel, slotrank,
+		printram("Aval: %d, %d, %d: % 4d\n", channel, slotrank,
 			lane, ctrl->timings[channel][slotrank].lanes[lane].rcven);
 	}
 }
@@ -1405,13 +1405,13 @@
 
 		align_rt_io_latency(ctrl, channel, slotrank, prev);
 
-		printram("4/8: %d, %d, %x, %x\n", channel, slotrank,
+		printram("4/8: %d, %d, % 4d, % 4d\n", channel, slotrank,
 		       ctrl->timings[channel][slotrank].roundtrip_latency,
 		       ctrl->timings[channel][slotrank].io_latency);
 
 		printram("final results:\n");
 		FOR_ALL_LANES
-			printram("Aval: %d, %d, %d: %x\n", channel, slotrank, lane,
+			printram("Aval: %d, %d, %d: % 4d\n", channel, slotrank, lane,
 			    ctrl->timings[channel][slotrank].lanes[lane].rcven);
 
 		MCHBAR32(GDCRTRAININGMOD) = 0;
@@ -1514,7 +1514,7 @@
 			}
 		}
 		ctrl->timings[channel][slotrank].lanes[lane].tx_dq = rn.middle;
-		printram("tx_dq: %d, %d, %d: 0x%02x-0x%02x-0x%02x\n",
+		printram("tx_dq: %d, %d, %d: % 4d-% 4d-% 4d\n",
 			channel, slotrank, lane, rn.start, rn.middle, rn.end);
 	}
 	return 0;
@@ -1639,7 +1639,7 @@
 
 			return MAKE_ERR;
 		}
-		printram("tx_dqs: %d, %d, %d: 0x%02x-0x%02x-0x%02x\n",
+		printram("tx_dqs: %d, %d, %d: % 4d-% 4d-% 4d\n",
 				 channel, slotrank, lane, rn.start, rn.middle, rn.end);
 	}
 	return 0;
@@ -1771,7 +1771,7 @@
 				get_dqs_flyby_adjust(res) * 64;
 
 			printram("High adjust %d:%016llx\n", lane, res);
-			printram("Bval+: %d, %d, %d, %x -> %x\n", channel, slotrank, lane,
+			printram("Bval+: %d, %d, %d, % 4d -> % 4d\n", channel, slotrank, lane,
 				old, ctrl->timings[channel][slotrank].lanes[lane].tx_dqs);
 		}
 	}
@@ -2073,7 +2073,7 @@
 		struct run rn = get_longest_zero_run(stat[slotrank], CT_PI_LENGTH - 1);
 
 		ctrl->timings[channel][slotrank].pi_coding = rn.middle + CT_MIN_PI;
-		printram("cmd_stretch: %d, %d: 0x%02x-0x%02x-0x%02x\n",
+		printram("cmd_stretch: %d, %d: % 4d-% 4d-% 4d\n",
 				 channel, slotrank, rn.start, rn.middle, rn.end);
 
 		if (rn.all || rn.length < MIN_C320C_LEN) {
@@ -2184,7 +2184,7 @@
 			       slotrank, lane);
 			return MAKE_ERR;
 		}
-		printram("eval %d, %d, %d: %02x\n", channel, slotrank, lane, edges[lane]);
+		printram("eval %d, %d, %d: % 4d\n", channel, slotrank, lane, edges[lane]);
 	}
 	return 0;
 }
@@ -2370,8 +2370,8 @@
 
 				rn = get_longest_zero_run(stats, MAX_EDGE_TIMING + 1);
 
-				printram("edges: %d, %d, %d: 0x%02x-0x%02x-0x%02x, "
-					 "0x%02x-0x%02x\n", channel, slotrank, i, rn.start,
+				printram("edges: %d, %d, %d: % 4d-% 4d-% 4d, "
+					 "% 4d-% 4d\n", channel, slotrank, i, rn.start,
 					 rn.middle, rn.end, rn.start + ctrl->edge_offset[i],
 					 rn.end - ctrl->edge_offset[i]);
 
@@ -2532,8 +2532,8 @@
 							return MAKE_ERR;
 						}
 						printram("tx_dq: %d, %d, %d: "
-							 "0x%02x-0x%02x-0x%02x, "
-							 "0x%02x-0x%02x\n", channel, slotrank,
+							 "% 4d-% 4d-% 4d, "
+							 "% 4d-% 4d\n", channel, slotrank,
 							 i, rn.start, rn.middle, rn.end,
 							 rn.start + ctrl->tx_dq_offset[i],
 							 rn.end   - ctrl->tx_dq_offset[i]);
@@ -2564,7 +2564,7 @@
 	printram("CPB\n");
 
 	FOR_ALL_CHANNELS FOR_ALL_POPULATED_RANKS FOR_ALL_LANES {
-		printram("tx_dq %d, %d, %d: %x\n", channel, slotrank, lane,
+		printram("tx_dq %d, %d, %d: % 4d\n", channel, slotrank, lane,
 		       (lower[channel][slotrank][lane] +
 			upper[channel][slotrank][lane]) / 2);
 
