summaryrefslogtreecommitdiff
path: root/payloads/external/Makefile.mk
AgeCommit message (Collapse)Author
2024-06-04payloads: Add leanefi payloadMaximilian Brune
This adds another external payload to coreboot. The payload has been heavily based on u-boots UEFI implementation. The leanefi payload is basically a translator from coreboot to UEFI. It takes the coreboot tables and transforms them into UEFI interfaces. Although it can potentially load any efi application that can handle the minimized interface that leanefi provides, it has only been tested with LinuxBoot (v6.3.5) as a payload. It has been optimized to support only those interfaces that Linux requires to start. Among other leanefi does not support: - efi capsule update (also efi system resource table) - efi variables - efi text input protocol (it can only output) - most boot services. mostly memory services are left (e.g. alloc/free) - all runtime services (although there is still a very small runtime footprint that is planned to be removed in the near future) - TCG2/TPM (although that is mostly because of laziness) The README.md currently provides more details on why. The payload currently only supports arm64 and has only been tested on emulation/simulator targets. The original motivation was to get ACPI on arm64 published to the OS without using EDK2. It is however also possible to supply the leanefi with a FDT that is published to the OS. At that point one would however probably use coreboot only instead of this shim layer on top. It would be way nicer to have Linux support something else than UEFI to propagate the ACPI tables, but it requires to get the Linux maintainer/community on board. So for now this shim layer ciruimvents that. LBBR Test: // 1. dump FDT from QEMU like mentioned in aarch64 coreboot doc // 2. compile u-root however you like (aarch64) // 3. compile Linux (embed u-root initramfs via Kconfig) // 4. copy Linux kernel to payloads/leanefi/Image // 5. copy following coreboot defconfig to configs/defconfig: CONFIG_BOARD_EMULATION_QEMU_AARCH64=y CONFIG_PAYLOAD_NONE=n CONFIG_PAYLOAD_LEANEFI=y CONFIG_LEANEFI_PAYLOAD=y CONFIG_LEANEFI_PAYLOAD_PATH="[path-to-linux]/arch/arm64/boot/Image" CONFIG_LEANEFI_FDT=y CONFIG_LEANEFI_FDT_PATH="[path-to-dumped-DTB]" // 6. compile coreboot make defconfig make -j$(nproc) // 7. run qemu like mentioned in coreboot doc (no FIT) // 8. say hello to u-root and optionally kexec into the next kernel Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com> Change-Id: I4093378e89c3cb43fb0846666de80a7da36b03f1 Reviewed-on: https://review.coreboot.org/c/coreboot/+/78913 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Ron Minnich <rminnich@gmail.com> Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
2024-05-29payloads/iPXE: Hook up TRUST_CMD switchMaciej Pijanowski
Change-Id: Ia4f5d4140eeb8625c5ee41e38f048658db28a199 Signed-off-by: Maciej Pijanowski <maciej.pijanowski@3mdeb.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/79684 Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-04-20payloads/edk2: Add Kconfig to use LAPIC timerJean Lucas
Core 2 platforms have issues with HPET. Enable support to use the LAPIC driver so those machines actually boot and don't hang. The LAPIC is actually closer to the CPU than the HPET (on the PCH), which reduces access latency, leading to higher resolution of the timer. Tested on a Lenovo X200 with a Core 2 Duo. Change-Id: I33144d6c1c120e7faa47b99e8262b0997c45c9b9 Signed-off-by: Jean Lucas <jean@4ray.co> Reviewed-on: https://review.coreboot.org/c/coreboot/+/82000 Reviewed-by: Matt DeVillier <matt.devillier@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com> Reviewed-by: Nico Huber <nico.h@gmx.de>
2024-04-17payloads/edk2: Add Kconfig to enable AMD Picasso eMMC driverMatt DeVillier
Add a Kconfig to selectively enable the AMD Picasso eMMC driver recently added to MrChromebox's edk2 fork. When selected, will enable booting from AMD Picasso devices with eMMC storage. TEST=tested with rest of patch train Change-Id: I6536a6f243f6766b913e295afebcf5b965e4e969 Signed-off-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/81892 Reviewed-by: Sean Rhodes <sean@starlabs.systems> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-04-17payloads/external: Call $(strip_quotes ) on prebuilt iPXE pathNico Huber
Currently, we keep the double-quotes from Kconfig, resulting in an invalid path. So just call `strip_quotes` like we do with all other paths from Kconfig. Change-Id: Ibcaa59be0fdd84d1fb9e061394fd9b0f7aa1830b Signed-off-by: Nico Huber <nico.h@gmx.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/81947 Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Paul Menzel <paulepanter@mailbox.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2024-04-16payloads/edk2: Add Kconfig to enable UFS supportMatt DeVillier
Add a Kconfig to selectively enable the UFS DXE driver recently added to MrChromebox's edk2 fork. When selected, will enable booting from devices with UFS storage. TEST=tested with rest of patch train Change-Id: I0b54d21dc87abf6938c03948830f92ce5097ef7d Signed-off-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/81870 Reviewed-by: Sean Rhodes <sean@starlabs.systems> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-03-04payloads/depthcharge: Add DEPTHCHARGE_REPO and DEPTHCHARGE_BRANCHCliff Huang
Move hard-coded repo and repo name to Kconfig as default value DEPTHCHARGE_REPO default to: https://chromium.googlesource.com/chromiumos/platform/depthcharge DEPTHCHARGE_BRANCH default to: origin/main When DEPTHCHARGE_MASTER=y, DEPTHCHARGE_BRANCH can be used to point out a particular branch. This change enable to use mirrored internal depthcharge repo and branch for early SOC development (before upstreaming SOC and dephthcharge code). TEST=Build coreboot and check the repo remote link from: payloads/external/depthcharge/depthcharge Signed-off-by: Cliff Huang <cliff.huang@intel.com> Change-Id: Icca10aa770b7b7a6e010f58bcf1e4f0a3401681a Reviewed-on: https://review.coreboot.org/c/coreboot/+/80726 Reviewed-by: Bora Guvendik <bora.guvendik@intel.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com> Reviewed-by: Nico Huber <nico.h@gmx.de> Reviewed-by: Zhixing Ma <zhixing.ma@intel.com>
2024-01-24payloads: Rename Makefiles from .inc to .mkMartin Roth
The .inc suffix is confusing to various tools as it's not specific to Makefiles. This means that editors don't recognize the files, and don't open them with highlighting and any other specific editor functionality. This issue is also seen in the release notes generation script where Makefiles get renamed before running cloc. Signed-off-by: Martin Roth <gaumless@gmail.com> Change-Id: Ie7038712de8cc646632d5e7d29550e3260bf2c62 Reviewed-on: https://review.coreboot.org/c/coreboot/+/80103 Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de> Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>