On Thu, Dec 14, 2023 at 6:07 PM James Feeney <james(a)nurealm.net> wrote:
> > To get it to update values to new default settings, run:
> > make savedefconfig && make defconfig KBUILD_DEFCONFIG=${PWD}/defconfig
> > The Kconfig in coreboot document is written with developers writing
> Kconfig files in mind, but it's got a lot of useful information about how
> Kconfig works.
>
> That helps. It's sort of a "process", building a ".config", rather than a
> single "make nconfig" and done.
>
since you're starting with my defconfigs, you don't need to change
anything. They are the exact configs I use to build my release firmware and
are known/tested working.
>
> > all this mess is because you're trying to use an existing config rather
> than start from my defconfig, which is designed to work with my repo. The
> selections are currently guarded appropriately. ADD_FSP_BINARIES only needs
> to be selected if not using the 3rdparty/fsp repo (as it's selected by
> default there).
>
> Ah! Ok, I see that now. I'm stumbling-around, trying to understand config
> options. It's overwhelming at first. And it requires learning to "trust
> the defaults".
>
you're not trusting the defaults, you're trusting my configs which are used
to build working firmware. The defaults are not sane or there wouldn't be a
dozen lines in the defconfigs and a handful more in my site-local/Kconfig
>
> Some config options for a board are "required - don't touch!", and others
> really are "optional". I'm getting a sense of which is which, but there
> doesn't seem to really be a "config overview" or centralized guidance. And
> it's probably different for every different cpu architecture.
>
indeed, knowing what can/should be changed in many cases requires being a
firmware developer with reasonable familiarity with coreboot, the platform,
and the board in question
>
> >> … Hmm - so, if the blob files referenced in site-local/Kconfig are not
> extracted from the stock ChromeOS firmware images for GLK boards, and they
> are not built from source by coreboot, then where are they from?
>
> > they're extracted from another coreboot device which uses newer FSP
> blobs than the Google ones. Which is why I use the newer headers.
>
> Aha! Thanks for that.
>
> Comparing the latest "bluebird" update,
> bios-casta.ro-11297-222-0.rw-11297-411-0.bin, from
> chromeos_15604.57.0_octopus_recovery_stable-channel_mp-v32.bin, and your
> newer FSP blobs, I see:
>
> $ strings 2023Dec01/fsps.bin |grep octopus|head -n1
>
> /build/octopus/tmp/portage/sys-boot/intel-glkfsp-0.0.1-r9/work/intel-glkfsp-0.0.1/Build/GeminilakeFspPkg/RELEASE_COREBOOT/IA32/GeminilakeFspPkg/FspHeader/FspHeader/OUTPUT/./FspHeader.dll
>
> $ strings 3rdparty/blobs/mainboard/google/octopus/casta/fsps.bin | grep
> octopus | head -n1
>
> /build/octopus/tmp/portage/sys-boot/intel-glkfsp-0.0.1-r8/work/intel-glkfsp-0.0.1/Build/GeminilakeFspPkg/RELEASE_COREBOOT/IA32/GeminilakeFspPkg/FspHeader/FspHeader/OUTPUT/./FspHeader.dll
>
> The most recent bios has that "-r9", versus the "-r8". I expect that that
> refers to an even newer "release 9" versus a "release 8". And, this "-r9"
> should also work with the setting:
> CONFIG_FSP_HEADER_PATH="src/vendorcode/intel/fsp/fsp2_0/geminilake/
> 2.2.3.1"
>
NO! those strings are simply build paths, they have no correlation to the
version of headers which need to be used with a given binary/binaries.
Google binaries use Google's headers. Intel's binaries use Intel's headers.
Also, the binaries in my repo would not have anything resembling that build
path as it's specific to a Google ChromeOS build system, and my binaries
are not from a ChromeOS device.
TBF, this is unnecessarily confusing because Intel chose to not publicly
release FSP headers/binaries for Geminilake (or Jasperlake).
Everything is set correctly in my repo so that a user who clones my
repo/submodules and uses my build script will end up with a functional
firmware image for a given board.
> Is that correct?
>
>
>