summaryrefslogtreecommitdiff
path: root/BaseTools/Source/Python/GenFds/Ffs.py
blob: 438bd186dc81f2fa402a4bdf2266eca7b379fd39 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
## @file
# process FFS generation
#
#  Copyright (c) 2007, Intel Corporation
#
#  All rights reserved. This program and the accompanying materials
#  are licensed and made available under the terms and conditions of the BSD License
#  which accompanies this distribution.  The full text of the license may be found at
#  http://opensource.org/licenses/bsd-license.php
#
#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#

##
# Import Modules
#
from CommonDataClass.FdfClass import FDClassObject

## generate FFS
#
#
class Ffs(FDClassObject):
    
    # mapping between MODULE type in FDF (from INF) and file type for GenFfs
    ModuleTypeToFileType = {
        'SEC'               : 'EFI_FV_FILETYPE_SECURITY_CORE',
        'PEI_CORE'          : 'EFI_FV_FILETYPE_PEI_CORE',
        'PEIM'              : 'EFI_FV_FILETYPE_PEIM',
        'DXE_CORE'          : 'EFI_FV_FILETYPE_DXE_CORE',
        'DXE_DRIVER'        : 'EFI_FV_FILETYPE_DRIVER',
        'DXE_SAL_DRIVER'    : 'EFI_FV_FILETYPE_DRIVER',
        'DXE_SMM_DRIVER'    : 'EFI_FV_FILETYPE_DRIVER',
        'DXE_RUNTIME_DRIVER': 'EFI_FV_FILETYPE_DRIVER',
        'UEFI_DRIVER'       : 'EFI_FV_FILETYPE_DRIVER',
        'UEFI_APPLICATION'  : 'EFI_FV_FILETYPE_APPLICATION',
        'SMM_CORE'          : 'EFI_FV_FILETYPE_SMM_CORE'
    }
    
    # mapping between FILE type in FDF and file type for GenFfs
    FdfFvFileTypeToFileType = {
        'SEC'               : 'EFI_FV_FILETYPE_SECURITY_CORE',
        'PEI_CORE'          : 'EFI_FV_FILETYPE_PEI_CORE',
        'PEIM'              : 'EFI_FV_FILETYPE_PEIM',
        'DXE_CORE'          : 'EFI_FV_FILETYPE_DXE_CORE',
        'FREEFORM'          : 'EFI_FV_FILETYPE_FREEFORM',
        'DRIVER'            : 'EFI_FV_FILETYPE_DRIVER',
        'APPLICATION'       : 'EFI_FV_FILETYPE_APPLICATION',
        'FV_IMAGE'          : 'EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE',
        'RAW'               : 'EFI_FV_FILETYPE_RAW',
        'PEI_DXE_COMBO'     : 'EFI_FV_FILETYPE_COMBINED_PEIM_DRIVER',
        'SMM'               : 'EFI_FV_FILETYPE_SMM',
        'SMM_CORE'          : 'EFI_FV_FILETYPE_SMM_CORE'
    }
    
    # mapping between section type in FDF and file suffix
    SectionSuffix = {
        'PE32'                 : '.pe32',
        'PIC'                  : '.pic',
        'TE'                   : '.te',
        'DXE_DEPEX'            : '.dpx',
        'VERSION'              : '.ver',
        'UI'                   : '.ui',
        'COMPAT16'             : '.com16',
        'RAW'                  : '.raw',
        'FREEFORM_SUBTYPE_GUID': '.guid',
        'FV_IMAGE'             : 'fv.sec',
        'COMPRESS'             : '.com',
        'GUIDED'               : '.guided',
        'PEI_DEPEX'            : '.dpx',
        'SMM_DEPEX'            : '.dpx'
    }
    
    ## The constructor
    #
    #   @param  self        The object pointer
    #
    def __init__(self):
        FfsClassObject.__init__(self)