Remove Framework capsule definition and update GenFv tool to support dump uefi capsul...
authorlgao4 <lgao4@7335b38e-4728-0410-8992-fb3ffe349368>
Tue, 28 Aug 2007 09:15:48 +0000 (09:15 +0000)
committerlgao4 <lgao4@7335b38e-4728-0410-8992-fb3ffe349368>
Tue, 28 Aug 2007 09:15:48 +0000 (09:15 +0000)
git-svn-id: https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools@632 7335b38e-4728-0410-8992-fb3ffe349368

Source/C/GenFv/GenFv.c
Source/C/Include/Common/Capsule.h [deleted file]

index adec916..b464239 100644 (file)
@@ -139,7 +139,7 @@ Routine Description:
 \r
 Arguments:\r
 \r
-  FvInfFileName      The name of an FV image description file.\r
+  FvInfFileName      The name of an FV image description file or Capsule Image.\r
 \r
   Arguments come in pair in any order.\r
     -I FvInfFileName \r
@@ -171,6 +171,7 @@ Returns:
   BOOLEAN               DumpCapsule;\r
   MEMORY_FILE           AddrMemoryFile;\r
   FILE                  *FpFile;\r
+  EFI_CAPSULE_HEADER    *CapsuleHeader;\r
 \r
   InfFileName   = NULL;\r
   AddrFileName  = NULL;\r
@@ -184,6 +185,7 @@ Returns:
   CapsuleFlag   = FALSE;\r
   DumpCapsule   = FALSE;\r
   FpFile        = NULL;\r
+  CapsuleHeader = NULL;\r
 \r
   SetUtilityName (UTILITY_NAME);\r
 \r
@@ -289,7 +291,7 @@ Returns:
     return STATUS_ERROR;\r
   }\r
 \r
