Ffs.py revision 4fd606d1f5abe38e1f42c38de1d2e895166bd0f4
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw## @file
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# process FFS generation
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# This program and the accompanying materials
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# are licensed and made available under the terms and conditions of the BSD License
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# which accompanies this distribution. The full text of the license may be found at
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# http://opensource.org/licenses/bsd-license.php
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw##
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw# Import Modules
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwfrom CommonDataClass.FdfClass import FDClassObject
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw## generate FFS
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#
cb174861876aea6950a7ab4ce944aff84b1914cdjoyce mcintosh#
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwclass Ffs(FDClassObject):
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw # mapping between MODULE type in FDF (from INF) and file type for GenFfs
bbf6f00c25b6a2bed23c35eac6d62998ecdb338cJordan Brown ModuleTypeToFileType = {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw 'SEC' : 'EFI_FV_FILETYPE_SECURITY_CORE',
dc20a3024900c47dd2ee44b9707e6df38f7d62a5as 'PEI_CORE' : 'EFI_FV_FILETYPE_PEI_CORE',
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw 'PEIM' : 'EFI_FV_FILETYPE_PEIM',
b1352070d318187b41b088da3533692976f3f225Alan Wright 'DXE_CORE' : 'EFI_FV_FILETYPE_DXE_CORE',
b1352070d318187b41b088da3533692976f3f225Alan Wright 'DXE_DRIVER' : 'EFI_FV_FILETYPE_DRIVER',
b1352070d318187b41b088da3533692976f3f225Alan Wright 'DXE_SAL_DRIVER' : 'EFI_FV_FILETYPE_DRIVER',
b1352070d318187b41b088da3533692976f3f225Alan Wright 'DXE_SMM_DRIVER' : 'EFI_FV_FILETYPE_DRIVER',
b1352070d318187b41b088da3533692976f3f225Alan Wright 'DXE_RUNTIME_DRIVER': 'EFI_FV_FILETYPE_DRIVER',
b1352070d318187b41b088da3533692976f3f225Alan Wright 'UEFI_DRIVER' : 'EFI_FV_FILETYPE_DRIVER',
b1352070d318187b41b088da3533692976f3f225Alan Wright 'UEFI_APPLICATION' : 'EFI_FV_FILETYPE_APPLICATION',
b1352070d318187b41b088da3533692976f3f225Alan Wright 'SMM_CORE' : 'EFI_FV_FILETYPE_SMM_CORE'
b1352070d318187b41b088da3533692976f3f225Alan Wright }
b1352070d318187b41b088da3533692976f3f225Alan Wright
b1352070d318187b41b088da3533692976f3f225Alan Wright # mapping between FILE type in FDF and file type for GenFfs
b1352070d318187b41b088da3533692976f3f225Alan Wright FdfFvFileTypeToFileType = {
b1352070d318187b41b088da3533692976f3f225Alan Wright 'SEC' : 'EFI_FV_FILETYPE_SECURITY_CORE',
bbf6f00c25b6a2bed23c35eac6d62998ecdb338cJordan Brown 'PEI_CORE' : 'EFI_FV_FILETYPE_PEI_CORE',
bbf6f00c25b6a2bed23c35eac6d62998ecdb338cJordan Brown 'PEIM' : 'EFI_FV_FILETYPE_PEIM',
bbf6f00c25b6a2bed23c35eac6d62998ecdb338cJordan Brown 'DXE_CORE' : 'EFI_FV_FILETYPE_DXE_CORE',
bbf6f00c25b6a2bed23c35eac6d62998ecdb338cJordan Brown 'FREEFORM' : 'EFI_FV_FILETYPE_FREEFORM',
bbf6f00c25b6a2bed23c35eac6d62998ecdb338cJordan Brown 'DRIVER' : 'EFI_FV_FILETYPE_DRIVER',
bbf6f00c25b6a2bed23c35eac6d62998ecdb338cJordan Brown 'APPLICATION' : 'EFI_FV_FILETYPE_APPLICATION',
b1352070d318187b41b088da3533692976f3f225Alan Wright 'FV_IMAGE' : 'EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE',
bbf6f00c25b6a2bed23c35eac6d62998ecdb338cJordan Brown 'RAW' : 'EFI_FV_FILETYPE_RAW',
037cac007b685e7ea79f6ef7e8e62bfd342a4d56joyce mcintosh 'PEI_DXE_COMBO' : 'EFI_FV_FILETYPE_COMBINED_PEIM_DRIVER',
b1352070d318187b41b088da3533692976f3f225Alan Wright 'SMM' : 'EFI_FV_FILETYPE_SMM',
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw 'SMM_CORE' : 'EFI_FV_FILETYPE_SMM_CORE'
bbf6f00c25b6a2bed23c35eac6d62998ecdb338cJordan Brown }
bbf6f00c25b6a2bed23c35eac6d62998ecdb338cJordan Brown
bbf6f00c25b6a2bed23c35eac6d62998ecdb338cJordan Brown # mapping between section type in FDF and file suffix
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw SectionSuffix = {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw 'PE32' : '.pe32',
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw 'PIC' : '.pic',
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw 'TE' : '.te',
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw 'DXE_DEPEX' : '.dpx',
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw 'VERSION' : '.ver',
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw 'UI' : '.ui',
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw 'COMPAT16' : '.com16',
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw 'RAW' : '.raw',
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw 'FREEFORM_SUBTYPE_GUID': '.guid',
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw 'SUBTYPE_GUID' : '.guid',
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw 'FV_IMAGE' : 'fv.sec',
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw 'COMPRESS' : '.com',
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw 'GUIDED' : '.guided',
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw 'PEI_DEPEX' : '.dpx',
bbf6f00c25b6a2bed23c35eac6d62998ecdb338cJordan Brown 'SMM_DEPEX' : '.dpx'
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw }
7b59d02d2a384be9a08087b14defadd214b3c1ddjb
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb ## The constructor
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb #
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States # @param self The object pointer
b89a8333f5e1f75ec0c269b22524bd2eccb972banatalie li - Sun Microsystems - Irvine United States #
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb def __init__(self):
faa1795a28a5c712eed6d0a3f84d98c368a316c6jb FfsClassObject.__init__(self)
eb1d736b1c19f6abeee90c921a9320b67fedd016afshin salek ardakani - Sun Microsystems - Irvine United States