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]

Reply via email to