Merge https://gitlab.denx.de/u-boot/custodians/u-boot-x86

- dm: core: Correct low cell in ofnode_read_pci_addr()
- dm: core: Correct bad cast in ofnode_get_addr_size_index()
diff --git a/drivers/core/ofnode.c b/drivers/core/ofnode.c
index 7eca00c..297f0a0 100644
--- a/drivers/core/ofnode.c
+++ b/drivers/core/ofnode.c
@@ -261,12 +261,15 @@
 
 	if (ofnode_is_np(node)) {
 		const __be32 *prop_val;
+		u64 size64;
 		uint flags;
 
-		prop_val = of_get_address(ofnode_to_np(node), index,
-					  (u64 *)size, &flags);
+		prop_val = of_get_address(ofnode_to_np(node), index, &size64,
+					  &flags);
 		if (!prop_val)
 			return FDT_ADDR_T_NONE;
+		if (size)
+			*size = size64;
 
 		ns = of_n_size_cells(ofnode_to_np(node));
 
@@ -617,7 +620,7 @@
 			if ((fdt32_to_cpu(*cell) & type) == type) {
 				addr->phys_hi = fdt32_to_cpu(cell[0]);
 				addr->phys_mid = fdt32_to_cpu(cell[1]);
-				addr->phys_lo = fdt32_to_cpu(cell[1]);
+				addr->phys_lo = fdt32_to_cpu(cell[2]);
 				break;
 			}
 
diff --git a/lib/fdtdec.c b/lib/fdtdec.c
index 74525c8..74430c8 100644
--- a/lib/fdtdec.c
+++ b/lib/fdtdec.c
@@ -217,7 +217,7 @@
 			if ((fdt32_to_cpu(*cell) & type) == type) {
 				addr->phys_hi = fdt32_to_cpu(cell[0]);
 				addr->phys_mid = fdt32_to_cpu(cell[1]);
-				addr->phys_lo = fdt32_to_cpu(cell[1]);
+				addr->phys_lo = fdt32_to_cpu(cell[2]);
 				break;
 			}