Hi Gustavo,
Command looks correct, please make sure you have sbl.bios.bin generated using
stitchloader.py before using the command.
SBL is now using chipset sticky register instead of CMOS to trigger firmware update. We
have updated documentation on this today, please look at
https://slimbootloader.github.io/supported-hardware/apollo-lake-crb.html#...
Triggering firmware update from Windows is now supported. Please see
https://slimbootloader.github.io/security/firmware-update.html#trigger-up...
to understand about this feature.
Thank you,
Raghava
From: Gustavo Plaza Roma <gustavo_plaza_(a)hotmail.com>
Sent: Tuesday, March 31, 2020 1:18 AM
To: Gudla, Raghava <raghava.gudla(a)intel.com>; sbl-devel(a)lists.01.org
Subject: RE: Help. SBL versioning
Hi,
Using the commands you mentioned I could generate the capsule update but I had to modify
the comand:
python ./BootloaderCorePkg/Tools/GenCapsuleFirmware.py -v -p BIOS sbl_lfh_ifwi.bin -k
./BootloaderCorePkg/Tools/Keys/TestSigningPrivateKey.pem -o FwuImage.bin
by
python ./BootloaderCorePkg/Tools/GenCapsuleFirmware.py -v -p BIOS sbl.bios.bin -k
./BootloaderCorePkg/Tools/Keys/TestSigningPrivateKey.pem -o FwuImage.bin
Is it correct?
I have another issue, reading section "Triggering Firmware Update" in
https://slimbootloader.github.io/supported-hardware/apollo-lake-crb.html#...,
I am trying to use CMOS register to trigger firmware update but it doesn't work like
it is described. I have seen IsFirmwareUpdate function was modified in this commit
https://github.com/slimbootloader/slimbootloader/commit/f6fd3a3f06db8b102...:
Before modification, the function only read the register:
IoWrite8 (0x70, FWU_BOOT_MODE_OFFSET);
FirmwareUpdateStatus = IoRead8 (0x71);
But the present repository code has more logic. How can I trigger firmware update from OS
using the master branch code?
Thanks,
Gustavo.
________________________________
De: Gudla, Raghava <raghava.gudla@intel.com<mailto:raghava.gudla@intel.com>>
Enviado: viernes, 27 de marzo de 2020 17:21
Para: Gustavo Plaza Roma
<gustavo_plaza_@hotmail.com<mailto:gustavo_plaza_@hotmail.com>>;
sbl-devel@lists.01.org<mailto:sbl-devel@lists.01.org>
<sbl-devel@lists.01.org<mailto:sbl-devel@lists.01.org>>
Asunto: RE: Help. SBL versioning
Hello,
Whole IFWI should not be used to create capsule. Only BIOS region is required to create
capsule.
Please look at "Slimbootloader binary for capsule image" section in
https://slimbootloader.github.io/supported-hardware/apollo-lake-crb.html to understand how
to create bios region for the capsule.
In your case, after you stitch IFWI, use the following command
python Platform/ApollolakeBoardPkg/Script/StitchLoader.py -b sbl.bios.bin -i
APL_SBL_IFWI.bin -s Outputs/apl/Stitch_Components.zip -o sbl_lfh_ifwi.bin
python ./BootloaderCorePkg/Tools/GenCapsuleFirmware.py -v -p BIOS sbl_lfh_ifwi.bin -k
./BootloaderCorePkg/Tools/Keys/TestSigningPrivateKey.pem -o FwuImage.bin
You can use FwuImage.bin to perform capsule update.
Please let us know if you see any other issues.
Thank you,
Raghava
From: Gustavo Plaza Roma
<gustavo_plaza_@hotmail.com<mailto:gustavo_plaza_@hotmail.com>>
Sent: Friday, March 27, 2020 1:15 AM
To: sbl-devel@lists.01.org<mailto:sbl-devel@lists.01.org>
Subject: [Sbl-devel] Help. SBL versioning
Hello,
I am trying to update SBL using the method shown in the documentation
https://slimbootloader.github.io/security/firmware-update.html but I get the following
error:
=================Read Capsule Image==============
BootMediumPciBase(0xE00A8000)
Init USB XHCI - Success
XHCI: Don't support multi-TT feature for Hub now. (force to disable MTT)
XhcPeiCheckUrbResult: STALL_ERROR! Completecode = 6
XhcPeiControlTransfer: error - Device Error, transfer - 2
XhcPeiCheckUrbResult: STALL_ERROR! Completecode = 6
XhcPeiControlTransfer: error - Device Error, transfer - 2
Enumerate Bus - Success
Found 7 USB devices on bus
Found mass storage on device 0
find boot partition
Partition type: MBR (1 logical partitions)
Find partion success
Find partition
Detected FAT on HwDev 0 Part 0
Capsule Image found, ImageSize=0x22128C
First 256Bytes of capsule image
00000000: 58 AE 3E 1A 80 B5 EF 4F-AC A3 A1 6D 9E 00 DF 5F *X.>....O...m..._*
00000010: 40 00 00 00 01 00 00 00-00 00 00 00 80 11 22 00
*@.............".*<mailto:*@.............%22.*>
00000020: 0C 01 00 00 40 00 00 00-38 10 22 00 78 10 22 00
*....@...8.".x.".*<mailto:*....@...8.%22.x.%22.*>
00000030: 08 01 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000040: 01 00 00 00 00 00 01 00-10 00 00 00 00 00 00 00 *................*
00000050: 02 00 00 00 13 68 5C 60-C7 C2 42 42 9C 27 50 A4 *.....h\`..BB.'P.*
00000060: C3 63 DB A4 01 00 00 00-00 10 22 00 00 00 00 00 *.c........".....*
00000070: 42 49 4F 53 00 00 00 00-42 49 4F 53 02 00 00 00 *BIOS....BIOS....*
00000080: 00 00 00 00 00 00 00 00-49 42 42 50 00 10 00 00 *........IBBP....*
00000090: 00 D0 0C 00 00 00 00 00-4F 42 42 50 00 E0 0C 00 *........OBBP....*
000000A0: 00 30 15 00 00 00 00 00-FF FF FF FF FF FF FF FF *.0..............*
000000B0: FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF *................*
000000C0: FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF *................*
000000D0: FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF *................*
000000E0: FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF *................*
000000F0: FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF *................*
CapsuleImage: 0x79470010, CapsuleSize: 0x22128C
HASH verification for usage (0x00000400) with Hash Alg (0x1): Success
SignType (0x1) SignSize (0x100) SignHashAlg (0x1)
RSA verification for usage (0x00000400): Success
Set next FWU state: 0x7F
Get current FWU state: 0x7F
GetFfsFileByName: Not Found
GetVersionfromFv: Not Found
VerifyFwVersion failed with Status = 0x8000000E
ApplyFwImage failed with Status = Not Found
Firmware Update status updated to reserved region
Set next FWU state: 0x77
Firmware update Done! clear CSE flag to normal boot mode.
HECI SecMode 0
I think my capsule image is not generated correctly. To do this, follow the steps below:
1. Build SBL for Apollo Lake:
python BuildLoader.py build apl
2. Generate IFWI image using StitchIfwi.py which generate the APL_SBL_IFWI.bin file.
3. Flash APL_SBL_IFWI.bin using Dediprog.
4. Generate capsule image:
python ./BootloaderCorePkg/Tools/GenCapsuleFirmware.py -v -p BIOS
../bios/IFWI/stitching/Output/APL_SBL_IFWI.bin -k
./BootloaderCorePkg/Tools/Keys/TestSigningPrivateKey.pem -o FwuImage.bin
5. Enter in SBL shell and run fwupdate whit a USB key connected.
6. I get the log shown at the beginning.
Could you tell me if capsule image is correctly generated, if it is not, which BIOS file
must I use as argument for GenCapsuleFirmware.py?
Thanks.
Best regards.