summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/FdtParser.c14
-rw-r--r--ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/FdtParser.c14
2 files changed, 12 insertions, 16 deletions
diff --git a/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/FdtParser.c b/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/FdtParser.c
index 46a5fe6409..afdc81a883 100644
--- a/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/FdtParser.c
+++ b/ArmVirtPkg/Library/ArmQemuRelocatablePlatformLib/FdtParser.c
@@ -65,17 +65,15 @@ FindMemnode (
return FALSE;
}
- if (AddressCells == 1) {
- *SystemMemoryBase = fdt32_to_cpu (*Prop);
- } else {
- *SystemMemoryBase = fdt64_to_cpu (*(UINT64 *)Prop);
+ *SystemMemoryBase = fdt32_to_cpu (Prop[0]);
+ if (AddressCells > 1) {
+ *SystemMemoryBase = (*SystemMemoryBase << 32) | fdt32_to_cpu (Prop[1]);
}
Prop += AddressCells;
- if (SizeCells == 1) {
- *SystemMemorySize = fdt32_to_cpu (*Prop);
- } else {
- *SystemMemorySize = fdt64_to_cpu (*(UINT64 *)Prop);
+ *SystemMemorySize = fdt32_to_cpu (Prop[0]);
+ if (SizeCells > 1) {
+ *SystemMemorySize = (*SystemMemorySize << 32) | fdt32_to_cpu (Prop[1]);
}
return TRUE;
diff --git a/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/FdtParser.c b/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/FdtParser.c
index 992932ee97..38fd5d3ed0 100644
--- a/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/FdtParser.c
+++ b/ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/FdtParser.c
@@ -65,17 +65,15 @@ FindMemnode (
return FALSE;
}
- if (AddressCells == 1) {
- *SystemMemoryBase = fdt32_to_cpu (*Prop);
- } else {
- *SystemMemoryBase = fdt64_to_cpu (*(UINT64 *)Prop);
+ *SystemMemoryBase = fdt32_to_cpu (Prop[0]);
+ if (AddressCells > 1) {
+ *SystemMemoryBase = (*SystemMemoryBase << 32) | fdt32_to_cpu (Prop[1]);
}
Prop += AddressCells;
- if (SizeCells == 1) {
- *SystemMemorySize = fdt32_to_cpu (*Prop);
- } else {
- *SystemMemorySize = fdt64_to_cpu (*(UINT64 *)Prop);
+ *SystemMemorySize = fdt32_to_cpu (Prop[0]);
+ if (SizeCells > 1) {
+ *SystemMemorySize = (*SystemMemorySize << 32) | fdt32_to_cpu (Prop[1]);
}
return TRUE;