diff --git a/src/include/lib.h b/src/include/lib.h
index 737ab36..5bcd07d 100644
--- a/src/include/lib.h
+++ b/src/include/lib.h
@@ -44,6 +44,19 @@
 void hexdump(const void *memory, size_t length);
 void hexdump32(char LEVEL, const void *d, size_t len);
 
+/*
+ * hexstrtobin - Turn a string of ASCII hex characters into binary
+ *
+ * @str: String of hex characters to parse
+ * @buf: Buffer to store the resulting bytes into
+ * @len: Maximum length of buffer to fill
+ *
+ * Defined in src/lib/hexstrtobin.c
+ * Ignores non-hex characters in the string.
+ * Returns the number of bytes that have been put in the buffer.
+ */
+size_t hexstrtobin(const char *str, uint8_t *buf, size_t len);
+
 #if !defined(__ROMCC__)
 /* Count Leading Zeroes: clz(0) == 32, clz(0xf) == 28, clz(1 << 31) == 0 */
 static inline int clz(u32 x) { return x ? __builtin_clz(x) : sizeof(x) * 8; }
diff --git a/src/lib/Makefile.inc b/src/lib/Makefile.inc
index 734b517..b446e10 100644
--- a/src/lib/Makefile.inc
+++ b/src/lib/Makefile.inc
@@ -114,6 +114,7 @@
 ramstage-$(CONFIG_COMMON_CBFS_SPI_WRAPPER) += cbfs_spi.c
 ramstage-y += lzma.c lzmadecode.c
 ramstage-y += stack.c
+ramstage-y += hexstrtobin.c
 ramstage-y += wrdd.c
 ramstage-$(CONFIG_CONSOLE_CBMEM) += cbmem_console.c
 ramstage-$(CONFIG_BOOTSPLASH) += jpeg.c
diff --git a/src/lib/hexstrtobin.c b/src/lib/hexstrtobin.c
new file mode 100644
index 0000000..ed2abc4
--- /dev/null
+++ b/src/lib/hexstrtobin.c
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2016 Google Inc.
+ *
+ * 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; version 2 of the License.
+ *
+ * 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.
+ */
+
+#include <lib.h>
+#include <string.h>
+
+size_t hexstrtobin(const char *str, uint8_t *buf, size_t len)
+{
+	size_t count, ptr = 0;
+	uint8_t byte;
+
+	for (byte = count = 0; str && *str; str++) {
+		uint8_t c = *str;
+
+		if (!isxdigit(c))
+			continue;
+		if (isdigit(c))
+			c -= '0';
+		else
+			c = tolower(c) - 'a' + 10;
+
+		byte <<= 4;
+		byte |= c;
+
+		if (++count > 1) {
+			if (ptr >= len)
+				return ptr;
+			buf[ptr++] = byte;
+			byte = count = 0;
+		}
+	}
+
+	return ptr;
+}