-  if (OutFileName == NULL) {\r
+  if (!DumpCapsule && OutFileName == NULL) {\r
     Error (NULL, 0, 1001, "Missing option", "Output file name");\r
     return STATUS_ERROR;\r
   }\r
@@ -350,11 +352,39 @@ Returns:
   if (EFI_ERROR (Status)) {\r
     return STATUS_ERROR;\r
   }\r
-\r
-  //\r
-  // Create Capsule Header\r
-  //\r
-  if (CapsuleFlag) {\r
+  \r
+  if (DumpCapsule) {\r
+    //\r
+    // Dump Capsule Image Header Information\r
+    //\r
+    CapsuleHeader = (EFI_CAPSULE_HEADER *) InfFileImage;\r
+    if (OutFileName == NULL) {\r
+      FpFile = stdout;\r
+    } else {\r
+      FpFile = fopen (OutFileName, "w");\r
+      if (FpFile == NULL) {\r
+        Error (NULL, 0, 0001, "Error opening file", OutFileName);\r
+        return STATUS_ERROR;\r
+      }\r
+    }\r
+    fprintf (FpFile, "Capsule %s Image Header Information\n", InfFileName);\r
+    fprintf (FpFile, "  GUID                  %08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X\n", \r
+                    CapsuleHeader->CapsuleGuid.Data1,\r
+                    (UINT32) CapsuleHeader->CapsuleGuid.Data2,\r
+                    (UINT32) CapsuleHeader->CapsuleGuid.Data3,\r
+                    (UINT32) CapsuleHeader->CapsuleGuid.Data4[0],\r
+                    (UINT32) CapsuleHeader->CapsuleGuid.Data4[1],\r
+                    (UINT32) CapsuleHeader->CapsuleGuid.Data4[2],\r
+                    (UINT32) CapsuleHeader->CapsuleGuid.Data4[3],\r
+                    (UINT32) CapsuleHeader->CapsuleGuid.Data4[4],\r
+                    (UINT32) CapsuleHeader->CapsuleGuid.Data4[5],\r
+                    (UINT32) CapsuleHeader->CapsuleGuid.Data4[6],\r
+                    (UINT32) CapsuleHeader->CapsuleGuid.Data4[7]);\r
+    fprintf (FpFile, "  Header size           0x%08X\n", CapsuleHeader->HeaderSize);\r
+    fprintf (FpFile, "  Flags                 0x%08X\n", CapsuleHeader->Flags);\r
+    fprintf (FpFile, "  Capsule image size    0x%08X\n", CapsuleHeader->CapsuleImageSize);\r
+    fclose (FpFile);\r
+  } else if (CapsuleFlag) {\r
     //\r
     // Call the GenerateCapImage to generate Capsule Image\r
     //\r
@@ -396,10 +426,14 @@ Returns:
     }\r
     fprintf (FpFile, OPTIONS_SECTION_STRING);\r
     fprintf (FpFile, "\n");\r
-    fprintf (FpFile, EFI_FV_BOOT_DRIVER_BASE_ADDRESS_STRING);\r
-    fprintf (FpFile, " = 0x%x\n", BtBase);\r
-    fprintf (FpFile, EFI_FV_RUNTIME_DRIVER_BASE_ADDRESS_STRING);\r
-    fprintf (FpFile, " = 0x%x\n", RtBase);\r
+    if (BtBase != 0) {\r
+      fprintf (FpFile, EFI_FV_BOOT_DRIVER_BASE_ADDRESS_STRING);\r
+      fprintf (FpFile, " = 0x%x\n", BtBase);\r
+    }\r
+    if (RtBase != 0) {\r
+      fprintf (FpFile, EFI_FV_RUNTIME_DRIVER_BASE_ADDRESS_STRING);\r
+      fprintf (FpFile, " = 0x%x\n", RtBase);\r
+    }\r
     fclose (FpFile);\r
   }\r
 \r
diff --git a/Source/C/Include/Common/Capsule.h b/Source/C/Include/Common/Capsule.h
deleted file mode 100644 (file)
index 0434fdf..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/** @file\r
-  Defines for the EFI Capsule functionality.\r
-\r
-  Copyright (c) 2006, Intel Corporation                                                         \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
-  Module Name:  Capsule.h\r
-\r
-  @par Revision Reference:\r
-  These definitions are from Capsule Spec Version 0.9.\r
-\r
-**/\r
-\r
-#ifndef _EFI_CAPSULE_H_\r
-#define _EFI_CAPSULE_H_\r
-\r
-//\r
-// Bits in the flags field of the capsule header\r
-//\r
-#define EFI_CAPSULE_HEADER_FLAG_SETUP 0x00000001  // supports setup changes\r
-\r
-\r
-#define CAPSULE_BLOCK_DESCRIPTOR_SIGNATURE  EFI_SIGNATURE_32 ('C', 'B', 'D', 'S')\r
-\r
-//\r
-// An array of these describe the blocks that make up a capsule for\r
-// a capsule update.\r
-//\r
-typedef struct {\r
-  UINT64                Length;     // length of the data block\r
-  EFI_PHYSICAL_ADDRESS  Data;       // physical address of the data block\r
-  UINT32                Signature;  // CBDS\r
-  UINT32                CheckSum;   // to sum this structure to 0\r
-} EFI_CAPSULE_BLOCK_DESCRIPTOR;\r
-\r
-typedef struct {\r
-  EFI_GUID  OemGuid;\r
-  UINT32    HeaderSize;\r
-  //\r
-  // UINT8                       OemHdrData[];\r
-  //\r
-} EFI_CAPSULE_OEM_HEADER;\r
-\r
-typedef struct {\r
-  EFI_GUID  CapsuleGuid;\r
-  UINT32    HeaderSize;\r
-  UINT32    Flags;\r
-  UINT32    CapsuleImageSize;\r
-  UINT32    SequenceNumber;\r
-  EFI_GUID  InstanceId;\r
-  UINT32    OffsetToSplitInformation;\r
-  UINT32    OffsetToCapsuleBody;\r
-  UINT32    OffsetToOemDefinedHeader;\r
-  UINT32    OffsetToAuthorInformation;\r
-  UINT32    OffsetToRevisionInformation;\r
-  UINT32    OffsetToShortDescription;\r
-  UINT32    OffsetToLongDescription;\r
-  UINT32    OffsetToApplicableDevices;\r
-} EFI_CAPSULE_HEADER;\r
-\r
-#endif // #ifndef _EFI_CAPSULE_H_\r