Fix bug of get_addr() in fdt_decode.c.

The original description is to match the field holding "one address with
no trailing data". So the if condition should be equal length:
  if (cell && len != sizeof(addr_t))

But it still worked fine except the lcd frame-buffer value because all
other fields are somethings like: reg = <0x70006040 0x40>, not exactly one
address.

So this CL fixed the matching to either one address or two addresses.

BUG=chrome-os-partner:5338
TEST=build without error and manually print the frame-buffer value to verify.

Change-Id: I7a1a64feafc4e883f23044c1d04da09b2122ff40
diff --git a/common/fdt_decode.c b/common/fdt_decode.c
index 960a2e8..57ae9ae 100644
--- a/common/fdt_decode.c
+++ b/common/fdt_decode.c
@@ -66,8 +66,8 @@
 
 /**
  * Look up an address property in a node and return it as an address.
- * The property must hold exactly one address with no trailing data.
- * This is only tested on 32-bit machines.
+ * The property must hold either one address with no trailing data or
+ * one address with a length. This is only tested on 32-bit machines.
  *
  * @param blob	FDT blob
  * @param node	node to examine
@@ -80,7 +80,7 @@
 	int len;
 
 	cell = fdt_getprop(blob, node, prop_name, &len);
-	if (cell && len != sizeof(addr_t))
+	if (cell && (len == sizeof(addr_t) || len == sizeof(addr_t) * 2))
 		return addr_to_cpu(*cell);
 	return ADDR_T_NONE;
 }