diff --git a/src/include/lib.h b/src/include/lib.h
index 2f27149..db8f42d 100644
--- a/src/include/lib.h
+++ b/src/include/lib.h
@@ -55,4 +55,7 @@
 void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx);
 #endif
 
+/* Defined in src/lib/hexdump.c */
+void hexdump(unsigned long memory, int length);
+
 #endif /* __LIB_H__ */
diff --git a/src/lib/Makefile.inc b/src/lib/Makefile.inc
index 92ec663..b09dace 100644
--- a/src/lib/Makefile.inc
+++ b/src/lib/Makefile.inc
@@ -113,6 +113,9 @@
 endif # CONFIG_DYNAMIC_CBMEM
 ramstage-y += cbmem_info.c
 
+ramstage-y += hexdump.c
+romstage-y += hexdump.c
+
 ramstage-$(CONFIG_CONSOLE_NE2K) += ne2k.c
 
 ifneq ($(CONFIG_HAVE_ARCH_MEMSET),y)
diff --git a/src/lib/hexdump.c b/src/lib/hexdump.c
new file mode 100644
index 0000000..d24ae77
--- /dev/null
+++ b/src/lib/hexdump.c
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2013 Google Inc.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but without any warranty; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <console/console.h>
+#include <lib.h>
+
+static int isprint(int c)
+{
+	return (c >= 32 && c <= 126);
+}
+
+void hexdump(unsigned long memory, int length)
+{
+        int i;
+        uint8_t *m;
+        int all_zero = 0;
+
+        m = (uint8_t *)memory;
+
+        for (i = 0; i < length; i += 16) {
+                int j;
+
+                all_zero++;
+                for (j = 0; j < 16; j++) {
+                        if(m[i+j] != 0) {
+                                all_zero = 0;
+                                break;
+                        }
+                }
+
+                if (all_zero < 2) {
+                        printk(BIOS_DEBUG, "%08lx:", memory + i);
+                        for (j = 0; j < 16; j++)
+                                printk(BIOS_DEBUG, " %02x", m[i+j]);
+                        printk(BIOS_DEBUG, "  ");
+                        for (j = 0; j < 16; j++)
+                                printk(BIOS_DEBUG, "%c",
+					isprint(m[i+j]) ? m[i+j] : '.');
+                        printk(BIOS_DEBUG, "\n");
+                } else if (all_zero == 2) {
+                        printk(BIOS_DEBUG, "...\n");
+                }
+        }
+}
+
+
