]> git.proxmox.com Git - mirror_edk2.git/blob - BaseTools/Source/Python/GenFds/Ffs.py
BaseTools/GenFds: register MM Modules and MM FV file types.
[mirror_edk2.git] / BaseTools / Source / Python / GenFds / Ffs.py
1 ## @file
2 # process FFS generation
3 #
4 # Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
5 #
6 # This program and the accompanying materials
7 # are licensed and made available under the terms and conditions of the BSD License
8 # which accompanies this distribution. The full text of the license may be found at
9 # http://opensource.org/licenses/bsd-license.php
10 #
11 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 #
14
15 ##
16 # Import Modules
17 #
18 from CommonDataClass.FdfClass import FDClassObject
19
20 ## generate FFS
21 #
22 #
23 class Ffs(FDClassObject):
24
25 # mapping between MODULE type in FDF (from INF) and file type for GenFfs
26 ModuleTypeToFileType = {
27 'SEC' : 'EFI_FV_FILETYPE_SECURITY_CORE',
28 'PEI_CORE' : 'EFI_FV_FILETYPE_PEI_CORE',
29 'PEIM' : 'EFI_FV_FILETYPE_PEIM',
30 'DXE_CORE' : 'EFI_FV_FILETYPE_DXE_CORE',
31 'DXE_DRIVER' : 'EFI_FV_FILETYPE_DRIVER',
32 'DXE_SAL_DRIVER' : 'EFI_FV_FILETYPE_DRIVER',
33 'DXE_SMM_DRIVER' : 'EFI_FV_FILETYPE_DRIVER',
34 'DXE_RUNTIME_DRIVER': 'EFI_FV_FILETYPE_DRIVER',
35 'UEFI_DRIVER' : 'EFI_FV_FILETYPE_DRIVER',
36 'UEFI_APPLICATION' : 'EFI_FV_FILETYPE_APPLICATION',
37 'SMM_CORE' : 'EFI_FV_FILETYPE_SMM_CORE',
38 'MM_STANDALONE' : 'EFI_FV_FILETYPE_MM_STANDALONE',
39 'MM_CORE_STANDALONE' : 'EFI_FV_FILETYPE_MM_CORE_STANDALONE'
40 }
41
42 # mapping between FILE type in FDF and file type for GenFfs
43 FdfFvFileTypeToFileType = {
44 'SEC' : 'EFI_FV_FILETYPE_SECURITY_CORE',
45 'PEI_CORE' : 'EFI_FV_FILETYPE_PEI_CORE',
46 'PEIM' : 'EFI_FV_FILETYPE_PEIM',
47 'DXE_CORE' : 'EFI_FV_FILETYPE_DXE_CORE',
48 'FREEFORM' : 'EFI_FV_FILETYPE_FREEFORM',
49 'DRIVER' : 'EFI_FV_FILETYPE_DRIVER',
50 'APPLICATION' : 'EFI_FV_FILETYPE_APPLICATION',
51 'FV_IMAGE' : 'EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE',
52 'RAW' : 'EFI_FV_FILETYPE_RAW',
53 'PEI_DXE_COMBO' : 'EFI_FV_FILETYPE_COMBINED_PEIM_DRIVER',
54 'SMM' : 'EFI_FV_FILETYPE_SMM',
55 'SMM_CORE' : 'EFI_FV_FILETYPE_SMM_CORE',
56 'MM_STANDALONE' : 'EFI_FV_FILETYPE_MM_STANDALONE',
57 'MM_CORE_STANDALONE' : 'EFI_FV_FILETYPE_MM_CORE_STANDALONE'
58 }
59
60 # mapping between section type in FDF and file suffix
61 SectionSuffix = {
62 'PE32' : '.pe32',
63 'PIC' : '.pic',
64 'TE' : '.te',
65 'DXE_DEPEX' : '.dpx',
66 'VERSION' : '.ver',
67 'UI' : '.ui',
68 'COMPAT16' : '.com16',
69 'RAW' : '.raw',
70 'FREEFORM_SUBTYPE_GUID': '.guid',
71 'SUBTYPE_GUID' : '.guid',
72 'FV_IMAGE' : 'fv.sec',
73 'COMPRESS' : '.com',
74 'GUIDED' : '.guided',
75 'PEI_DEPEX' : '.dpx',
76 'SMM_DEPEX' : '.dpx'
77 }
78
79 ## The constructor
80 #
81 # @param self The object pointer
82 #
83 def __init__(self):
84 FfsClassObject.__init__(self)