Hello Coreboot Developers!
First, I want to say that it is really a joy to work with Coreboot. The code is well-written and of high-quality. :)
I'm currently trying to get Tianocore EDK2 running as a Coreboot payload in Qemu and meeting with limited success, though. I have a working configuration for the qemu q35 target. Building it for and running it with the 440fx/piix4 chipset results in the crash below.
Is PIIX4 supported with Coreboot/EDK2 or should this configuration be avoided?
I also appreciate any pointers in how to debug a situation like this. It looks like the crash happens in EDK2. Is there a way to get an ELF file that objdump understands, so I can see where in EDK2 code this issue originates from?
BS: BS_PAYLOAD_LOAD run times (exec / console): 64 / 2 ms Jumping to boot code at 0x008008c0(0x7ff9b000) !!!! X64 Exception Type - 00(#DE - Divide Error) CPU Apic ID - 00000000 !!!! RIP - 000000007F92FAB0, CS - 0000000000000038, RFLAGS - 0000000000000202 RAX - 000000007F938C20, RCX - 000000007F938C20, RDX - 0000000000000008 RBX - 0000000000000008, RSP - 000000007FF4B278, RBP - 000000007FF666E0 RSI - 000000007FF65910, RDI - 0000000000000001 R8 - 000000007FF63480, R9 - 0000000000000038, R10 - 000000007F93CF08 R11 - 000000007FF64F08, R12 - 0000000000000000, R13 - 0000000000000080 R14 - 000000007FF66760, R15 - 000000007FAA9118 DS - 0000000000000030, ES - 0000000000000030, FS - 0000000000000030 GS - 0000000000000030, SS - 0000000000000030 CR0 - 0000000080010011, CR2 - 0000000000000000, CR3 - 000000007FC01000 CR4 - 0000000000000228, CR8 - 0000000000000000 DR0 - 0000000000000000, DR1 - 0000000000000000, DR2 - 0000000000000000 DR3 - 0000000000000000, DR6 - 00000000FFFF0FF0, DR7 - 0000000000000400 GDTR - 000000007FBED718 0000000000000047, LDTR - 0000000000000000 IDTR - 000000007F93A018 0000000000000FFF, TR - 0000000000000000 FXSAVE_STATE - 000000007FF4AED0 !!!! Can't find image information. !!!!
Thanks! Julian
On Mon, 2021-03-29 at 17:45 +0300, Julian Stecklina wrote:
I'm currently trying to get Tianocore EDK2 running as a Coreboot payload in Qemu and meeting with limited success, though. I have a working configuration for the qemu q35 target. Building it for and running it with the 440fx/piix4 chipset results in the crash below.
Maybe some additional information: I was using CONFIG_TIANOCORE_COREBOOTPAYLOAD=y.
With CONFIG_TIANOCORE_UEFIPAYLOAD, I get a build failure. I've opened https://ticket.coreboot.org/issues/303 for this.
Julian
Tianocore with the COREBOOTPAYLOAD option is my (heavily modified) fork of the now-deprecated CorebootPayloadPkg package which works on Intel Core-based platforms Sandybridge and newer. No attempt has been make to get it working under qemu or other hardware. The UEFIPAYLOAD option builds upstream edk2 master, which may or may not be functional on any given day. You likely also need to remove your tianocore subdir before switching between the two options. Remove the '-q' option from the makefile if building continues to fail
On Mon, Mar 29, 2021 at 10:40 AM Julian Stecklina julian.stecklina@cyberus-technology.de wrote:
On Mon, 2021-03-29 at 17:45 +0300, Julian Stecklina wrote:
I'm currently trying to get Tianocore EDK2 running as a Coreboot payload in Qemu and meeting with limited success, though. I have a working configuration for the qemu q35 target. Building it for and running it with the 440fx/piix4 chipset results in the crash below.
Maybe some additional information: I was using CONFIG_TIANOCORE_COREBOOTPAYLOAD=y.
With CONFIG_TIANOCORE_UEFIPAYLOAD, I get a build failure. I've opened https://ticket.coreboot.org/issues/303 for this.
Julian
coreboot mailing list -- coreboot@coreboot.org To unsubscribe send an email to coreboot-leave@coreboot.org
On Mon, 2021-03-29 at 11:36 -0500, Matt DeVillier wrote:
Tianocore with the COREBOOTPAYLOAD option is my (heavily modified) fork of the now-deprecated CorebootPayloadPkg package which works on Intel Core-based platforms Sandybridge and newer. No attempt has been make to get it working under qemu or other hardware. The UEFIPAYLOAD option builds upstream edk2 master, which may or may not be functional on any given day. You likely also need to remove your tianocore subdir before switching between the two options. Remove the '-q' option from the makefile if building continues to fail
Thanks for the hints!
Is anyone actually actively using TianoCore EDK2 on top of coreboot or is support experimental in general?
Julian
Julian wrote…
Is anyone actually actively using TianoCore EDK2 on top of coreboot or is support experimental in general?
We have platforms that are using Matt’s UEFIPayload package to boot either Linux or Windows. The mainboards and configs aren’t in the upstream coreboot repo at present - I am just working with the company concerned to get them into a form where they will (hopefully) be accepted.
-Andy.
On Thu, 2021-04-15 at 16:49 +0000, Andy Pont wrote:
Julian wrote…
Is anyone actually actively using TianoCore EDK2 on top of coreboot or is support experimental in general?
We have platforms that are using Matt’s UEFIPayload package to boot either Linux or Windows. The mainboards and configs aren’t in the upstream coreboot repo at present - I am just working with the company concerned to get them into a form where they will (hopefully) be accepted.
This is great news! We are mostly interested in running Coreboot+EDK2 in a virtualized environment and knowing that it works in the real world gives a confidence boost here.
We are not afraid of fixing the occasional issue and bitrot, but fully maintaining everything is out of scope for us.
Julian
Hi Julian,
There are a couple of Repo's you can check out:
https://github.com/tianocore/edk2
https://github.com/MrChromebox/edk2
https://github.com/9elements/edk2
https://github.com/system76/edk2
We are using our own Fork (9elements) on a CFL Board in production. Also System76 does use their Fork in production - so setting this up in a virtualized environment shouldnt be a problem at all. To be honest, I would not start with the tianocore one, use one of the forks ;)
Best,
On 4/16/21 1:44 PM, Julian Stecklina wrote:
On Thu, 2021-04-15 at 16:49 +0000, Andy Pont wrote:
Julian wrote…
Is anyone actually actively using TianoCore EDK2 on top of coreboot or is support experimental in general?
We have platforms that are using Matt’s UEFIPayload package to boot either Linux or Windows. The mainboards and configs aren’t in the upstream coreboot repo at present - I am just working with the company concerned to get them into a form where they will (hopefully) be accepted.
This is great news! We are mostly interested in running Coreboot+EDK2 in a virtualized environment and knowing that it works in the real world gives a confidence boost here.
We are not afraid of fixing the occasional issue and bitrot, but fully maintaining everything is out of scope for us.
Julian
coreboot mailing list -- coreboot@coreboot.org To unsubscribe send an email to coreboot-leave@coreboot.org
Hi Christian,
thanks for the many pointers. This is really helpful! :)
Is there any deeper reason why fixes don't flow back to EDK2?
Julian
On Fri, 2021-04-16 at 13:58 +0200, Christian Walter wrote:
Hi Julian,
There are a couple of Repo's you can check out:
https://github.com/tianocore/edk2
https://github.com/MrChromebox/edk2
https://github.com/9elements/edk2
https://github.com/system76/edk2
We are using our own Fork (9elements) on a CFL Board in production. Also System76 does use their Fork in production - so setting this up in a virtualized environment shouldnt be a problem at all. To be honest, I would not start with the tianocore one, use one of the forks ;)
Best,
On 4/16/21 1:44 PM, Julian Stecklina wrote:
On Thu, 2021-04-15 at 16:49 +0000, Andy Pont wrote:
Julian wrote…
Is anyone actually actively using TianoCore EDK2 on top of coreboot or is support experimental in general?
We have platforms that are using Matt’s UEFIPayload package to boot either Linux or Windows. The mainboards and configs aren’t in the upstream coreboot repo at present - I am just working with the company concerned to get them into a form where they will (hopefully) be accepted.
This is great news! We are mostly interested in running Coreboot+EDK2 in a virtualized environment and knowing that it works in the real world gives a confidence boost here.
We are not afraid of fixing the occasional issue and bitrot, but fully maintaining everything is out of scope for us.
Julian
coreboot mailing list -- coreboot@coreboot.org To unsubscribe send an email to coreboot-leave@coreboot.org
-- *Christian Walter* *Head of Firmware Development / Cyber Security *
9elements GmbH, Kortumstraße 19-21, 44787 Bochum, Germany Email: christian.walter@9elements.com Phone: _+49 234 68 94 188 tel:+492346894188_ Mobile: _+49 176 70845047 tel:+4917670845047_
Sitz der Gesellschaft: Bochum Handelsregister: Amtsgericht Bochum, HRB 17519 Geschäftsführung: Sebastian Deutsch, Eray Basar
Datenschutzhinweise nach Art. 13 DSGVO https://9elements.com/privacy _______________________________________________ coreboot mailing list -- coreboot@coreboot.org To unsubscribe send an email to coreboot-leave@coreboot.org
Julian Stecklina wrote:
Is there any deeper reason why fixes don't flow back to EDK2?
I'm guessing here - I have no experience with EDK2 development - but I suspect that it's not actually an open source project, I think it's just source code by Intel+Microsoft+friends published on GitHub.
The traditional firmware industry isn't so good at community efforts.
//Peter