system76 / firmware-open

System76 Open Firmware
Other
949 stars 86 forks source link

Update RPL FSPs to 4221.00 #452

Closed crawfxrd closed 7 months ago

crawfxrd commented 1 year ago

Update the FSPs for:

This is the version Intel used for the most recent upstream coreboot changes.

As part of this, FSPs are now moved to fsp/<soc>/<version> instead of being in an arbitrary model's directory. All symlinks have been updated to point to the new locations.

Ref: Intel Software Kit ID 686654 Ref: https://review.coreboot.org/c/coreboot/+/76147


TEST

crawfxrd commented 1 year ago

This fixes compilation failures due to missing symbols when compiling with upstream coreboot, but it still fails due to -Wmissing-include-dirs in Makefile.inc.

AFAICT, it's converting an absolute path to a relative path? When compiling vboot?

    CC            firmware/2lib/2api.o
/usr/bin/ccache /home/tcrawford/Projects/System76/firmware-open/coreboot/util/crossgcc/xgcc/bin/i386-elf-gcc -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/include -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/commonlib/include -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/commonlib/bsd/include -I/home/tcrawford/Projects/System76/firmware-open/coreboot/3rdparty/vboot/firmware/include -include /home/tcrawford/Projects/System76/firmware-open/coreboot/src/include/kconfig.h -include /home/tcrawford/Projects/System76/firmware-open/coreboot/src/include/rules.h -include /home/tcrawford/Projects/System76/firmware-open/coreboot/src/commonlib/bsd/include/commonlib/bsd/compiler.h -I/home/tcrawford/Projects/System76/firmware-open/coreboot/3rdparty -D__BUILD_DIR__="build" -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/soc/intel/alderlake -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/soc/intel/alderlake/include -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/drivers/intel/fsp2_0/include -I/home/tcrawford/Projects/System76/firmware-open/coreboot//home/tcrawford/Projects/System76/firmware-open/models/addw3/AlderLakeFspBinPkg/Include -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/mainboard/system76/rpl/include -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/soc/intel/common/basecode/include/ -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/soc/intel/common/block/include/ -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/soc/intel/common/pch/include/ -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/vendorcode/intel/edk2/edk2-stable202005/MdePkg/Include -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/vendorcode/intel/edk2/edk2-stable202005/IntelFsp2Pkg/Include -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/vendorcode/intel/edk2/edk2-stable202005/MdeModulePkg/Include -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/vendorcode/siemens/hwilib -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/soc/intel/common/block/fast_spi -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/arch/x86/include -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/vendorcode/intel/edk2/edk2-stable202005/MdePkg/Include/Ia32 -D__ARCH_x86_32__ -pipe -g -nostdinc -std=gnu11 -nostdlib -Wall -Wundef -Wstrict-prototypes -Wmissing-prototypes -Wwrite-strings -Wredundant-decls -Wno-trigraphs -Wimplicit-fallthrough -Wshadow -Wdate-time -Wtype-limits -Wvla -Wold-style-definition -Wdangling-else -Wmissing-include-dirs -fno-common -ffreestanding -fno-builtin -fomit-frame-pointer -fstrict-aliasing -ffunction-sections -fdata-sections -fno-pie -Wno-packed-not-aligned -fconserve-stack -Wnull-dereference -Wlogical-op -Wduplicated-cond -Wno-array-compare -Werror -Os -Wno-address-of-packed-member  -m32  -fuse-ld=bfd -fno-stack-protector -Wl,--build-id=none -fno-delete-null-pointer-checks -Wlogical-op -march=i686 -mno-mmx -mno-sse -D__ROMSTAGE__ -I/home/tcrawford/Projects/System76/firmware-open/coreboot/build -Wno-missing-prototypes -DVBOOT_DEBUG -std=gnu11 -DEC_EFS=0 -DTPM2_SIMULATOR=0 -MMD -MF /home/tcrawford/Projects/System76/firmware-open/coreboot/build/external/vboot_reference-romstage/firmware/2lib/2api.o.d -D_GNU_SOURCE  -DHAVE_EXECINFO_H -Ifirmware/include -Ifirmware/lib/include -Ifirmware/lib/cgptlib/include -Ifirmware/lib/tpm_lite/include -Ifirmware/2lib/include -c -o /home/tcrawford/Projects/System76/firmware-open/coreboot/build/external/vboot_reference-romstage/firmware/2lib/2api.o firmware/2lib/2api.c
cc1: error: ../../home/tcrawford/Projects/System76/firmware-open/models/addw3/AlderLakeFspBinPkg/Include: No such file or directory [-Werror=missing-include-dirs]
cc1: note: unrecognized command-line option '-Wno-array-compare' may have been intended to silence earlier diagnostics
cc1: all warnings being treated as errors
make[1]: *** [Makefile:1164: /home/tcrawford/Projects/System76/firmware-open/coreboot/build/external/vboot_reference-romstage/firmware/2lib/2api.o] Error 1
make: *** [src/security/vboot/Makefile.inc:47: build/external/vboot_reference-romstage/vboot_fw.a] Error 2

