[wip] Add support for booting u-boot + kernel/initrd/dtb FIT#2257
Draft
ricardosalveti wants to merge 10 commits into
Draft
[wip] Add support for booting u-boot + kernel/initrd/dtb FIT#2257ricardosalveti wants to merge 10 commits into
ricardosalveti wants to merge 10 commits into
Conversation
003bbfa to
08f890d
Compare
The Qualcomm U-Boot default environment currently jumps straight to the EFI boot manager. This skips the standard bootflow scan used by bootstd to discover boot scripts and other boot methods. Patch the default environment to run bootflow scan -lb so FIT boot scripts can be discovered while preserving EFI support through the normal boot methods. Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
Define UBOOT_ENTRYPOINT for qcm6490 to the first available large DDR region after UEFI so FIT image generation has a stable entrypoint, which is required by kernel-fit-image.bbclass. Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
Add a deployable U-Boot boot script for Qualcomm FIT image boot. The script loads /fitImage from the boot partition discovered by bootstd and boots it via bootm. The kernel command line is composed from QCOM_BOOTIMG_ROOTFS, KERNEL_CONSOLE, and KERNEL_CMDLINE_EXTRA (defaulting to empty so machines can append extra arguments without breaking builds that do not set it). Set PACKAGE_ARCH to MACHINE_ARCH since the compiled script embeds machine-specific command line arguments. Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
Add an EFI System Partition image for the U-Boot FIT boot flow. The image populates its VFAT partition with only fitImage and boot.scr so bootstd can discover and execute the boot script. When an initramfs- bundled FIT (fitImage-<INITRAMFS_IMAGE_NAME>-<MACHINE>) is present it is preferred over the plain fitImage. The recipe is skipped when neither UBOOT_MACHINE nor UBOOT_CONFIG is set, matching the same guard used by linux-yocto-fitimage, so world builds on machines without U-Boot support skip it gracefully. The recipe is also skipped when kernel-fit-extra-artifacts is absent from KERNEL_CLASSES. linux-yocto-fitimage:do_compile requires linux.bin and linux_comp in the kernel deploy directory, which are only produced when that class is active. Also introduce esp-qcom-common.inc with the shared VFAT and image sizing settings common to all Qualcomm ESP images, so other images can reuse the same settings and avoid duplication. Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
Use esp-qcom-common.inc for the shared ESP image configuration and remove the duplicated VFAT, image sizing, and image feature settings from esp-qcom-image.bb. Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
Add kernel-fit-image.yml, a reusable kas fragment that switches a Qualcomm build to the FIT-based U-Boot boot flow. It removes the bootimg kernel class, enables kernel-fit-extra-artifacts to produce the FIT binary, sets QCOM_ESP_IMAGE to esp-qcom-fit-image, and clears EFI_PROVIDER since EFI boot is not needed in this flow. Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
Add a CI build entry for rb3gen2-core-kit with linux-qcom-6.18 and the u-boot-qcom FIT boot stack. The build composes ci/linux-qcom-6.18.yml, ci/u-boot-qcom.yml, and ci/kernel-fit-image.yml to validate the complete FIT image path, from kernel build through U-Boot boot script generation to ESP image packaging. Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
Add UBOOT_CONFIG for qcs9100-ride-sx using qcom_lemans_defconfig, which covers the Lemans/SA8775P SoC family shared with iq-9075-evk. Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
Define UBOOT_ENTRYPOINT for the qcs9100 SoC family at 0xb0800000, the first available large DDR region after UEFI. The address is taken from the Qualcomm memory configuration documentation: https://docs.qualcomm.com/doc/80-80022-300/topic/memory_configurations.html Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
Add a CI build entry for qcs9100-ride-sx with linux-qcom-6.18 and the u-boot-qcom FIT boot stack, composing ci/linux-qcom-6.18.yml, ci/u-boot-qcom.yml, and ci/kernel-fit-image.yml to validate the complete FIT image path on the QCS9100 platform. Signed-off-by: Ricardo Salveti <ricardo.salveti@oss.qualcomm.com>
Test Results 67 files - 36 354 suites - 278 3h 21m 49s ⏱️ - 3h 26m 51s For more details on these failures, see this check. Results for commit e05aa35. ± Comparison against base commit c66b499. This pull request removes 2 tests. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add support for loading U-Boot FIT images containing kernel+initrd+dtb instead of UKI.
Draft as it is still wip, created PR for wider validation.