summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHeyi Guo <heyi.guo@linaro.org>2015-05-27 15:11:19 +0000
committeroliviermartin <oliviermartin@Edk2>2015-05-27 15:11:19 +0000
commit9507640c625d31b4ce3e5b45d8db58151b781dcb (patch)
tree3ec5ea8b2ebfa257916e0be3a4ae5420ae890a8d
parent829ea9b2dd8795da26729b4cd192e3e907725809 (diff)
downloadedk2-9507640c625d31b4ce3e5b45d8db58151b781dcb.tar.gz
edk2-9507640c625d31b4ce3e5b45d8db58151b781dcb.tar.bz2
edk2-9507640c625d31b4ce3e5b45d8db58151b781dcb.zip
EmbeddedPkg: Fix Ebl dumpgcd bug with memory type and IO type
1. Data type for GcdMemoryType and GcdIoType is enumeration type rather than bit field, so we need to use strict equation "==" instead of bit-and "&"; 2. Testing for GcdIoType should use EfiGcdIoType*** constants rather than EfiGcdMemoryType***; 3. As we are going to use strict equation, it is clearer to use switch-case than if-else. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Heyi Guo <heyi.guo@linaro.org> Reviewed-by: Olivier Martin <Olivier.Martin@arm.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17527 6f19259b-4bc3-4df7-8a09-765794883524
-rw-r--r--ArmPlatformPkg/Library/EblCmdLib/EblCmdLib.c31
1 files changed, 24 insertions, 7 deletions
diff --git a/ArmPlatformPkg/Library/EblCmdLib/EblCmdLib.c b/ArmPlatformPkg/Library/EblCmdLib/EblCmdLib.c
index 899991062f..4a5f2be394 100644
--- a/ArmPlatformPkg/Library/EblCmdLib/EblCmdLib.c
+++ b/ArmPlatformPkg/Library/EblCmdLib/EblCmdLib.c
@@ -325,14 +325,23 @@ EblDumpGcd (
if (MemorySpaceMap[i].Attributes & EFI_MEMORY_XP)
AsciiPrint (" MEM_XP");
- if (MemorySpaceMap[i].GcdMemoryType & EfiGcdMemoryTypeNonExistent)
+ switch (MemorySpaceMap[i].GcdMemoryType) {
+ case EfiGcdMemoryTypeNonExistent:
AsciiPrint (" TYPE_NONEXISTENT");
- if (MemorySpaceMap[i].GcdMemoryType & EfiGcdMemoryTypeReserved)
+ break;
+ case EfiGcdMemoryTypeReserved:
AsciiPrint (" TYPE_RESERVED");
- if (MemorySpaceMap[i].GcdMemoryType & EfiGcdMemoryTypeSystemMemory)
+ break;
+ case EfiGcdMemoryTypeSystemMemory:
AsciiPrint (" TYPE_SYSMEM");
- if (MemorySpaceMap[i].GcdMemoryType & EfiGcdMemoryTypeMemoryMappedIo)
+ break;
+ case EfiGcdMemoryTypeMemoryMappedIo:
AsciiPrint (" TYPE_MEMMAP");
+ break;
+ default:
+ AsciiPrint (" TYPE_UNKNOWN");
+ break;
+ }
AsciiPrint ("\n");
}
@@ -347,12 +356,20 @@ EblDumpGcd (
AsciiPrint ("IO %08lx - %08lx",IoSpaceMap[i].BaseAddress,IoSpaceMap[i].BaseAddress+IoSpaceMap[i].Length);
AsciiPrint ("\t%08x %08x",IoSpaceMap[i].ImageHandle,IoSpaceMap[i].DeviceHandle);
- if (IoSpaceMap[i].GcdIoType & EfiGcdMemoryTypeNonExistent)
+ switch (IoSpaceMap[i].GcdIoType) {
+ case EfiGcdIoTypeNonExistent:
AsciiPrint (" TYPE_NONEXISTENT");
- if (IoSpaceMap[i].GcdIoType & EfiGcdMemoryTypeReserved)
+ break;
+ case EfiGcdIoTypeReserved:
AsciiPrint (" TYPE_RESERVED");
- if (IoSpaceMap[i].GcdIoType & EfiGcdIoTypeIo)
+ break;
+ case EfiGcdIoTypeIo:
AsciiPrint (" TYPE_IO");
+ break;
+ default:
+ AsciiPrint (" TYPE_UNKNOWN");
+ break;
+ }
AsciiPrint ("\n");
}