## @ FspTool.py\r
#\r
-# Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2015 - 2019, Intel Corporation. All rights reserved.<BR>\r
# SPDX-License-Identifier: BSD-2-Clause-Patent\r
#\r
##\r
from ctypes import *\r
\r
"""\r
-This utility supports some operations for Intel FSP 2.0 image.\r
+This utility supports some operations for Intel FSP 1.x/2.x image.\r
It supports:\r
- - Display FSP 2.0 information header\r
- - Split FSP 2.0 image into individual FSP-T/M/S/O component\r
- - Rebase FSP 2.0 components to a different base address\r
- - Generate FSP mapping C header file\r
+ - Display FSP 1.x/2.x information header\r
+ - Split FSP 2.x image into individual FSP-T/M/S/O component\r
+ - Rebase FSP 1.x/2.x components to a different base address\r
+ - Generate FSP 1.x/2.x mapping C header file\r
"""\r
\r
CopyRightHeaderFile = """/*\r
\r
fih = None\r
for fsp in self.FspList:\r
- if fsp.Fih.HeaderRevision < 3:\r
- raise Exception("ERROR: FSP 1.x is not supported by this tool !")\r
if not fih:\r
fih = fsp.Fih\r
else:\r
fd.ParseFsp ()\r
\r
for fsp in fd.FspList:\r
+ if fsp.Fih.HeaderRevision < 3:\r
+ raise Exception("ERROR: FSP 1.x is not supported by the split command !")\r
ftype = fsp.Type\r
if not nametemplate:\r
nametemplate = fspfile\r
\r
found = False\r
for fsp in fd.FspList:\r
+ # Is this FSP 1.x single binary?\r
+ if fsp.Fih.HeaderRevision < 3:\r
+ found = True\r
+ ftype = 'X'\r
+ break\r
ftype = fsp.Type.lower()\r
if ftype == fspcomp:\r
found = True\r
-# SplitFspBin.py is a python script to support some operations on Intel FSP 2.0 image.\r
+# SplitFspBin.py is a python script to support some operations on Intel FSP 1.x/2.x image.\r
\r
It supports:\r
\r
-- Split Intel FSP 2.0 image into individual FSP-T/M/S/O component\r
+- Split Intel FSP 2.x image into individual FSP-T/M/S/O component\r
\r
-- Rebase Intel FSP 2.0 components to different base addresses\r
+- Rebase Intel FSP 1.x/2.x components to different base addresses\r
\r
-- Generate Intel FSP 2.0 C header file\r
+- Generate Intel FSP 1.x/2.x C header file\r
\r
-- Display Intel FSP 2.0 information header for each FSP component\r
+- Display Intel FSP 1.x/2.x information header for each FSP component\r
\r
-## Split Intel FSP 2.0 image\r
+## Split Intel FSP 2.x image\r
\r
-To split individual FSP component in Intel FSP 2.0 image, the following\r
+FSP 1.x image is not supported by split command.\r
+To split individual FSP component in Intel FSP 2.x image, the following\r
command can be used:\r
\r
**python SplitFspBin.py split [-h] -f FSPBINARY [-o OUTPUTDIR] [-n NAMETEMPLATE]**\r
\r
-For example: \r
+For example:\r
\r
`python SplitFspBin.py split -f FSP.bin`\r
\r
It will create FSP_T.bin, FSP_M.bin and FSP_S.bin in current directory.\r
\r
-## Rebase Intel FSP 2.0 components\r
+## Rebase Intel FSP 1.x/2.x components\r
\r
-To rebase one or multiple FSP components in Intel FSP 2.0 image, the following\r
+To rebase one or multiple FSP components in Intel FSP 1.x/2.x image, the following\r
command can be used:\r
\r
**python SplitFspBin.py rebase [-h] -f FSPBINARY -c {t,m,s,o} [{t,m,s,o} ...] -b FSPBASE [FSPBASE ...] [-o OUTPUTDIR] [-n OUTPUTFILE]**\r
\r
-For example: \r
+For example:\r
\r
- `python SplitFspBin.py rebase -f FSP.bin –c t –b 0xFFF00000 –n FSP_new.bin`\r
+ `python SplitFspBin.py rebase -f FSP.bin -c t -b 0xFFF00000 -n FSP_new.bin`\r
\r
It will rebase FSP-T component inside FSP.bin to new base 0xFFF00000 and save the\r
- rebased Intel FSP 2.0 image into file FSP_new.bin.\r
+ rebased Intel FSP 2.x image into file FSP_new.bin.\r
+ For FSP 1.x image there is only one component in binary so above command also\r
+ works for FSP 1.x image.\r
\r
- `python SplitFspBin.py rebase -f FSP.bin –c t m –b 0xFFF00000 0xFEF80000 –n FSP_new.bin`\r
+ `python SplitFspBin.py rebase -f FSP.bin -c t m -b 0xFFF00000 0xFEF80000 -n FSP_new.bin`\r
\r
It will rebase FSP-T and FSP-M components inside FSP.bin to new base 0xFFF00000\r
- and 0xFEF80000 respectively, and save the rebased Intel FSP 2.0 image into file \r
+ and 0xFEF80000 respectively, and save the rebased Intel FSP 2.x image into file\r
FSP_new.bin file.\r
\r
-## Generate Intel FSP 2.0 C header file\r
+## Generate Intel FSP 1.x/2.x C header file\r
\r
-To generate Intel FSP 2.0 C header file, the following command can be used:\r
+To generate Intel FSP 1.x/2.x C header file, the following command can be used:\r
\r
**Python SplitFspBin.py genhdr [-h] -f FSPBINARY [-o OUTPUTDIR] [-n HFILENAME]**\r
\r
-For example: \r
+For example:\r
\r
- `python SplitFspBin.py genhdr -f FSP.bin –n FSP.h`\r
+ `python SplitFspBin.py genhdr -f FSP.bin -n FSP.h`\r
\r
It will create the C header file FSP.h containing the image ID, revision, offset\r
and size for each individual FSP component.\r
\r
-## Display Intel FSP 2.0 information header\r
+## Display Intel FSP 1.x/2.x information header\r
\r
-To display Intel FSP 2.0 information headers, the following command can be used:\r
+To display Intel FSP 1.x/2.x information headers, the following command can be used:\r
\r
**Python SplitFspBin.py info [-h] -f FSPBINARY**\r
\r
-For example: \r
+For example:\r
\r
`python SplitFspBin.py info -f FSP.bin`\r
\r