diff --git a/common/fdt_wrappers.c b/common/fdt_wrappers.c
index 1a726a8..1715a6f 100644
--- a/common/fdt_wrappers.c
+++ b/common/fdt_wrappers.c
@@ -10,6 +10,7 @@
 #include <debug.h>
 #include <fdt_wrappers.h>
 #include <libfdt.h>
+#include <string.h>
 
 /*
  * Read cells from a given property of the given node. At most 2 cells of the
@@ -62,6 +63,38 @@
 }
 
 /*
+ * Read string from a given property of the given node. Up to 'size - 1'
+ * characters are read, and a NUL terminator is added. Returns 0 on success,
+ * and -1 upon error.
+ */
+int fdtw_read_string(const void *dtb, int node, const char *prop,
+		char *str, size_t size)
+{
+	const char *ptr;
+	size_t len;
+
+	assert(dtb != NULL);
+	assert(node >= 0);
+	assert(prop != NULL);
+	assert(str != NULL);
+	assert(size > 0U);
+
+	ptr = fdt_getprop_namelen(dtb, node, prop, (int)strlen(prop), NULL);
+	if (ptr == NULL) {
+		WARN("Couldn't find property %s in dtb\n", prop);
+		return -1;
+	}
+
+	len = strlcpy(str, ptr, size);
+	if (len >= size) {
+		WARN("String of property %s in dtb has been truncated\n", prop);
+		return -1;
+	}
+
+	return 0;
+}
+
+/*
  * Write cells in place to a given property of the given node. At most 2 cells
  * of the property are written. Returns 0 on success, and -1 upon error.
  */
