lib/fit: support booting initrd placed above 4GiB

Store initrd offset as 64bit integer.

Tested on Cavium CN81XX EVB: The initrd could be loaded when placed
above 4GiB. Previously it failed to find the initrd.

Change-Id: I5d1ae860ae4a4465546bc0ef89937d611d1e56ab
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/28002
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Philipp Deppenwiese <zaolin.daisuki@gmail.com>
diff --git a/src/lib/device_tree.c b/src/lib/device_tree.c
index a905dbf..89387ff 100644
--- a/src/lib/device_tree.c
+++ b/src/lib/device_tree.c
@@ -882,6 +882,22 @@
 }
 
 /*
+ * Add a 64-bit integer property to a node, or update it if it already exists.
+ *
+ * @param node		The device tree node to add to.
+ * @param name		The name of the new property.
+ * @param val		The integer to be stored in the property.
+ */
+void dt_add_u64_prop(struct device_tree_node *node, const char *name, u64 val)
+{
+	u64 *val_ptr = malloc(sizeof(val));
+	if (!val_ptr)
+		return;
+	*val_ptr = htobe64(val);
+	dt_add_bin_prop(node, name, val_ptr, sizeof(*val_ptr));
+}
+
+/*
  * Add a 'reg' address list property to a node, or update it if it exists.
  *
  * @param node		The device tree node to add to.