]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Ported LZMA to DUET platform.
authorgikidy <gikidy@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 6 May 2009 03:44:47 +0000 (03:44 +0000)
committergikidy <gikidy@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 6 May 2009 03:44:47 +0000 (03:44 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8245 6f19259b-4bc3-4df7-8a09-765794883524

DuetPkg/DuetPkg.dsc
DuetPkg/EfiLdr/EfiLdr.inf
DuetPkg/EfiLdr/EfiLoader.c
DuetPkg/EfiLdr/LzmaDecompress.h [new file with mode: 0644]
DuetPkg/PostBuild.bat

index 1a38c06d369b13bdf4617cd165305e3b0f162f79..08b40b74ff3b10f0b44ff52ce02b880a7635f0f7 100644 (file)
   DuetPkg/EfiLdr/EfiLdr.inf {
     <LibraryClasses>
       DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
+      NULL|IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
   }
   IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf {
     <LibraryClasses>
index 8294f2050a5097a4ed28d9d77667b7c3874fd0fb..c644877784f1aae925d375b6300ae89a82b86dd0 100644 (file)
@@ -47,8 +47,9 @@
   Debug.c\r
   PeLoader.c\r
   Support.c\r
-  TianoDecompress.c\r
-  TianoDecompress.h\r
+  #TianoDecompress.c\r
+  #TianoDecompress.h\r
+  LzmaDecompress.h\r
 \r
 [Guids.common]\r
   gTianoCustomDecompressGuid\r
index b193f31536eb15cf8f9c4c5bcd2ed3b8b1b6cb57..c37fba89ec8e329cf5903c65a26db5debc99751e 100644 (file)
@@ -22,7 +22,7 @@ Revision History:
 #include "Support.h"\r
 #include "Debug.h"\r
 #include "PeLoader.h"\r
-#include "TianoDecompress.h"\r
+#include "LzmaDecompress.h"\r
 \r
 VOID\r
 SystemHang(\r
@@ -40,7 +40,6 @@ EfiLoader (
   )\r
 {\r
   BIOS_MEMORY_MAP       *BiosMemoryMap;    \r
-  //EFILDR_HEADER         *EFILDRHeader;\r
   EFILDR_IMAGE          *EFILDRImage;\r
   EFI_MEMORY_DESCRIPTOR EfiMemoryDescriptor[EFI_MAX_MEMORY_DESCRIPTORS];\r
   EFI_STATUS            Status;\r
@@ -96,8 +95,7 @@ EfiLoader (
                (UINTN)(EFILDR_HEADER_ADDRESS + EFILDRImage->Offset),\r
                EFILDRImage->Offset);\r
   PrintString (PrintBuffer);\r
-\r
-  Status = TianoGetInfo (\r
+  Status = LzmaUefiDecompressGetInfo (\r
              (VOID *)(UINTN)(EFILDR_HEADER_ADDRESS + EFILDRImage->Offset),\r
              EFILDRImage->Length,\r
              &DestinationSize, \r
@@ -113,15 +111,12 @@ EfiLoader (
   AsciiSPrint (PrintBuffer, 256, "BFV decompress: DestinationSize=0x%X, ScratchSize=0x%X!\n",\r
                DestinationSize, ScratchSize);\r
   PrintString (PrintBuffer);\r
+  Status =  LzmaUefiDecompress (\r
+    (VOID *)(UINTN)(EFILDR_HEADER_ADDRESS + EFILDRImage->Offset),\r
+    (VOID *)(UINTN)EFI_DECOMPRESSED_BUFFER_ADDRESS, \r
+    (VOID *)(UINTN)((EFI_DECOMPRESSED_BUFFER_ADDRESS + DestinationSize + 0x1000) & 0xfffff000)\r
+    );\r
   \r
-  Status = TianoDecompress (\r
-             (VOID *)(UINTN)(EFILDR_HEADER_ADDRESS + EFILDRImage->Offset),\r
-             EFILDRImage->Length,\r
-             (VOID *)(UINTN)EFI_DECOMPRESSED_BUFFER_ADDRESS,\r
-             DestinationSize, \r
-             (VOID *)(UINTN)((EFI_DECOMPRESSED_BUFFER_ADDRESS + DestinationSize + 0x1000) & 0xfffff000),\r
-             ScratchSize\r
-             );\r
 \r
   if (EFI_ERROR (Status)) {\r
     AsciiSPrint (PrintBuffer, 256, "Fail to decompress BFV!\n");\r
@@ -153,7 +148,7 @@ EfiLoader (
                EFILDRImage->Offset);\r
   PrintString (PrintBuffer);\r
 \r
-  Status = TianoGetInfo (\r
+  Status = LzmaUefiDecompressGetInfo (\r
              (VOID *)(UINTN)(EFILDR_HEADER_ADDRESS + EFILDRImage->Offset),\r
              EFILDRImage->Length,\r
              &DestinationSize, \r
@@ -165,13 +160,10 @@ EfiLoader (
     SystemHang();\r
   }\r
 \r
-  Status = TianoDecompress (\r
+  Status = LzmaUefiDecompress (\r
              (VOID *)(UINTN)(EFILDR_HEADER_ADDRESS + EFILDRImage->Offset),\r
-             EFILDRImage->Length,\r
              (VOID *)(UINTN)EFI_DECOMPRESSED_BUFFER_ADDRESS,\r
-             DestinationSize, \r
-             (VOID *)(UINTN)((EFI_DECOMPRESSED_BUFFER_ADDRESS + DestinationSize + 0x1000) & 0xfffff000),\r
-             ScratchSize\r
+             (VOID *)(UINTN)((EFI_DECOMPRESSED_BUFFER_ADDRESS + DestinationSize + 0x1000) & 0xfffff000)\r
              );\r
   if (EFI_ERROR (Status)) {\r
     AsciiSPrint (PrintBuffer, 256, "Fail to decompress DxeIpl image\n");\r
@@ -220,7 +212,7 @@ PrintHeader ('C');
                EFILDRImage->Offset);\r
   PrintString (PrintBuffer);\r
 \r
-  Status = TianoGetInfo (\r
+  Status = LzmaUefiDecompressGetInfo (\r
              (VOID *)(UINTN)(EFILDR_HEADER_ADDRESS + EFILDRImage->Offset),\r
              EFILDRImage->Length,\r
              &DestinationSize, \r
@@ -232,13 +224,10 @@ PrintHeader ('C');
     SystemHang();\r
   }\r
 \r
-  Status = TianoDecompress (\r
+  Status = LzmaUefiDecompress (\r
              (VOID *)(UINTN)(EFILDR_HEADER_ADDRESS + EFILDRImage->Offset),\r
-             EFILDRImage->Length,\r
              (VOID *)(UINTN)EFI_DECOMPRESSED_BUFFER_ADDRESS,\r
-             DestinationSize, \r
-             (VOID *)(UINTN)((EFI_DECOMPRESSED_BUFFER_ADDRESS + DestinationSize + 0x1000) & 0xfffff000),\r
-             ScratchSize\r
+             (VOID *)(UINTN)((EFI_DECOMPRESSED_BUFFER_ADDRESS + DestinationSize + 0x1000) & 0xfffff000)\r
              );\r
   if (EFI_ERROR (Status)) {\r
     SystemHang();\r
diff --git a/DuetPkg/EfiLdr/LzmaDecompress.h b/DuetPkg/EfiLdr/LzmaDecompress.h
new file mode 100644 (file)
index 0000000..fbf645e
--- /dev/null
@@ -0,0 +1,57 @@
+/** @file\r
+  LZMA Decompress Library header file\r
+\r
+  Copyright (c) 2006 - 2009, Intel Corporation<BR>\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 __LZMADECOMPRESS_H__\r
+#define __LZMADECOMPRESS_H__\r
+\r
+/**\r
+  The internal implementation of *_DECOMPRESS_PROTOCOL.GetInfo().\r
+  \r
+  @param Source           The source buffer containing the compressed data.\r
+  @param SourceSize       The size of source buffer\r
+  @param DestinationSize  The size of destination buffer.\r
+  @param ScratchSize      The size of scratch buffer.\r
+\r
+  @retval RETURN_SUCCESS           - The size of destination buffer and the size of scratch buffer are successull retrieved.\r
+  @retval RETURN_INVALID_PARAMETER - The source data is corrupted\r
+**/\r
+RETURN_STATUS\r
+EFIAPI\r
+LzmaUefiDecompressGetInfo (\r
+  IN  CONST VOID  *Source,\r
+  IN  UINT32      SourceSize,\r
+  OUT UINT32      *DestinationSize,\r
+  OUT UINT32      *ScratchSize\r
+  );\r
+\r
+/**\r
+  The internal implementation of *_DECOMPRESS_PROTOCOL.Decompress().\r
+  \r
+  @param Source          - The source buffer containing the compressed data.\r
+  @param Destination     - The destination buffer to store the decompressed data\r
+  @param Scratch         - The buffer used internally by the decompress routine. This  buffer is needed to store intermediate data.\r
+\r
+  @retval RETURN_SUCCESS           - Decompression is successfull\r
+  @retval RETURN_INVALID_PARAMETER - The source data is corrupted  \r
+**/\r
+RETURN_STATUS\r
+EFIAPI\r
+LzmaUefiDecompress (\r
+  IN CONST VOID  *Source,\r
+  IN OUT VOID    *Destination,\r
+  IN OUT VOID    *Scratch\r
+  );\r
+\r
+#endif // __LZMADECOMPRESS_H__\r
+\r
index b73eed00498fdc9478219ab031c88e1d9cea4cee..8ed7943e29a871794a548490090ddcd3d7e161f6 100644 (file)
 @set BOOTSECTOR_OUTPUT_DIR=%BUILD_DIR%\IA32\DuetPkg\BootSector\BootSector\OUTPUT\r
 \r
 @echo Compressing DUETEFIMainFv.FV ...\r
-@%BASETOOLS_DIR%\TianoCompress -e -o %BUILD_DIR%\FV\DUETEFIMAINFV.z %BUILD_DIR%\FV\DUETEFIMAINFV.Fv\r
+@%BASETOOLS_DIR%\LzmaCompress -e -o %BUILD_DIR%\FV\DUETEFIMAINFV.z %BUILD_DIR%\FV\DUETEFIMAINFV.Fv\r
 \r
 @echo Compressing DxeMain.efi ...\r
-@%BASETOOLS_DIR%\TianoCompress -e -o %BUILD_DIR%\FV\DxeMain.z %BUILD_DIR%\%PROCESSOR%\DxeCore.efi\r
+@%BASETOOLS_DIR%\LzmaCompress -e -o %BUILD_DIR%\FV\DxeMain.z %BUILD_DIR%\%PROCESSOR%\DxeCore.efi\r
 \r
 @echo Compressing DxeIpl.efi ...\r
-@%BASETOOLS_DIR%\TianoCompress -e -o %BUILD_DIR%\FV\DxeIpl.z %BUILD_DIR%\%PROCESSOR%\DxeIpl.efi\r
+@%BASETOOLS_DIR%\LzmaCompress -e -o %BUILD_DIR%\FV\DxeIpl.z %BUILD_DIR%\%PROCESSOR%\DxeIpl.efi\r
 \r
 @echo Generate Loader Image ...\r
 @if "%PROCESSOR%"=="IA32" goto GENERATE_IMAGE_IA32\r