On Tue, Sep 14, 2021 at 1:58 PM Brian Milliron brian.milliron@foresite.com wrote:
Hi Matt.
hi Brian,
coreboot support is extremely hardware specific by nature, so there are no generic platform targets (other than the emulation ones).
In order to use coreboot on your board, you'd first need to ensure that Bootguard (or similar signature checking schemes) are not being used, which would prevent loading unsigned firmware. Then you'd need to dump the hardware config of the device in order to build a board profile (devicetree, GPIO assignments, etc).
There is firmware signing, but as I'm using a hardware based flasher, I can circumvent this, I think. How would I dump the hardware config and build a board profile? Is that something I could do myself or would it be up to the coreboot devs to create and integrate a board profile?
Using a hardware flasher isn't a workaround, the signature check is done in hardware by the ACM using keys fused into the ME. If Bootguard enabled and keys fused, nothing can be done unfortunately.
You can build a large chunk of the board profile using inteltool (if platform supported), dumping ACPI, etc. But there are plenty of bits that aren't currently documented. And getting the EC to cooperate can be a real chore.
cbfstool isn't going to recognize a dump of your vendor firmware as it doesn't contain a CBFS (coreboot filesystem). You'll need to use other tools if you need to dump/extract bits from the vendor firmware, though that's not always necessary, given that FSP does most of the heavy lifting and is included as part of the build process for (most) platforms that use it
I was under the impression I would need the flash descriptor, video BIOS or VBT, Intel ME, PCH Reference Code, and Memory Reference Code (MRC). The Intel ME I downloaded from the winraid archive, but the others I would need to get from firmware. The Intel FSP is now included in coreboot? Are none of the others needed any more? If some of them are needed, what tools could I use to extract them?
the IFD and ME aren't needed strictly speaking, unless you need to modify them in some way. But you would extract those using ifdtool. Definitely don't want to use a non-board-specific ME downloaded from win-raid (eg) as the soft straps and clock mappings will not be correct for your board.
FSP (which contains both the MRC and PCH refcode) also does video init, and VBIOS isn't used on modern platforms. coreboot's native display init (libgfxinit) is preferred if available. The only bit you will likely need is the VBT, which you can get from Linux (or dump from vendor firmware, but often contains multiple copies).