Skip to content

Support for Raspberry Pi firmwares/bootloaders #651

Closed as duplicate

Description

@ondrejbudai

Raspberry Pi requires a bunch of files to be available in the root of the ESP partition (traditionally mounted as /boot/efi on Fedora) in order to boot. In the case of Fedora, this means the firmware, uboot, device trees and probably more. This is the content of /boot/efi on Fedora Server for aarch64:

$ ls /boot/efi
bcm2710-rpi-2-b.dtb*       bcm2710-rpi-cm3.dtb*       bcm2711-rpi-400.dtb*  bcm2711-rpi-cm4-io.dtb*  bcm2712-rpi-5-b.dtb*        bootcode.bin*  fixup4cd.dat*  fixup4x.dat*   fixup_db.dat*  rpi-u-boot.bin*  start4.elf*    start_db.elf*
bcm2710-rpi-3-b.dtb*       bcm2710-rpi-zero-2.dtb*    bcm2711-rpi-4-b.dtb*  bcm2711-rpi-cm4s.dtb*    bcm2712-rpi-cm5-cm4io.dtb*  config.txt*    fixup4.dat*    fixup_cd.dat*  fixup_x.dat*   start4cd.elf*    start4x.elf*   start.elf*
bcm2710-rpi-3-b-plus.dtb*  bcm2710-rpi-zero-2-w.dtb*  bcm2711-rpi-cm4.dtb*  bcm2712d0-rpi-5-b.dtb*   bcm2712-rpi-cm5-cm5io.dtb*  EFI/           fixup4db.dat*  fixup.dat*     overlays/      start4db.elf*    start_cd.elf*  start_x.elf*

However, bootupd currently only manages the /boot/efi/EFI directory, so there's no way to put these files under /boot/efi without any kind of post-processing run after bootupd backend install.

Activity

  1. nullr0ute commented on May 7, 2024

    @nullr0ute

    It might be useful to be able to have dot.conf files to allow different bits to be managed using bootupd, I know fwupd-efi may have similar requirements.

  2. ondrejbudai commented on May 7, 2024

    @ondrejbudai
    Author

    FTR, I came up with a horrible, incomplete, but working workaround, see https://github.com/ondrejbudai/fedora-bootc-raspi

  3. aenertia commented on May 14, 2024

    @aenertia

    Likewise for other SBC's which use uboot and/or need custom dtb/dtsi definitions. I am currently investigating bootc for rk3588/rk3566 deployment and am running into lack of flexibility. At the moment it looks like a wash for IOT and/or configurable dtb

  4. nullr0ute commented on May 14, 2024

    @nullr0ute

    Likewise for other SBC's which use uboot and/or need custom dtb/dtsi definitions. I am currently investigating bootc for rk3588/rk3566 deployment and am running into lack of flexibility. At the moment it looks like a wash for IOT and/or configurable dtb

    They will need to be dealt with differently actually.

  5. aenertia commented on May 14, 2024

    @aenertia
  6. say-paul commented on Mar 26, 2025

    @say-paul
    Collaborator

    @cgwalters @ondrejbudai @nullr0ute adding the firmware files(dtb,elf) in /boot/efi is done by the rpm, we need to ensure it copied over correctly while building the image, but for the bootloader (uboot) binaries seems to vary as per SOC rpm -ql uboot-images-armv8 we need to know the device on which the image will be installed. I see this part to be handled by arm-image-installer as it already consumes --target=rpi4 and can put the binary accordingly.

  7. cgwalters commented on Mar 26, 2025

    @cgwalters
    Member

    I think this issue is a dup of #766 - I don't have a strong opinion on which we do the dup, I filed that one having forgotten that this one exists.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions