Hello,
I have migrated my work-in-progress project, adding a new mainboard, from coreboot v4.12 to v4.13 and now the boot using Tianocore is now broken!
Under v4.12 it would boot into Ubuntu but under v4.13 it is just putting me at a menu screen with three options: “Default Boot”, “Boot Menu” and “Boot Manager”. If I choose “Boot Menu” it doesn’t list any boot devices.
Uisng "Boot Manager” -> “Boot from file” I can navigate into one of the NVMe partitions and down the folders efi/boot/bootx64.efi and that will boot into Ubuntu via the following messages being shown on the screen:
System BootOrder not found. Initialising defaults. Creating boot entry “Boot0004” with label “ubuntu” for file “EFI\ubuntu\shimx64.efi” Could not create variable: Device Error
When I reboot I just get back to the menu screen.
I’m guessing there is a ne option in v4.13 that needs to be set or there is something that has changed v4.12 -> v4.13 but half a day of staring at it hasn’t shown it up. Given the messages are referring to shimx64.efi I guess it is something to do with secure boot.
-Andy.
hi Andy,
try disabling/deselecting SMMSTORE and see if that helps, assuming you are using the default CorebootPayloadPkg target
cheers, Matt
On Mon, Nov 30, 2020, 8:56 AM Andy Pont andy.pont@sdcsystems.com wrote:
Hello,
I have migrated my work-in-progress project, adding a new mainboard, from coreboot v4.12 to v4.13 and now the boot using Tianocore is now broken!
Under v4.12 it would boot into Ubuntu but under v4.13 it is just putting me at a menu screen with three options: “Default Boot”, “Boot Menu” and “Boot Manager”. If I choose “Boot Menu” it doesn’t list any boot devices.
Uisng "Boot Manager” -> “Boot from file” I can navigate into one of the NVMe partitions and down the folders efi/boot/bootx64.efi and that will boot into Ubuntu via the following messages being shown on the screen:
System BootOrder not found. Initialising defaults. Creating boot entry “Boot0004” with label “ubuntu” for file “EFI\ubuntu\shimx64.efi” Could not create variable: Device Error
When I reboot I just get back to the menu screen.
I’m guessing there is a ne option in v4.13 that needs to be set or there is something that has changed v4.12 -> v4.13 but half a day of staring at it hasn’t shown it up. Given the messages are referring to shimx64.efi I guess it is something to do with secure boot.
-Andy. _______________________________________________ coreboot mailing list -- coreboot@coreboot.org To unsubscribe send an email to coreboot-leave@coreboot.org
Matt wrote...
try disabling/deselecting SMMSTORE and see if that helps, assuming you are using the default CorebootPayloadPkg target
That has fixed it, thanks.
-Andy.
On Mon, Nov 30, 2020 at 11:06 AM Andy Pont andy.pont@sdcsystems.com wrote:
Matt wrote...
try disabling/deselecting SMMSTORE and see if that helps, assuming you are using the default CorebootPayloadPkg target
That has fixed it, thanks.
That means that the SMMSTORE / NVRAM EFI variable storage is getting corrupted somehow. What platform is this on? I've seen some older platforms which are problematic, especially Braswell, but newer Core platforms seem to work reasonably well. There's also a new SMMSTOREv2 implementation you can try, but requires using the TIanocore UEFIPayload option as well as setting the branch/commit ID to `origin/uefipayloadpkg`
-Andy.
Matt wrote…
That means that the SMMSTORE / NVRAM EFI variable storage is getting corrupted somehow. What platform is this on? I've seen some older platforms which are problematic, especially Braswell, but newer Core platforms seem to work reasonably well. There's also a new SMMSTOREv2 implementation you can try, but requires using the TIanocore UEFIPayload option as well as setting the branch/commit ID to `origin/uefipayloadpkg`
This is hardware that is based on Intel Comet Lake. It is using the flash descriptor from the stock BIOS but it could well be the case that I have something in the board.fmd or config defined incorrectly.
The board.fmd file contains:
FLASH 16M { BIOS@0x400000 0xC00000 { EC@0x0 0x20000 RW_MRC_CACHE@0x20000 0x10000 SMMSTORE@0x30000 0x40000 CONSOLE@0x70000 0x20000 FMAP@0x90000 0x200 COREBOOT(CBFS) } }
The key is that the EC firmware has to be the 128KiB at 0x400000. The rest of the definitions were cloned from one of the mainboards (I forget which).
-Andy.
On Mon, Nov 30, 2020 at 1:57 PM Andy Pont andy.pont@sdcsystems.com wrote:
Matt wrote…
That means that the SMMSTORE / NVRAM EFI variable storage is getting corrupted somehow. What platform is this on? I've seen some older platforms which are problematic, especially Braswell, but newer Core platforms seem to work reasonably well. There's also a new SMMSTOREv2 implementation you can try, but requires using the TIanocore UEFIPayload option as well as setting the branch/commit ID to `origin/uefipayloadpkg`
This is hardware that is based on Intel Comet Lake. It is using the flash descriptor from the stock BIOS but it could well be the case that I have something in the board.fmd or config defined incorrectly.
I've mostly been using SMMSTOREv2 w/UefiPayload+uefipayloadpkg on the CML devices I've been working on here (both Google and other boards), with no issues. But SMMSTORE (v1) should also work w/CorebootPayload. The SMMSTORE region is 64k-aligned and 256k so don't see any issues with the FMAP layout.
The board.fmd file contains:
FLASH 16M { BIOS@0x400000 0xC00000 { EC@0x0 0x20000 RW_MRC_CACHE@0x20000 0x10000 SMMSTORE@0x30000 0x40000 CONSOLE@0x70000 0x20000 FMAP@0x90000 0x200 COREBOOT(CBFS) } }
The key is that the EC firmware has to be the 128KiB at 0x400000. The rest of the definitions were cloned from one of the mainboards (I forget which).
-Andy.
Matt wrote…
That means that the SMMSTORE / NVRAM EFI variable storage is getting corrupted somehow. What platform is this on? I've seen some older platforms which are problematic, especially Braswell, but newer Core platforms seem to work reasonably well. There's also a new SMMSTOREv2 implementation you can try, but requires using the TIanocore UEFIPayload option as well as setting the branch/commit ID to `origin/uefipayloadpkg`
I then wrote some bits that aren’t relevant but led Matt to further write…
I've mostly been using SMMSTOREv2 w/UefiPayload+uefipayloadpkg on the CML devices I've been working on here (both Google and other boards), with no issues. But SMMSTORE (v1) should also work w/CorebootPayload. The SMMSTORE region is 64k-aligned and 256k so don't see any issues with the FMAP layout.
I have switched Tianocore to use the UEFIPayload option and specified the branch as origin/uefipayloadpkg and have enabled SMMSTOREv2. The unit boots to Ubuntu but each time it does it emits the following:
System BootOrder not found. Initialising defaults. Creating boot entry “Boot0003” with label “ubuntu” for file “EFI\ubuntu\shimx64.efi”
No amount of pressing [ESC] and saving options changes the behaviour. I’m assuming that this is the same issue as before and that the SMMSTORE is getting corrupted.
How to go about debugging it as I can’t get a debug build of the Tianocore payload in this configuration to build:
build.py... : error 7000: Failed to generate FV
build.py... : error 7000: Failed to execute command
- Failed - Build end time: 15:00:59, Dec.02 2020 Build total time: 00:00:53
mv: cannot stat ‘/home/xxxxxx/payloads/external/tianocore/tianocore/Build/UefiPayloadPkg*/*/FV/UEFIPAYLOAD.fd': No such file or directory
-Andy.
On Wed, Dec 2, 2020 at 9:05 AM Andy Pont andy.pont@sdcsystems.com wrote:
Matt wrote…
That means that the SMMSTORE / NVRAM EFI variable storage is getting
corrupted somehow. What platform is this on? I've seen some older platforms which are problematic, especially Braswell, but newer Core platforms seem to work reasonably well. There's also a new SMMSTOREv2 implementation you can try, but requires using the TIanocore UEFIPayload option as well as setting the branch/commit ID to `origin/uefipayloadpkg`
I then wrote some bits that aren’t relevant but led Matt to further write…
I've mostly been using SMMSTOREv2 w/UefiPayload+uefipayloadpkg on the CML devices I've been working on here (both Google and other boards), with no issues. But SMMSTORE (v1) should also work w/CorebootPayload. The SMMSTORE region is 64k-aligned and 256k so don't see any issues with the FMAP layout.
I have switched Tianocore to use the UEFIPayload option and specified the branch as origin/uefipayloadpkg and have enabled SMMSTOREv2. The unit boots to Ubuntu but each time it does it emits the following:
System BootOrder not found. Initialising defaults. Creating boot entry “Boot0003” with label “ubuntu” for file “EFI\ubuntu\shimx64.efi”
No amount of pressing [ESC] and saving options changes the behaviour. I’m assuming that this is the same issue as before and that the SMMSTORE is getting corrupted.
you're building master, or a branch with https://review.coreboot.org/c/coreboot/+/40520 included?
How to go about debugging it as I can’t get a debug build of the Tianocore payload in this configuration to build:
I probably need to increase the size of the FV for a debug build, I'll take a look in a bit
build.py... : error 7000: Failed to generate FV
build.py... : error 7000: Failed to execute command
- Failed -
Build end time: 15:00:59, Dec.02 2020 Build total time: 00:00:53
mv: cannot stat ‘/home/xxxxxx/payloads/external/tianocore/tianocore/Build/UefiPayloadPkg*/*/FV/UEFIPAYLOAD.fd': No such file or directory
-Andy.
Matt wrote…
you're building master, or a branch with https://review.coreboot.org/c/coreboot/+/40520 included?
I’m running master branch at commit #f79f00991c (from 4 days ago) so yes, it looks as though it has those changes included.
-Andy.
On Thu, Dec 3, 2020 at 5:52 AM Andy Pont andy.pont@sdcsystems.com wrote:
Matt wrote…
you're building master, or a branch with https://review.coreboot.org/c/coreboot/+/40520 included?
I’m running master branch at commit #f79f00991c (from 4 days ago) so yes, it looks as though it has those changes included.
-Andy.
I'll try to recheck here on my CML-based Chromebook that has serial output, and fix any compilation issues in debug mode
On Thu, Dec 3, 2020 at 11:55 AM Matt DeVillier matt.devillier@gmail.com wrote:
On Thu, Dec 3, 2020 at 5:52 AM Andy Pont andy.pont@sdcsystems.com wrote:
Matt wrote…
you're building master, or a branch with https://review.coreboot.org/c/coreboot/+/40520 included?
I’m running master branch at commit #f79f00991c (from 4 days ago) so yes, it looks as though it has those changes included.
-Andy.
I'll try to recheck here on my CML-based Chromebook that has serial output, and fix any compilation issues in debug mode
Andy, just pushed some updates to my uefipayloadpkg branch, and validated SMMSTORE v2 working here on a CML-based Chromebook. Debug compilation succeeds as long as your CBFS is large enough. Give it a go and LMK