PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
- PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
#
# Uncomment (and comment out the next line) For RealView Debugger. The Standard IO window
UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
ExtractGuidedSectionLib|EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf
LzmaDecompressLib|IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
+ PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
[LibraryClasses.common.PEI_CORE]
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
+ PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
+# PeCoffLib|EmbeddedPkg/Library/DxeHobPeCoffLib/DxeHobPeCoffLib.inf
[LibraryClasses.common.DXE_DRIVER]
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
+ PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
+# PeCoffLib|EmbeddedPkg/Library/DxeHobPeCoffLib/DxeHobPeCoffLib.inf
[LibraryClasses.ARM]
gBeagleBoardTokenSpaceGuid.PcdBeagleConsoleUart|3
# Timers
-# gBeagleBoardTokenSpaceGuid.PcdBeagleArchTimer|OMAP3530_GPTIMER3
gBeagleBoardTokenSpaceGuid.PcdBeagleArchTimer|3
-# gBeagleBoardTokenSpaceGuid.PcdBeagleFreeTimer|OMAP3530_GPTIMER4
gBeagleBoardTokenSpaceGuid.PcdBeagleFreeTimer|4
gEmbeddedTokenSpaceGuid.PcdTimerPeriod|100000
gEmbeddedTokenSpaceGuid.PcdEmbeddedFdPerformanceCounterPeriodInNanoseconds|77
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
NULL|IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
+# NULL|EmbeddedPkg/Library/LzmaHobCustomDecompressLib/LzmaHobCustomDecompressLib.inf
}
ArmPkg/Drivers/CpuDxe/CpuDxe.inf
#NOTE: Open source EHCI stack doesn't work on Beagleboard.
#NOTE: UsbBus and UsbMassStorage don't work using iPhond SDK tool chain.
- INF MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf
- INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
- INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
+ #INF MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf
+ #INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
+ #INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
#
# UEFI application (Shell Embedded Boot Loader)
#include <Library/PeCoffGetEntryPointLib.h>\r
\r
#include <Ppi/GuidedSectionExtraction.h>\r
-\r
+#include <Guid/LzmaDecompress.h>\r
#include <Omap3530/Omap3530.h>\r
\r
+#include "LzmaDecompress.h"\r
+\r
VOID\r
EFIAPI \r
_ModuleEntryPoint(\r
ExtractGuidedSectionLibConstructor();\r
LzmaDecompressLibConstructor();\r
\r
+ // Build HOBs to pass up our version of stuff the DXE Core needs to save space\r
+#if 0\r
+ BuildPeCoffLoaderHob ();\r
+ BuildExtractSectionHob (\r
+ &gLzmaCustomDecompressGuid,\r
+ LzmaGuidedSectionGetInfo,\r
+ LzmaGuidedSectionExtraction\r
+ );\r
+#endif\r
+\r
DecompressFirstFv ();\r
\r
// Load the DXE Core and transfer control to it\r
EmbeddedPkg/EmbeddedPkg.dec
ArmPkg/ArmPkg.dec
Omap35xxPkg/Omap35xxPkg.dec
+ IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
[LibraryClasses]
BaseLib
# Build the edk2 BeagleBoard code
#
if [[ $TARGET == RELEASE ]]; then
- build -p $WORKSPACE/BeagleBoardPkg/BeagleBoardPkg.dsc -a ARM -t $TARGET_TOOLS -b -D DEBUG_TARGET=RELEASE $1 $2 $3 $4 $5 $6 $7 $8
+ build -p $WORKSPACE/BeagleBoardPkg/BeagleBoardPkg.dsc -a ARM -t $TARGET_TOOLS -b $TARGET -D DEBUG_TARGET=RELEASE $2 $3 $4 $5 $6 $7 $8
else
build -p $WORKSPACE/BeagleBoardPkg/BeagleBoardPkg.dsc -a ARM -t $TARGET_TOOLS -b $TARGET $1 $2 $3 $4 $5 $6 $7 $8
fi
// The GUID for this protocol mathes the Decompression scheme being used\r
// So for example LZMA would be gLzmaCustomDecompressGuid\r
//\r
-\r
typedef struct {\r
- EFI_HOB_GUID_TYPE Hob; \r
EXTRACT_GUIDED_SECTION_GET_INFO_HANDLER SectionGetInfo;\r
EXTRACT_GUIDED_SECTION_DECODE_HANDLER SectionExtraction;\r
+} EXTRACT_SECTION_DATA;\r
+\r
+typedef struct {\r
+ EFI_HOB_GUID_TYPE Hob; \r
+ EXTRACT_SECTION_DATA Data;\r
} EXTRACT_SECTION_HOB;\r
\r
#endif\r
VOID
EFIAPI
BuildPeCoffLoaderHob (
+ VOID
);
+++ /dev/null
-/** @file\r
-\r
- Copyright (c) 2008-2009 Apple Inc. All rights reserved.<BR>\r
-\r
- All rights reserved. This program and the accompanying materials\r
- are licensed and made available under the terms and conditions of the BSD License\r
- which accompanies this distribution. The full text of the license may be found at\r
- http://opensource.org/licenses/bsd-license.php\r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-**/\r
-\r
-#ifndef __EXTRACT_SECTION_PROTOCOL_H__\r
-#define __EXTRACT_SECTION_PROTOCOL_H__\r
-\r
-\r
-//\r
-// The GUID for this protocol mathes the Decompression scheme being used\r
-// So for example LZMA would be gLzmaCustomDecompressGuid\r
-//\r
-\r
-typedef struct {\r
- EFI_HOB_GUID_TYPE Hob;\r
- EXTRACT_GUIDED_SECTION_GET_INFO_HANDLER SectionGetInfo;\r
- EXTRACT_GUIDED_SECTION_DECODE_HANDLER SectionExtraction;\r
-} PROTOCOL_HOB;\r
-\r
-\r
-#endif\r
-\r
-\r
#ifndef __PE_COFF_LOADER_H__\r
#define __PE_COFF_LOADER_H__\r
\r
+// Needed for PE_COFF_LOADER_IMAGE_CONTEXT\r
+#include <Library/PeCoffLib.h>\r
+\r
// B323179B-97FB-477E-B0FE-D88591FA11AB\r
#define PE_COFF_LOADER_PROTOCOL_GUID \\r
{ 0xB323179B, 0x97FB, 0x477E, { 0xB0, 0xFE, 0xD8, 0x85, 0x91, 0xFA, 0x11, 0xAB } }\r
#include <Protocol/PeCoffLoader.h>\r
\r
\r
+PE_COFF_LOADER_PROTOCOL *gPeCoffLoader = NULL;\r
+\r
+\r
/**\r
Retrieves information about a PE/COFF image.\r
\r
OUT VOID *Buffer\r
)\r
{\r
- return gPeCoffLoader->RelocateImageForRuntime (\r
- *FileHandle,\r
+ return gPeCoffLoader->ReadFromMemory (\r
+ FileHandle,\r
FileOffset,\r
- *ReadSize,\r
- *Buffer\r
+ ReadSize,\r
+ Buffer\r
);\r
\r
}\r
ImageBase,\r
VirtImageBase,\r
ImageSize,\r
- *RelocationData\r
+ RelocationData\r
);\r
}\r
\r
return gPeCoffLoader->UnloadImage (ImageContext);\r
}\r
\r
+typedef struct {\r
+ EFI_HOB_GUID_TYPE Hob;\r
+ VOID *Interface;\r
+} PROTOCOL_HOB;\r
\r
\r
/**\r
- Register LzmaDecompress and LzmaDecompressGetInfo handlers with LzmaCustomerDecompressGuid.\r
+ The constructor function caches the pointer of DXE Services Table.\r
+\r
+ The constructor function caches the pointer of DXE Services Table.\r
+ It will ASSERT() if that operation fails.\r
+ It will ASSERT() if the pointer of DXE Services Table is NULL.\r
+ It will always return EFI_SUCCESS.\r
+\r
+ @param ImageHandle The firmware allocated handle for the EFI image.\r
+ @param SystemTable A pointer to the EFI System Table.\r
+\r
+ @retval EFI_SUCCESS The constructor always returns EFI_SUCCESS.\r
\r
- @retval RETURN_SUCCESS Register successfully.\r
- @retval RETURN_OUT_OF_RESOURCES No enough memory to store this handler.\r
**/\r
EFI_STATUS\r
EFIAPI\r
DxeHobPeCoffLibConstructor (\r
+ IN EFI_HANDLE ImageHandle,\r
+ IN EFI_SYSTEM_TABLE *SystemTable\r
)\r
{\r
PROTOCOL_HOB *Hob;\r
- \r
+\r
Hob = GetFirstGuidHob (&gPeCoffLoaderProtocolGuid);\r
if (Hob == NULL) {\r
return EFI_NOT_FOUND;\r
}\r
\r
gPeCoffLoader = Hob->Interface;\r
+ return EFI_SUCCESS;\r
}\r
\r
\r
\r
[Defines]\r
INF_VERSION = 0x00010005\r
- BASE_NAME = BasePeCoffLib\r
+ BASE_NAME = DxeHobPeCoffLib\r
FILE_GUID = 671C6FD7-99FB-4EE3-B640-4B1D463BC3B5\r
MODULE_TYPE = DXE_DRIVER\r
VERSION_STRING = 1.0\r
\r
[Packages]\r
MdePkg/MdePkg.dec\r
+ EmbeddedPkg/EmbeddedPkg.dec\r
\r
[LibraryClasses]\r
DebugLib\r
+ HobLib\r
\r
+[Protocols]\r
+ gPeCoffLoaderProtocolGuid\r
\r
return ExtractGuidedSectionRegisterHandlers (\r
&gLzmaCustomDecompressGuid,\r
- Hob->SectionGetInfo,\r
- Hob->SectionExtraction\r
+ Hob->Data.SectionGetInfo,\r
+ Hob->Data.SectionExtraction\r
); \r
}\r
IN EXTRACT_GUIDED_SECTION_DECODE_HANDLER SectionExtraction
)
{
- EXTRACT_SECTION_HOB Hob;
+ EXTRACT_SECTION_DATA Data;
- Hob.SectionGetInfo = SectionGetInfo;
- Hob.SectionExtraction = SectionExtraction;
- BuildGuidDataHob (Guid, &Hob, sizeof (EXTRACT_SECTION_HOB));
+ Data.SectionGetInfo = SectionGetInfo;
+ Data.SectionExtraction = SectionExtraction;
+ BuildGuidDataHob (Guid, &Data, sizeof (Data));
}
PE_COFF_LOADER_PROTOCOL gPeCoffProtocol = {
PeCoffLoaderUnloadImage
};
-typedef struct {
- EFI_HOB_GUID_TYPE Hob;
- VOID *Interface;
-} PROTOCOL_HOB;
-
VOID
EFIAPI
BuildPeCoffLoaderHob (
+ VOID
)
{
- PROTOCOL_HOB Hob;
+ VOID *Ptr;
- Hob.Interface = &gPeCoffProtocol;
- BuildGuidDataHob (&gPeCoffLoaderProtocolGuid, &Hob, sizeof (PROTOCOL_HOB));
+ Ptr = &gPeCoffProtocol;
+ BuildGuidDataHob (&gPeCoffLoaderProtocolGuid, &Ptr, sizeof (VOID *));
}