From d39eb83cc5ce2147264e2ea3566c4dbf7eb9888d Mon Sep 17 00:00:00 2001 From: andrewfish Date: Wed, 21 Apr 2010 22:04:35 +0000 Subject: Add some ldm/vldm optimized CopyMem routines. Add performance macros to BDS git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10388 6f19259b-4bc3-4df7-8a09-765794883524 --- BeagleBoardPkg/Bds/BdsEntry.c | 4 ++++ BeagleBoardPkg/Bds/BdsEntry.h | 1 + BeagleBoardPkg/Bds/FirmwareVolume.c | 1 + BeagleBoardPkg/BeagleBoardPkg.dsc | 5 ++++- BeagleBoardPkg/Library/EblCmdLib/EblCmdLib.c | 14 +++++++++++++- 5 files changed, 23 insertions(+), 2 deletions(-) (limited to 'BeagleBoardPkg') diff --git a/BeagleBoardPkg/Bds/BdsEntry.c b/BeagleBoardPkg/Bds/BdsEntry.c index 05afd190dd..025de152f5 100644 --- a/BeagleBoardPkg/Bds/BdsEntry.c +++ b/BeagleBoardPkg/Bds/BdsEntry.c @@ -74,6 +74,10 @@ BdsEntry ( EFI_DEVICE_PATH_PROTOCOL *LoadImageDevicePath; EFI_DEVICE_PATH_PROTOCOL *FileSystemDevicePath; + PERF_END (NULL, "DXE", NULL, 0); + PERF_START (NULL, "BDS", NULL, 0); + + // // Now do the EFI stuff // diff --git a/BeagleBoardPkg/Bds/BdsEntry.h b/BeagleBoardPkg/Bds/BdsEntry.h index 21e49498cf..20a9f9d5cc 100644 --- a/BeagleBoardPkg/Bds/BdsEntry.h +++ b/BeagleBoardPkg/Bds/BdsEntry.h @@ -30,6 +30,7 @@ #include #include #include +#include #include #include diff --git a/BeagleBoardPkg/Bds/FirmwareVolume.c b/BeagleBoardPkg/Bds/FirmwareVolume.c index 692e2a56a6..ca3cd38376 100644 --- a/BeagleBoardPkg/Bds/FirmwareVolume.c +++ b/BeagleBoardPkg/Bds/FirmwareVolume.c @@ -141,6 +141,7 @@ LoadPeCoffSectionFromFv ( Status = gBS->LoadImage (TRUE, gImageHandle, DevicePath, NULL, 0, &ImageHandle); if (!EFI_ERROR (Status)) { + PERF_END (NULL, "BDS", NULL, 0); Status = gBS->StartImage (ImageHandle, NULL, NULL); } diff --git a/BeagleBoardPkg/BeagleBoardPkg.dsc b/BeagleBoardPkg/BeagleBoardPkg.dsc index 3394ed2607..ca2b0848c8 100644 --- a/BeagleBoardPkg/BeagleBoardPkg.dsc +++ b/BeagleBoardPkg/BeagleBoardPkg.dsc @@ -43,7 +43,7 @@ MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf BaseLib|MdePkg/Library/BaseLib/BaseLib.inf - BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf + BaseMemoryLib|ArmPkg/Library/BaseMemoryLibStm/BaseMemoryLibStm.inf EfiResetSystemLib|BeagleBoardPkg/Library/ResetSystemLib/ResetSystemLib.inf @@ -122,6 +122,9 @@ PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf HobLib|EmbeddedPkg/Library/PrePiHobLib/PrePiHobLib.inf PerformanceLib|MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf + + # 1/123 faster than Stm or Vstm version + BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf [LibraryClasses.common.PEI_CORE] PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf diff --git a/BeagleBoardPkg/Library/EblCmdLib/EblCmdLib.c b/BeagleBoardPkg/Library/EblCmdLib/EblCmdLib.c index 413bb47fc2..985e78a54d 100644 --- a/BeagleBoardPkg/Library/EblCmdLib/EblCmdLib.c +++ b/BeagleBoardPkg/Library/EblCmdLib/EblCmdLib.c @@ -156,15 +156,27 @@ ImageHandleToPdbFileName ( { EFI_STATUS Status; EFI_LOADED_IMAGE_PROTOCOL *LoadedImage; + CHAR8 *Pdb; + CHAR8 *StripLeading; Status = gBS->HandleProtocol (Handle, &gEfiLoadedImageProtocolGuid, (VOID **)&LoadedImage); if (EFI_ERROR (Status)) { return ""; } - return PeCoffLoaderGetPdbPointer (LoadedImage->ImageBase); + Pdb = PeCoffLoaderGetPdbPointer (LoadedImage->ImageBase); + StripLeading = AsciiStrStr (Pdb, "\\ARM\\"); + if (StripLeading == NULL) { + StripLeading = AsciiStrStr (Pdb, "/ARM/"); + if (StripLeading == NULL) { + return Pdb; + } + } + // Hopefully we hacked off the unneeded part + return (StripLeading + 5); } + CHAR8 *mTokenList[] = { "SEC", "PEI", -- cgit v1.2.3