Hey Matt You recommend extracting all audio/dsp blobs, which appears straightforward, but then, how can these blobs be referenced in the .config for inclusion in coreboot?
I only see "Include blobs for audio" with "make nconfig", symbol INCLUDE_NHLT_BLOBS. Enabling this, the coreboot compile ends with "make: *** No rule to make target '3rdparty/blobs/soc/intel/glk/nhlt-blobs/dmic-2ch-48khz-16b.bin', needed by 'build/coreboot.pre'. Stop." How did you include the chromeos recovery image audio blobs into coreboot? Thanks James On 6/18/21 9:16 PM, James Feeney wrote: > On 6/18/21 8:25 PM, Matt DeVillier wrote: >> `cbfstool <filename> layout` will show the regions in the FMAP, use >> `cbfstool <filename> read -r IFWI -f ifwi.bin` to extract. >> >> I would use the exact same microcode file as the recovery image; coreboot >> isn't guaranteed to include all applicable cpuids, and APL/GLK seem weird >> about updating in the FIT >> >> FSP/GOP display init requires the vbt to be included/added, it should be an >> option from the menu. >> >> vbgfx.bin is only used by depthcharge, it's not needed for any other >> payload. >> >> > > Ha! Many thanks Matt. That is very useful information, every point! The > process is so simple, given the proper instructions - and seems > insurmountably opaque without them. Definitely information that would be > useful to find in the wiki! > > I'll let you know how it works. > > James > > >> On Fri, Jun 18, 2021, 8:31 PM James Feeney <[email protected] >> <mailto:[email protected]>> wrote: >> >> >> On 6/18/21 11:00 AM, Matt DeVillier wrote: >> > hi James, >> > >> > I've built working upstream coreboot images for both APL and GLK >> > Chromebooks (reef and octopus boards respectively). >> > >> > Starting with a recovery image for the board you're working with, >> > you'll need to extract the ifwi.bin, vbt.bin, fspm.bin/fsps.bin (GLK >> > only; APL can use 3rdparty fsp repo), CPU microcode, and all audio/dsp >> > blobs. use cbfstool for this. Then you'll need to set your config to >> > use the extracted blobs / place them in the expected locations, set >> > display init to FSP/GOP, and set the payload to Tianocore. Here's my >> > defconfig for google/ampton (GLK) as an example: >> > >> > CONFIG_VENDOR_GOOGLE=y >> > CONFIG_NO_POST=y >> > >> CONFIG_IFD_BIN_PATH="3rdparty/blobs/mainboard/google/ampton/flashdescriptor.bin" >> > CONFIG_BOARD_GOOGLE_AMPTON=y >> > # CONFIG_CONSOLE_SERIAL is not set >> > CONFIG_INCLUDE_NHLT_BLOBS=y >> > CONFIG_INTEL_GMA_ADD_VBT=y >> > >> CONFIG_INTEL_GMA_VBT_FILE="3rdparty/blobs/mainboard/google/ampton/vbt.bin" >> > CONFIG_NEED_IFWI=y >> > CONFIG_IFWI_FILE_NAME="3rdparty/blobs/mainboard/google/ampton/ifwi.bin" >> > CONFIG_HAVE_IFD_BIN=y >> > CONFIG_ADD_FSP_BINARIES=y >> > CONFIG_FSP_M_FILE="3rdparty/blobs/mainboard/google/ampton/fspm.bin" >> > CONFIG_FSP_S_FILE="3rdparty/blobs/mainboard/google/ampton/fsps.bin" >> > CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_BINS=y >> > >> CONFIG_CPU_UCODE_BINARIES="3rdparty/blobs/soc/intel/glk/cpu_microcode_blob.bin" >> > CONFIG_LOCK_MANAGEMENT_ENGINE=y >> > CONFIG_PAYLOAD_TIANOCORE=y >> > >> > APL would be almost the exact same, but without the 3 FSP-related >> lines. >> > >> > cheers, >> > Matt >> > >> >> >> Thanks very much for that. Hmm - some questions: >> >> My chromebook is the google octopus casta bluebird. Running "cbfstool >> bios-casta.ro-11297-193-0.rw-11297-193-0.bin print" does not show any kind >> of ifwi.bin file. Running "ifwitool >> bios-casta.ro-11297-193-0.rw-11297-193-0.bin print -d" only gives references >> to the components, those shown with "ifwitool -h", under "NAME should be one >> of:". That's why I was asking about how to extract an ifwi.bin. >> >> Did your Ampton recovery image include a distinct "ifwi.bin" file, by >> using cbfstool? >> >> I'm building u-boot as the payload, instead of Tianocore, but I don't >> expect that that make any difference. >> >> However, "cbfstool build/coreboot.rom print" does show a >> cpu_microcode_blob.bin file, built by coreboot. I'm guessing that this >> microcode file is as good as the one in the recovery image? >> >> The recovery image also has a vbgfx.bin. I'm wondering if I should do >> something with this? "make nconfig" fails to offer any gfx settings, though >> several gfx settings can be seen when manually editing the .config. >> >> So, I'm stuck trying to understand sourcing this ifwi.bin file. Any >> suggestions? >> >> James >> >> >> >> > On Fri, Jun 18, 2021 at 11:13 AM James Feeney <[email protected] >> <mailto:[email protected]>> wrote: >> >> >> >> Back in 2017 there was some brief discussion of how to compile >> coreboot for apollolake, with some uncertainty about the IFWI segment. Does >> anyone know the current status of coreboot support for >> apollolake/geminilake? In particular, to replace a Chromebook boot rom? >> >> >> >> The coreboot configuration options are confusing in the sense that >> the intended outcome of particular settings is not explained. For instance, >> there is coreboot code compiled addressing the Intel FSP, but there are no >> FSP files generated in the resulting coreboot.rom. >> >> >> >> Working from a Chromebook bios upgrade image, it seems that many >> components might simply be copied from there, but then, there seems to be no >> tool to extract the complete IFWI segment from an existing bios image, >> except in pieces that would require reassembly. Is there some way that an >> existing IFWI segment can be extracted and used in another compiled coreboot >> image? Or, is there "security" code in the IFWI segment that will prevent a >> compatible working coreboot rom built in this way? >> >> >> >> James >> >> _______________________________________________ >> >> coreboot mailing list -- [email protected] >> <mailto:[email protected]> >> >> To unsubscribe send an email to [email protected] >> <mailto:[email protected]> >> > _______________________________________________ > coreboot mailing list -- [email protected] > To unsubscribe send an email to [email protected] > _______________________________________________ coreboot mailing list -- [email protected] To unsubscribe send an email to [email protected]