Somewhere in that behemoth is

-I/home/tcrawford/Projects/System76/firmware-open/coreboot//home/tcrawford/Projects/System76/firmware-open/models/addw3/AlderLakeFspBinPkg/Include

On system76-4.19:

    CC            firmware/2lib/2api.o
/usr/bin/ccache /home/tcrawford/Projects/System76/firmware-open/coreboot/util/crossgcc/xgcc/bin/i386-elf-gcc -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/include -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/commonlib/include -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/commonlib/bsd/include -I/home/tcrawford/Projects/System76/firmware-open/coreboot/3rdparty/vboot/firmware/include -include /home/tcrawford/Projects/System76/firmware-open/coreboot/src/include/kconfig.h -include /home/tcrawford/Projects/System76/firmware-open/coreboot/src/include/rules.h -include /home/tcrawford/Projects/System76/firmware-open/coreboot/src/commonlib/bsd/include/commonlib/bsd/compiler.h -I/home/tcrawford/Projects/System76/firmware-open/coreboot/3rdparty -D__BUILD_DIR__="build" -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/soc/intel/alderlake -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/soc/intel/alderlake/include -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/drivers/intel/fsp2_0/include -I/home/tcrawford/Projects/System76/firmware-open/coreboot//home/tcrawford/Projects/System76/firmware-open/models/addw3/AlderLakeFspBinPkg/Include -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/mainboard/system76/rpl/include -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/mainboard/system76/rpl/variants/addw3/include -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/soc/intel/common/basecode/include/ -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/soc/intel/common/block/include/ -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/soc/intel/common/pch/include/ -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/vendorcode/intel/edk2/edk2-stable202005/MdePkg/Include -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/vendorcode/intel/edk2/edk2-stable202005/IntelFsp2Pkg/Include -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/vendorcode/siemens/hwilib -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/soc/intel/common/block/fast_spi -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/arch/x86/include -I/home/tcrawford/Projects/System76/firmware-open/coreboot/src/vendorcode/intel/edk2/edk2-stable202005/MdePkg/Include/Ia32 -D__ARCH_x86_32__ -pipe -g -nostdinc -std=gnu11 -nostdlib -Wall -Wundef -Wstrict-prototypes -Wmissing-prototypes -Wwrite-strings -Wredundant-decls -Wno-trigraphs -Wimplicit-fallthrough -Wshadow -Wdate-time -Wtype-limits -Wvla -Wold-style-definition -Wdangling-else -fno-common -ffreestanding -fno-builtin -fomit-frame-pointer -fstrict-aliasing -ffunction-sections -fdata-sections -fno-pie -Wno-packed-not-aligned -fconserve-stack -Wnull-dereference -Wreturn-type -Wlogical-op -Wduplicated-cond -Wno-array-compare -Wno-unused-but-set-variable -Werror -Os -Wno-address-of-packed-member  -m32  -fuse-ld=bfd -fno-stack-protector -Wl,--build-id=none -fno-delete-null-pointer-checks -Wlogical-op -march=i686 -mno-mmx -D__ROMSTAGE__ -I/home/tcrawford/Projects/System76/firmware-open/coreboot/build -Wno-missing-prototypes -DVBOOT_DEBUG -std=gnu11 -DNDEBUG -DEC_EFS=0 -DTPM2_SIMULATOR=0 -MMD -MF /home/tcrawford/Projects/System76/firmware-open/coreboot/build/external/vboot_reference-romstage/firmware/2lib/2api.o.d -D_GNU_SOURCE  -DHAVE_EXECINFO_H -DUSE_FLASHROM -Ifirmware/include -Ifirmware/lib/include -Ifirmware/lib/cgptlib/include -Ifirmware/lib/tpm_lite/include -Ifirmware/2lib/include -c -o /home/tcrawford/Projects/System76/firmware-open/coreboot/build/external/vboot_reference-romstage/firmware/2lib/2api.o firmware/2lib/2api.c

Same include path, so -Wmissing-include-dirs is now propogating to submodules?

In both cases, after vboot the include is correct:

-I"/home/tcrawford/Projects/System76/firmware-open/models/addw3/AlderLakeFspBinPkg/Include"
crawfxrd commented 1 year ago

Either have to revert CB:70251 or change all the coreboot.configs to treat FSP_HEADER_PATH as relative to coreboot.

crawfxrd commented 1 year ago

With the FSP submodule removed, should I also move FSPs into a new FSP/ directory instead of having them arbitrarily in one of the models?

jackpot51 commented 1 year ago

With the FSP submodule removed, should I also move FSPs into a new FSP/ directory instead of having them arbitrarily in one of the models?

Sure

crawfxrd commented 7 months ago

Rebase on coreboot 4.22 (#501) uses FSP releases from https://github.com/intel/fsp.