On 22.02.2017 08:12, Zoran Stojsavljevic wrote:
> Hello to community,
>
> I finally, after 3 days of additional very hard struggle, found out why I
> have (while I am in the last stage of building CBFS) nonsense while
> building APL-I Coreboot coreboot.rom?!
>
> Please, read carefully this announcement.
>
> For last three days I came to hard stop because of this failure:
>
> Just quick look into the final failure (all passed, but last stage - IFD
> failed):
>
> Compile IFDTOOL
> HOSTCC util/ifdfake/ifdfake
> DD Adding Intel Firmware Descriptor
> IFDTOOL Unlocking Management Engine
> File build/coreboot.pre is 8388608 bytes
> No Flash Descriptor found in this image
> *src/southbridge/intel/common/firmware/Makefile.inc:50: recipe for target
> 'add_intel_firmware' failed*
> *make: *** [add_intel_firmware] Error 1*
> [user@localhost coreboot]$
>
> At first, I suspect that culprit my .config file, but I have checked it
> several times (maybe > dozen), and I could NOT find any problem with it
> (except minor doubts).
>
> Then I switched to inspect -southbridge- setup, but these is none, since
> (simplified explanation/view) APL-I is SoC.
>
> The next phase was to inspect
> *src/southbridge/intel/common/firmware/Makefile.inc* , but there (although
> my make scripting is rusty) I could NOT find any problem...
>
> Finally, somewhere around 2:00 AM I noticed/determined the root cause of
> the problem: the util/ifdtool/ifdtool.c, line:
> if (*(uint32_t *) (image + i) == *0x0FF0A55A*) {
>
> YET another INTEL IOTG PED hidden road bomb: the latest APL-I FSP: APL-I_
> FSP/ApolloLakeFspBinPkg/FspBin/ApolloLakeFsp.fd does NOT have pattern
> *0x0FF0A55A* embedded in it (I have checked with HxD WIN tool).
Looks like this [VERY IMPORTANT] Announcement is about you, confusing
two very different concepts. FSP is a binary program run by coreboot
and has nothing in common with the Intel Firmware Descriptor. It's
called *.fd for some reason I don't know, but I'm pretty sure it's
another binary. The Firmware Descriptor describes some flash parameters
and soft straps. It's just data, no program. You only need it as an OEM
to build a full ROM image for a new system. If you have a system that
already runs another firmware, you can just keep the existing descriptor
in place.
Nico