Stitch Tool
StitchLoader.py
is a utility to replace SBL image in a fully flashable IFWI image. It takes all system firmware components from a working IFWI image and replace the BIOS region with SBL components.
This tool is used to create two output files:
IFWI image with SBL (-o option).
SBL BIOS image for capsule update (-b option). See Firmware Update.
The command line options to perform stitching:
usage: StitchLoader.py [-h] -i IFWI_IN [-o IFWI_OUT] [-b BIOS_OUT]
[-s STITCH_IN] [-p PLAT_DATA]
optional arguments:
-h, --help show this help message and exit
-i IFWI_IN, --input-ifwi-file IFWI_IN
Specify input template IFWI image file path
-o IFWI_OUT, --output-ifwi-file IFWI_OUT
Specify generated output IFWI image file path
-b BIOS_OUT, --output-bios-region BIOS_OUT
Specify generated output BIOS region image file path
-s STITCH_IN, --sitch-zip-file STITCH_IN
Specify input sitching zip package file path
-p PLAT_DATA, --platform-data PLAT_DATA
Specify a platform specific data (HEX, DWORD) for
customization
PLAT_DATA is a DWORD containing platform data to configure debug UART port number. Format is defined below:
For Apollo Lake:
typedef struct {
UINT8 PlatformId : 5; /* Platform ID */
UINT8 Reserved1 : 3;
UINT8 DebugUart : 2; /* UART port index */
UINT8 Reserved2 : 6;
UINT8 Reserved3;
UINT8 Marker; /* 'AA' */
} STITCH_DATA;
For Coffee Lake Refresh and Whiskey Lake:
typedef struct {
UINT8 PlatformId : 5; /* Platform ID */
UINT8 Reserved1 : 3;
UINT8 DebugUart; /* UART port index */
UINT8 Reserved3;
UINT8 Marker; /* 'AA' */
} STITCH_DATA;
IFWI Image vs. SBL BIOS Image
IFWI image is used as input to program SPI flash on the hardware, while SBL BIOS image is used as input file to create firmware update capsule image.