summaryrefslogtreecommitdiffstats
path: root/payloads
Commit message (Collapse)AuthorAgeFilesLines
...
* libpayload: Outsource delay function into own headerThomas Heijligen2023-08-243-49/+60
| | | | | | | | | | | | For libflashrom we need the delay functions but when including the whole libpayload.h it has conflicting symbols. Change-Id: I6e4a669b8ba25836fb870d74c200985c1bfdb387 Signed-off-by: Thomas Heijligen <src@posteo.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/70139 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nico Huber <nico.h@gmx.de> Reviewed-by: Julius Werner <jwerner@chromium.org>
* payloads/external: Add memtest86+ v6 as secondary payloadMartin Roth2023-08-213-12/+66
| | | | | | | | | | | | | | | | | | | | | | | This adds a Kconfig option to select memtest86+ version 6 as a secondary payload and sets that as the default. The coreboot version 5 code may still be selected and used if desired. Compiling for 32 bit requires glibc from multilib installed, if the host system is running on 64 bit, as header files, e.g. gnu/stubs-32.h, are required from there. So introduce a new choice menu which allows to choose between 32 and 64 bit. By default, the stable 6.20 version is selected instead of the top of the main branch. TEST=Build both V5 and V6, boot them in QEMU Signed-off-by: Martin Roth <gaumless@gmail.com> Signed-off-by: Felix Singer <felixsinger@posteo.net> Change-Id: Ie0eedc25fcf37b925b072ca809c019a599a20392 Reviewed-on: https://review.coreboot.org/c/coreboot/+/69277 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
* payloads/libpayload: Remove ARCH_SPECIFIC_OPTIONSElyes Haouas2023-08-204-19/+11
| | | | | | | | | | Remove dummy ARCH_SPECIFIC_OPTIONS. Change-Id: Ia71021b8597b1d6a227292b6568351e994ad62b0 Signed-off-by: Elyes Haouas <ehaouas@noos.fr> Reviewed-on: https://review.coreboot.org/c/coreboot/+/76940 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin L Roth <gaumless@gmail.com>
* payloads/edk2: disable TPM support for CR50 TPMMatt DeVillier2023-08-182-0/+5
| | | | | | | | | | | | | | | Disable TPM support for CR50 TPM when using MrChromebox repo, since it's not currently supported in edk2, and causes some boards (eg AMD Zen-based) to failed to boot. TEST=build/boot on google/frostflow Change-Id: I64b5eb09d64eafd2bed400b7a7c97750cc368aed Signed-off-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/77270 Reviewed-by: Martin L Roth <gaumless@gmail.com> Reviewed-by: Varshit Pandya <pandyavarshit@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
* payloads/edk2: Add support for passing VBT/GOP driver to edk2Matt DeVillier2023-08-183-1/+29
| | | | | | | | | | | | | | | | | Add Kconfig for passing a VBT file and GOP driver to edk2, and pass a build param to use them along with the platform GOP driver. This allows edk2 to initialize the display and change display modes, instead of being limited to the single mode set by whatever display init method coreboot might use (libgfxinit, FSP/GOP, VBIOS, etc). TEST=build/boot multiple google boards spanning several platforms using the edk2 GOP driver for display init. Change-Id: I63a49df2411fe44b06eaee6d0fb9aab42ac8aedb Signed-off-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/77269 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Sean Rhodes <sean@starlabs.systems>
* libpayload/cbfs: Fill size_out even if cbfs_map() failsYu-Ping Wu2023-08-181-3/+7
| | | | | | | | | | | | | | | | | When cbfs_map()/cbfs_ro_map() fails, the caller may still want to know the decompressed size of the CBFS file, for example, to print an error message. Move the assignment earlier in the flow. Note that coreboot's cbfs_map() is already doing the same. BUG=none TEST=emerge-geralt libpayload BRANCH=none Change-Id: I82c6b7e69c95bf597fa3c7d37dd11252893c01af Signed-off-by: Yu-Ping Wu <yupingso@chromium.org> Reviewed-on: https://review.coreboot.org/c/coreboot/+/77193 Reviewed-by: Julius Werner <jwerner@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
* libpayload/include/stdarg.h: Add va_copy builtinMaximilian Brune2023-08-171-0/+1
| | | | | | | | | | Add the builtin to copy variadic lists/arguments. Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com> Change-Id: I4507b901bdce052c5d1701fdf825eb8a96a5b55a Reviewed-on: https://review.coreboot.org/c/coreboot/+/77097 Reviewed-by: Martin L Roth <gaumless@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
* libpayload: Add parsing of SMBIOS addressMaximilian Brune2023-08-172-0/+4
| | | | | | | | Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com> Change-Id: Ie4032048f5f53b25c46f00b3b48eb5f986a5d0b3 Reviewed-on: https://review.coreboot.org/c/coreboot/+/77045 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin L Roth <gaumless@gmail.com>
* payloads/external/LinuxBoot: Fix buildPatrick Rudolph2023-08-171-2/+2
| | | | | | | | | | | | | | Fix regression introduced in I25e757108e0dd473969fe5a192ad0733f1fe6286 "payloads/external/LinuxBoot: Clean up". Add creation of the build folder as necessary dependency. Change-Id: Ie76c914f6a705de0c275a05b5af82ac21243d522 Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/77202 Reviewed-by: Marvin Drees <marvin.drees@9elements.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
* payloads/external/Makefile.inc: Fix empty comparisonMaximilian Brune2023-08-131-1/+1
| | | | | | | | Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com> Change-Id: I5174e0457489c29be6a2b2b882de2db4255bbca0 Reviewed-on: https://review.coreboot.org/c/coreboot/+/77145 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin L Roth <gaumless@gmail.com>
* payloads/external/Linuxboot/Makefile: Add build prerequisiteMaximilian Brune2023-08-131-1/+1
| | | | | | | | | | | | | This adds a missing prerequisite, because otherwise it can happen that curl tries to put the downloaded kernel in a non existing build directory Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com> Change-Id: I459172f794ab9c1010cebcff5e28f1454e136fba Reviewed-on: https://review.coreboot.org/c/coreboot/+/76914 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Frans Hendriks <fhendriks@eltan.com> Reviewed-by: Martin L Roth <gaumless@gmail.com>
* tint: upgrade the tint payload to 0.07 versionMike Banon2023-08-082-2/+2
| | | | | | | | | | | This upgrades the tint payload to 0.07 version. The sources are similar enough so that ..._libpayload.patch could be simply git-moved. Change-Id: I0f6de3d0410e6d838fe49330d98620c877a0d2c7 Signed-off-by: Mike Banon <mikebdp2@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/76820 Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
* tint: update the tint build system to fix the download/patch errorsMike Banon2023-08-083-5/+7
| | | | | | | | | | | Restore the tint build system compatibility with the current version of buildgcc script while preserving the backwards compatibility. Change-Id: I45d3454b4527ee81c3927a5b3da2e9067c530fb0 Signed-off-by: Mike Banon <mikebdp2@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/76819 Reviewed-by: Martin L Roth <gaumless@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
* payloads/U-Boot: Upgrade from U-Boot "v2021.07" to "v2023.07"Elyes Haouas2023-08-051-2/+2
| | | | | | | | | | | | U-Boot v2023.07 was released on Mon 10 July 2023. https://source.denx.de/u-boot/u-boot/-/blob/master/doc/develop/release_cycle.rst#id5 Change-Id: Ie1c6f83bd12e959c29fad1b121c85eb0cf898e24 Signed-off-by: Elyes Haouas <ehaouas@noos.fr> Reviewed-on: https://review.coreboot.org/c/coreboot/+/71065 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin L Roth <gaumless@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
* payloads/coreinfo: Use C99 flexible arraysElyes Haouas2023-08-012-3/+3
| | | | | | | | | | | | | Use C99 flexible arrays instead of older style of one-element or zero-length arrays. It allows the compiler to generate errors when the flexible array does not occur at the end in the structure. Change-Id: I17811256b04a17539d3ed77f406892ae77e97515 Signed-off-by: Elyes Haouas <ehaouas@noos.fr> Reviewed-on: https://review.coreboot.org/c/coreboot/+/76848 Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
* libpayload/drivers/cbmem_console: Use C99 flexible arraysElyes Haouas2023-08-011-1/+1
| | | | | | | | | | | | | Use C99 flexible arrays instead of older style of one-element or zero-length arrays. It allows the compiler to generate errors when the flexible array does not occur at the end in the structure. Change-Id: I3fd3f068ff731e1d9fed7c38ba6815e1eed86450 Signed-off-by: Elyes Haouas <ehaouas@noos.fr> Reviewed-on: https://review.coreboot.org/c/coreboot/+/76849 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
* payloads/libpayload/include/coreboot_tables: Use C99 flexible arraysElyes Haouas2023-08-011-7/+7
| | | | | | | | | | | | | Use C99 flexible arrays instead of older style of one-element or zero-length arrays. It allows the compiler to generate errors when the flexible array does not occur at the end in the structure. Change-Id: Icf3da1b0a0666769ae7b5d5f641b85436b324b4c Signed-off-by: Elyes Haouas <ehaouas@noos.fr> Reviewed-on: https://review.coreboot.org/c/coreboot/+/76851 Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
* payloads/edk2: Update default branch for MrChromebox repo to 2023-06Matt DeVillier2023-07-311-1/+1
| | | | | | | | | | | | | | | | | Update the default branch used for MrChromebox's edk2 fork from 2023-04 to 2023-06. This updated branch has been rebased on the latest upstream stable tag (edk2-stable202305), and fixes issues booting on AMD Zen platforms (Picasso and newer). TEST=build/boot google boards link, panther, lulu,reef, ampton, akemi, banshee, zork, frostflow with edk2 payload selected. Change-Id: I4867d453514f2b00f66ffdad50e091e5b80afdcb Signed-off-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/76806 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com> Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
* payloads/external/Linuxboot/Makefile: Guard linux MakefileMaximilian Brune2023-07-251-0/+2
| | | | | | | | | | | The linux.mk makefile needs to be guarded, because it introduces a dependency on the perl tooling. Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com> Change-Id: Ieb7aac672072858e0d6811628887f6a9eb9a8cb1 Reviewed-on: https://review.coreboot.org/c/coreboot/+/76715 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
* payloads/external/Linuxboot/Makefile: Guard u-root MakefileMaximilian Brune2023-07-241-1/+5
| | | | | | | | | | | | | | The u-root.mk makefile needs to be guarded, because it introduces a dependency on the go tooling. Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com> Change-Id: Ia89e4e7b9a1f73a7b622eeaa8d6148d99f9b327a Reviewed-on: https://review.coreboot.org/c/coreboot/+/76714 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Marvin Drees <marvin.drees@9elements.com> Reviewed-by: Felix Held <felix-coreboot@felixheld.de> Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com> Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
* payloads/external/LinuxBoot: Clean upMaximilian Brune2023-07-2311-279/+246
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There were some issues with the current Linuxboot Makefiles. - multithreaded compilation didn't work, because some prerequisites were missing - initramfs wasn't added for x86 qemu boot. - riscv support was incomplete It began with separate patches, but resulted in a clean up patch, that is hard to separate. The most important changes are the following: - Instead of phony targets, actual files are now used as prerequisites - riscv can now be used as target - initramfs works now also for x86 - instead of querying the most recent version from the internet, I set a known working version (because I tested it) that can be customized and/or upgraded in the future. The reasons: - querying the version from the internet requires a constant connection to the internet even after linux kernel is already build (aka subsequent builds). - one usually wants to use a known working version, but optionally still have the posibillity to choose a custom one. This patch introduces this possibility in its most simple form. - I removed as much ifeq statements as possible and moved that responsibility to Kconfig, because they tend to make the Makefile less readable. Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com> Change-Id: I25e757108e0dd473969fe5a192ad0733f1fe6286 Reviewed-on: https://review.coreboot.org/c/coreboot/+/76150 Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
* payloads/edk2: Fix typo in Make commandSean Rhodes2023-07-061-2/+2
| | | | | | | | | | | | | The Makefile was passing `CONFIG_SMMSTORE_v2` which doesn't exist. Correct this to `CONFIG_SMMSTORE_V2`. Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: I984d2155143c14cb4a347ed24688b9ea492f7f8b Reviewed-on: https://review.coreboot.org/c/coreboot/+/76317 Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
* payloads/Memtest86Plus: Update branch name from master to mainNicholas Chin2023-06-283-8/+8
| | | | | | | | | | | | | | It seems like the default branch for coreboot's Memtest86+ fork was renamed from 'master' to 'main'. TEST: Memtest builds correctly when selecting 'Main' for the Memtest86+ version option. Change-Id: I269249518019f5d0d12c57f1c14012abca86b48b Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/76100 Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
* payloads/filo: Update branch name from master to mainNicholas Chin2023-06-282-4/+4
| | | | | | | | | | | | | | | It seems like the default branch for FILO was renamed from 'master' to 'main'. TEST: FILO builds correctly when selecting 'HEAD' for the FILO version option. Change-Id: I6c355d757987551e850f9d24f6bfb14167cb8046 Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/76101 Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nico Huber <nico.h@gmx.de>
* libpayload/uhci: Re-write UHCI RH driver w/ generic_hub APINico Huber2023-06-121-152/+91
| | | | | | | | | | | | | | | | | | | | | | This is a complete rewrite of the UHCI root-hub driver, based on the xHCI one. We are doing things by the book as far as possible. One special case is uhci_rh_reset_port() which does the reset se- quencing that usually the hardware would do. This abandons some quirks of the old driver: * Ports are not disabled/re-enabled for every attachment anymore. * We solely rely on the Connect Status Change bit to track changes. * Further status changes are now deferred to the next polling round. The latter fixes endless loops in combination with commit 7faff543da (libpayload: usb: Detach unused USB devices). Change-Id: I5211728775eb94dfc23fa82ebf00fe5c99039709 Signed-off-by: Nico Huber <nico.huber@secunet.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/75504 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Julius Werner <jwerner@chromium.org> Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
* payloads/edk2: Add an option to use EDK2 Universal PayloadSean Rhodes2023-06-102-1/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | This add's an option to use EDK2's Universal Payload instead of the standard UefiPayloadPkg. Universal Payload requires a ShimLayer, to build the required HOBs and pass them to Universal Payload. The ShimLayer is built to encompass UniveralPayload, so only one ELF binary is added to coreboot. Universal Payload is based on Intel's USF specification: https://universalscalablefirmware.github.io/documentation/ This has been added with the repository pointing to https://github.com/starlabsltd. The required ShimLayer patches will be merged into edk2 master once corresponding coreboot patches are merged. This is because the EDK2 engineers believe it is an impossible task to patch coreboot to build and use Universal Payload. Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: I17cc86d5eac0d5d91551ba5bea73fbc07ebdf0d3 Reviewed-on: https://review.coreboot.org/c/coreboot/+/65934 Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
* payloads/edk2: Hook up PCIe Resizable BARs flagLean Sheng Tan2023-06-092-0/+5
| | | | | | | | | | | | | | Hook up edk2 build flag PcdPcieResizableBarSupport to coreboot Kconfig CONFIG_PCIEXP_SUPPORT_RESIZABLE_BARS. Signed-off-by: Lean Sheng Tan <sheng.tan@9elements.com> Change-Id: I5cc12d32c5e132b9f99ec650377d7683377c2a9c Reviewed-on: https://review.coreboot.org/c/coreboot/+/74926 Reviewed-by: Sean Rhodes <sean@starlabs.systems> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Reviewed-by: Benjamin Doron <benjamin.doron00@gmail.com> Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
* payloads/external/depthcharge: Update stable versionMartin Roth2023-06-091-2/+2
| | | | | | | | | | | The stable version was over 5 years old. Update it to the current main branch. Signed-off-by: Martin Roth <gaumless@gmail.com> Change-Id: Ic9cbe5e3dad9f2ff06e1fa8f0582d4c8b3e81a22 Reviewed-on: https://review.coreboot.org/c/coreboot/+/75134 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
* libpayload/drivers/usb/xhci.c: Check for NULL in xhci_initFred Reitberger2023-06-061-0/+4
| | | | | | | | | | | | | | | Ensure the physical_bar parameter passed to xhci_init is not NULL, else return NULL. This may occur when an XHCI controller is disabled and no resources are allocated for it. BUG=b:284213001 Change-Id: I05c32612606793adcba3f4a5724092387a215d41 Signed-off-by: Fred Reitberger <reitbergerfred@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/75645 Reviewed-by: Jon Murphy <jpmurphy@google.com> Reviewed-by: Karthik Ramasubramanian <kramasub@google.com> Reviewed-by: Martin L Roth <gaumless@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
* libpayload/uhci: Return expected length for control/bulk transfersNico Huber2023-06-041-11/+13
| | | | | | | | | | | | | | | Libpayload's USB API was changed in commit e9738dbe2b (libpayload: Make USB transfer functions return amount of bytes). However, the UHCI driver was never adapted. Instead of returning 0 for success, we can return the expected data length as a best effort. We won't be able to catch short transfers this way, but previously working cases will work again. Change-Id: I31d7de495a46af401e2cbe5a3b8f6349facad8ff Signed-off-by: Nico Huber <nico.huber@secunet.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/75349 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Paul Menzel <paulepanter@mailbox.org> Reviewed-by: Julius Werner <jwerner@chromium.org>
* payloads/edk2: Set max variable size to 0x8000 for SMMSTORESean Rhodes2023-06-021-0/+4
| | | | | | | | | | SMMSTORE requires 0x8000, compared to the default value of 0x10000. Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: I10d2a5a0c1d729d83e0b62bb9430863317b883cc Reviewed-on: https://review.coreboot.org/c/coreboot/+/74176 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
* payloads/edk2: Only pass IA32 argumentSean Rhodes2023-05-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | With the coreboot build process, `UniversalPayloadBuild.sh` calls `UniversalPayloadBuild.py`. That Python script will unconditionally build DXE as 64-bit, but accepts an argument for the entry point: parser.add_argument('-a', '--Arch', choices=['IA32', 'X64'], help='Specify the ARCH for payload entry module. Default build X64 image.', default ='X64') Currently, ` -a IA32 -a X64` is passed, and the Python script will use the `X64` argument, resulting in a payload that won't work with coreboot. Remove the `-a X64`, so the resulting build is a 32-bit entry point, and 64-bit DXE, which works with coreboot. Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: I8a557d6e155a2938b44036d98f9274cc8b38f156 Reviewed-on: https://review.coreboot.org/c/coreboot/+/73668 Reviewed-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-by: Paul Menzel <paulepanter@mailbox.org> Reviewed-by: Martin L Roth <gaumless@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Benjamin Doron <benjamin.doron00@gmail.com> Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de> Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
* libpayload;arch,cpu/x86: drop USE_MARCH_586 Kconfig optionFelix Held2023-05-271-8/+0
| | | | | | | | | | | | | Only the Intel Quark SoC selected this option and that SoC was dropped in commit 531023285ea4 ("soc/intel/quark: Drop support"), so drop this Kconfig option too. Signed-off-by: Felix Held <felix-coreboot@felixheld.de> Change-Id: Ic4f1c7530cd8ac7a1945b1493a2d53a7904daa06 Reviewed-on: https://review.coreboot.org/c/coreboot/+/75473 Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de> Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
* payloads/libpayload/configs: drop config.galileoFelix Held2023-05-271-6/+0
| | | | | | | | | | | | The Galileo board was dropped in commit 037c25d4dd8d ("mb/intel/ galileo: Drop support"), so also drop this config file. Signed-off-by: Felix Held <felix-coreboot@felixheld.de> Change-Id: I8c85dc03c3a4a016d6e13f1bee170d1bc6439470 Reviewed-on: https://review.coreboot.org/c/coreboot/+/75472 Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nicholas Chin <nic.c3.14@gmail.com>
* libpayload/arch/x86: Update API handling of CBTABLE handoffMaximilian Brune2023-05-244-29/+12
| | | | | | | | | | | | | | | | | | | | The payload API of coreboot described in https://www.coreboot.org/Payload_API does not reflect the current handoff mechanism to hand the coreboot tables off. Therefore the arguments supplied by coreboot (cbtable) will currently never be parsed correctly and libpayload has to search for the coreboot tables by iterating through memory. This patch removes the old payload API implementation and just takes the coreboot table pointer from the first argument on the stack. Tested: started prodrive/atlas with coreinfo payload Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com> Change-Id: I51fb0cfc81043cbfe3fc9c8ea0776add2d6a42b2 Reviewed-on: https://review.coreboot.org/c/coreboot/+/74965 Reviewed-by: Julius Werner <jwerner@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
* payloads/seabios: Update stable from 1.16.1 to 1.16.2Elyes Haouas2023-05-202-2/+2
| | | | | | | | | | Changes: https://review.coreboot.org/plugins/gitiles/seabios/+/refs/tags/rel-1.16.2 Change-Id: I19b31f89c8fc504284f327c975c159616eb1b241 Signed-off-by: Elyes Haouas <ehaouas@noos.fr> Reviewed-on: https://review.coreboot.org/c/coreboot/+/74318 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
* payloads/external/edk2: Verbose builds with coreboot build-systemBenjamin Doron2023-05-133-9/+1
| | | | | | | | | | | | | | | | | | Rather than requiring another Kconfig symbol to be set, reuse the same `make V=1` command argument. This simplifies rebuilds with a single point of reference. Also, this means that coreboot doesn't have to be rebuilt due to Kconfig changes. Change-Id: I9eba86b234768641a215095b8657e9d07832b1b5 Signed-off-by: Benjamin Doron <benjamin.doron00@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/75185 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nico Huber <nico.h@gmx.de> Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com> Reviewed-by: Sean Rhodes <sean@starlabs.systems> Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
* payloads/edk2: Remove ABOVE_4G_MEMORY optionSean Rhodes2023-05-023-16/+0
| | | | | | | | | | | | | | | Remove the ABOVE_4G_MEMORY option as the option was removed in edk2 in commit dc5f2905ebfdf68ae28ce1081d435af0f8641dd9 (UefiPayloadPkg: Always build MemoryTypeInformation HOB for DXE GCD - https://github.com/tianocore/edk2/pull/4231). Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: I8d5ee79ef3f7ecfcd1463c612aad2e3d629df22a Reviewed-on: https://review.coreboot.org/c/coreboot/+/74336 Reviewed-by: Paul Menzel <paulepanter@mailbox.org> Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
* payloads/edk2: Add Kconfig to enable UEFI Secure Boot supportMatt DeVillier2023-05-023-0/+13
| | | | | | | | | | | | | | | | | Now that MrChromebox's default edk2 branch supports Secure Boot, add a Kconfig to enable it, and do so by default when MrChromebox's branch is used and SMMSTORE_V2 is enabled (which is a prerequisite). TEST=build/boot google boards link, panther, lulu,reef, ampton, akemi, and banshee, verify Secure Boot options available in payload, Secure Boot status reported properly by Linux/Windows. Change-Id: I4be58c3315cabe08729d717c59203fdc6a3e2958 Signed-off-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/74869 Reviewed-by: Sean Rhodes <sean@starlabs.systems> Reviewed-by: Paul Menzel <paulepanter@mailbox.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
* payloads/edk2: Update default branch for MrChromebox repo to 2023-04Matt DeVillier2023-05-021-1/+1
| | | | | | | | | | | | | | | | | | Update the default branch used for MrChromebox's edk2 fork from 2022-07 to 2023-04. This updated branch has been rebased on the latest upstream stable tag (edk2-stable202302), and adds support for UEFI Secure Boot and TPM 1.2/2.0 management (though it does not currently support Google CR50/Ti50 TPMs). TEST=build/boot google boards link, panther, lulu,reef, ampton, akemi, and banshee with edk2 payload selected. Change-Id: I096eaa4e065db731a70ba238ba5a3bb49e5db867 Signed-off-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/74868 Reviewed-by: Sean Rhodes <sean@starlabs.systems> Reviewed-by: Paul Menzel <paulepanter@mailbox.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
* payloads/external/Makefile.inc: Make linuxboot a phony targetArthur Heymans2023-04-131-1/+1
| | | | | | | | | | | | | | | | | To quote the gnu make manual: "A phony target is one that is not really the name of a file; rather it is just a name for a recipe to be executed when you make an explicit request. There are two reasons to use a phony target: to avoid a conflict with a file of the same name, and to improve performance." Change-Id: I337f4f2e0257a75ba204d21f8aa84292e8233082 Signed-off-by: Arthur Heymans <arthur@aheymans.xyz> Reviewed-on: https://review.coreboot.org/c/coreboot/+/74309 Reviewed-by: Angel Pons <th3fanbus@gmail.com> Reviewed-by: Marvin Drees <marvin.drees@9elements.com> Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com> Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
* tree: Replace `egrep` with `grep -E`Felix Singer2023-04-061-1/+1
| | | | | | | | | | | | For compatibility reasons, egrep is just a wrapper around grep today. Thus, replace it with `grep -E`. Change-Id: Ief08a22e4cd7211a3fee278492c95d37f9e058fa Signed-off-by: Felix Singer <felix.singer@secunet.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/74171 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Paul Menzel <paulepanter@mailbox.org> Reviewed-by: Michael Niewöhner <foss@mniewoehner.de>
* payloads/external/edk2: Add option to clone edk2-platforms repoMichał Żygowski2023-04-063-1/+61
| | | | | | | | | | | | | Add possibility to clone edk2-platforms repository. Some edk2 repositories may use modules from edk2-platforms which contains various feature packages for Intel platforms, e.g VT-d driver if DMA protection is enabled. Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com> Change-Id: Iabd0793dfdcb95260046dc992ff30ef581159db9 Reviewed-on: https://review.coreboot.org/c/coreboot/+/68872 Reviewed-by: Krystian Hebel <krystian.hebel@3mdeb.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
* libpayload: strings.h: Use builtin __ffs instead of included oneThomas Heijligen2023-03-071-3/+1
| | | | | | | | | Change-Id: Ie4d0b1b19ce6524341449df8bfabc66bff7bd97e Signed-off-by: Thomas Heijligen <src@posteo.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/70118 Reviewed-by: Julius Werner <jwerner@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nico Huber <nico.h@gmx.de>
* libpayload: bin/lpgcc allow to call without filesThomas Heijligen2023-03-071-1/+1
| | | | | | | | | | | | | | | When building libflashrom ontop of libpayload, meson calls the lpgcc wrapper with -xc but without a file to obtain information about the C compiler. To make this work guard $_LIBGCC with -xnone in the lpgcc wrapper. -xnone tells the compiler to interpret the following files of libpayload by their suffix, not the privious given -x option. Change-Id: I9e037ff44c0a6d0585d8a6f8aeabae6e651142e2 Signed-off-by: Thomas Heijligen <src@posteo.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/70117 Reviewed-by: Julius Werner <jwerner@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nico Huber <nico.h@gmx.de>
* libpayload: Use __func__ instead of old __FUNCTION__Elyes Haouas2023-02-173-4/+4
| | | | | | | | Change-Id: Ic3c22ac101a2ff44f97b2ac3fe3c0a89391718de Signed-off-by: Elyes Haouas <ehaouas@noos.fr> Reviewed-on: https://review.coreboot.org/c/coreboot/+/72380 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Felix Singer <felixsinger@posteo.net>
* payloads/Yabits: Remove deprecated Yabits PayloadElias Souza2023-02-175-126/+0
| | | | | | | | | | | | | Yabits is no longer maintained and git repo is archived. Yabits has not been maintained for a long time, the project is apparently closed. Change-Id: Ida0bb79342448510d2c309339fabbe8066eca73c Signed-off-by: Elias Souza <eliascontato@protonmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/72463 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Felix Singer <felixsinger@posteo.net>
* commonlib/bsd, libpayload: Do not include helpers.h in stddef.hThomas Heijligen2023-02-162-6/+5
| | | | | | | | | | | | `stddef.h` should only provide the definitions defined by ISO or Posix. The included `commonlib/bsd/helpers.h` provide a lot of non standard definitions that may interfere with definitions from the application. Change-Id: Ia71edbc3ffe6694ff4b971decf3a41f915264bc8 Signed-off-by: Thomas Heijligen <src@posteo.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/70116 Reviewed-by: Elyes Haouas <ehaouas@noos.fr> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
* libpayload/string: add strndup() functionThomas Heijligen2023-02-162-0/+20
| | | | | | | | Change-Id: Ie509e49f21fb537692704ac6527efa09649164e3 Signed-off-by: Thomas Heijligen <src@posteo.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/70115 Reviewed-by: Jakub Czapiga <jacz@semihalf.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
* libpayload: Add VBOOT_SHA_ARMV8_CE configYidi Lin2023-02-162-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | Add Kconfig option for VBOOT_SHA_ARMV8_CE, which will use ARMv8 Crypto Extension for SHA256[1] instead of software implementation. [1] https://crrev.com/c/4170144 BUG=b:263514393 BRANCH=corsola TEST='vboot kernel verification' gets 111 msecs improvement on Tentacruel. Before: 1100:finished vboot kernel verification 905,150 (123,518) After: 1100:finished vboot kernel verification 787,277 (12,254) Cq-Depend: chromium:4170144, chromium:4242678 Change-Id: If92830830a0658dfad2a066e9efa624783865cf2 Signed-off-by: Yidi Lin <yidilin@chromium.org> Reviewed-on: https://review.coreboot.org/c/coreboot/+/72710 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Yu-Ping Wu <yupingso@google.com>