Re: [PATCH] IntelFsp2Pkg/FspSplitBin.py: Support rebasing 1.x binary.


Zeng, Star
 

Shouldn't the SplitFspBinUserManual.md also be updated?


Thanks,
Star

-----Original Message-----
From: Chiu, Chasel
Sent: Wednesday, May 29, 2019 10:33 PM
To: devel@edk2.groups.io
Cc: Ma, Maurice <maurice.ma@...>; Desimone, Nathaniel L
<@natedesimone>; Zeng, Star <star.zeng@...>
Subject: [PATCH] IntelFsp2Pkg/FspSplitBin.py: Support rebasing 1.x binary.

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1308

Support rebasing FSP 1.X binary.

Test: both FSP 2.X (Kabylake) and FSP 1.X (BroadwellDE) binary
can be rebased successfully.

Cc: Maurice Ma <maurice.ma@...>
Cc: Nate DeSimone <@natedesimone>
Cc: Star Zeng <star.zeng@...>
Signed-off-by: Chasel Chiu <chasel.chiu@...>
---
IntelFsp2Pkg/Tools/SplitFspBin.py | 21 +++++++++++++--------
1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/IntelFsp2Pkg/Tools/SplitFspBin.py
b/IntelFsp2Pkg/Tools/SplitFspBin.py
index 2458231d09..15c8bebee2 100644
--- a/IntelFsp2Pkg/Tools/SplitFspBin.py
+++ b/IntelFsp2Pkg/Tools/SplitFspBin.py
@@ -1,6 +1,6 @@
## @ FspTool.py
#
-# Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2015 - 2019, Intel Corporation. All rights
+reserved.<BR>
# SPDX-License-Identifier: BSD-2-Clause-Patent # ## @@ -14,12 +14,12 @@
import argparse
from ctypes import *

"""
-This utility supports some operations for Intel FSP 2.0 image.
+This utility supports some operations for Intel FSP 1.x/2.x image.
It supports:
- - Display FSP 2.0 information header
- - Split FSP 2.0 image into individual FSP-T/M/S/O component
- - Rebase FSP 2.0 components to a different base address
- - Generate FSP mapping C header file
+ - Display FSP 1.x/2.x information header
+ - Split FSP 2.x image into individual FSP-T/M/S/O component
+ - Rebase FSP 1.x/2.x components to a different base address
+ - Generate FSP 1.x/2.x mapping C header file
"""

CopyRightHeaderFile = """/*
@@ -500,8 +500,6 @@ class FirmwareDevice:

fih = None
for fsp in self.FspList:
- if fsp.Fih.HeaderRevision < 3:
- raise Exception("ERROR: FSP 1.x is not supported by this tool !")
if not fih:
fih = fsp.Fih
else:
@@ -713,6 +711,8 @@ def SplitFspBin (fspfile, outdir, nametemplate):
fd.ParseFsp ()

for fsp in fd.FspList:
+ if fsp.Fih.HeaderRevision < 3:
+ raise Exception("ERROR: FSP 1.x is not supported by the
+ split command !")
ftype = fsp.Type
if not nametemplate:
nametemplate = fspfile
@@ -742,6 +742,11 @@ def RebaseFspBin (FspBinary, FspComponent,
FspBase, OutputDir, OutputFile):

found = False
for fsp in fd.FspList:
+ # Is this FSP 1.x single binary?
+ if fsp.Fih.HeaderRevision < 3:
+ found = True
+ ftype = 'X'
+ break
ftype = fsp.Type.lower()
if ftype == fspcomp:
found = True
--
2.13.3.windows.1

Join devel@edk2.groups.io to automatically receive all group messages.