Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch to direct booting of flasher images #522

Open
wants to merge 24 commits into
base: master
Choose a base branch
from

Commits on Nov 28, 2024

  1. images/balena-image-flasher: Install UEFI bootloader in the flasher b…

    …oot partition
    
    The UEFI firmware which comes in Jetpack 6 is at
    a newer revision and has symlinks support to load the
    kernel and dtb from the non-flasher rootfs.
    
    Thus, with an updated bootloader which looks
    for the flasher flag in the boot partition,
    we can provision the internal medium using the
    existing firmware in the QSPI.
    
    Signed-off-by: Alexandru Costache <[email protected]>
    acostach committed Nov 28, 2024
    Configuration menu
    Copy the full SHA
    bf699ac View commit details
    Browse the repository at this point in the history
  2. recipes-bsp/uefi: Exist build script on failure

    Signed-off-by: Alexandru Costache <[email protected]>
    acostach committed Nov 28, 2024
    Configuration menu
    Copy the full SHA
    dd18657 View commit details
    Browse the repository at this point in the history
  3. images/balena-image-initramfs: Install migrate dependencies in initramfs

    In order to run the migrate script succesfully, the tools
    used by resin-init-flasher script need to exist in the initramfs.
    
    Signed-off-by: Alexandru Costache <[email protected]>
    acostach committed Nov 28, 2024
    Configuration menu
    Copy the full SHA
    5073c2c View commit details
    Browse the repository at this point in the history
  4. resin-init/resin-init-flasher-board: flash boot blob only if QSPI is …

    …available
    
    If the QSPI is not available, like in the case where the standard
    uefi firmware is running and the board has not been started in
    rcm-boot mode, don't attempt to write the qspi.
    
    Also cleanup unused variable.
    
    Signed-off-by: Alexandru Costache <[email protected]>
    acostach committed Nov 28, 2024
    Configuration menu
    Copy the full SHA
    7430d88 View commit details
    Browse the repository at this point in the history
  5. recipes-bsp/uefi: Add flasher image check in bootloader

    We now check for the flasher flag in the boot partition and
    boot the device with the flasher root partition set,
    without relying on the rcm-boot script to set the kernel
    command line.
    
    Signed-off-by: Alexandru Costache <[email protected]>
    acostach committed Nov 28, 2024
    Configuration menu
    Copy the full SHA
    c90a872 View commit details
    Browse the repository at this point in the history
  6. recipes-bsp/uefi: Minor cleanup in patches

    Signed-off-by: Alexandru Costache <[email protected]>
    acostach committed Nov 28, 2024
    Configuration menu
    Copy the full SHA
    77611c6 View commit details
    Browse the repository at this point in the history
  7. images/balena-image-initramfs: Increase ROOTFS_MAXSIZE, install packa…

    …ges for QSPI updating
    
    Signed-off-by: Alexandru Costache <[email protected]>
    acostach committed Nov 28, 2024
    Configuration menu
    Copy the full SHA
    cd2aa3f View commit details
    Browse the repository at this point in the history
  8. recipes-core/balena-image: Install jetson-qspi-manager

    This package provides the means for triggering
    UEFI updates if the QSPI is not accessible - that
    is when a board has been previously flashed with
    the reference OS.
    
    This simplifies the use of flasher images because
    the board no longer needs to be put in recovery
    mode to be provisioned.
    
    Signed-off-by: Alexandru Costache <[email protected]>
    acostach committed Nov 28, 2024
    Configuration menu
    Copy the full SHA
    59e6847 View commit details
    Browse the repository at this point in the history
  9. resin-init/resin-init-flasher-board: Trigger an UEFI capsule update i…

    …f QSPI is inaccessible
    
    This allows for flasher images to be booted even if
    the device isn't in recovery mode, as long as the
    vanilla firmware in the QSPI is in sync with the hostOS
    L4T version.
    
    Signed-off-by: Alexandru Costache <[email protected]>
    acostach committed Nov 28, 2024
    Configuration menu
    Copy the full SHA
    7a814f4 View commit details
    Browse the repository at this point in the history
  10. recipes-support/jetson-qspi-manager: Add package for triggering UEFI …

    …capsule updates
    
    This package consists of a systemd service and helper scripts
    which prepare an UEFI capsule update, when the QSPI
    is not already flashed with the UEFI firmware patched
    in balenaOS.
    
    Signed-off-by: Alexandru Costache <[email protected]>
    acostach committed Nov 28, 2024
    Configuration menu
    Copy the full SHA
    5ad71fe View commit details
    Browse the repository at this point in the history
  11. linux-jammy-nvidia-tegra: Increase timeout so that the flasher rootfs…

    … can settle
    
    Signed-off-by: Alexandru Costache <[email protected]>
    acostach committed Nov 28, 2024
    Configuration menu
    Copy the full SHA
    11a4165 View commit details
    Browse the repository at this point in the history

Commits on Dec 2, 2024

  1. resin-init-flasher-board: Write QSPI directly only when booted with O…

    …rin Flash scripts
    
    So that provisioning doesn't take longer than needed
    neither trough USB key, nor during migration in the
    initramfs.
    
    We also drop clearing of the eMMC when the NVME is flashed,
    and leave the initramfs scripts relocate the end GPT,
    since this no longer appears to be needed during provisioning.
    
    Signed-off-by: Alexandru Costache <[email protected]>
    acostach committed Dec 2, 2024
    Configuration menu
    Copy the full SHA
    4290aa3 View commit details
    Browse the repository at this point in the history
  2. hostapp-update-hooks: Remove hardcoded internal devices

    ... and determine the internal device during HUP, as this
    would allow to boot the flasher Orins from multiple targets,
    depending on the flasher config.json settings.
    
    Signed-off-by: Alexandru Costache <[email protected]>
    acostach committed Dec 2, 2024
    Configuration menu
    Copy the full SHA
    5230b92 View commit details
    Browse the repository at this point in the history
  3. recipes-support/jetson-qspi-manager: Allow applying of capsule update…

    …s on accessible QSPIs
    
    ... so that the provisioning time is decreased even when
    balenaOS was already running on the device.
    
    Signed-off-by: Alexandru Costache <[email protected]>
    acostach committed Dec 2, 2024
    Configuration menu
    Copy the full SHA
    11bfbd8 View commit details
    Browse the repository at this point in the history
  4. recipes-core/initrdscripts: Patch migrate module to copy Jetson flash…

    …ing artifacts
    
    ... and also drop the NVME wait script, as increasing the roottimeout
    from the kernel cmdline should allow more time for it to settle.
    
    Signed-off-by: Alexandru Costache <[email protected]>
    acostach committed Dec 2, 2024
    Configuration menu
    Copy the full SHA
    55c7c37 View commit details
    Browse the repository at this point in the history
  5. recipes-bsp/uefi: Force use NewDeviceHierarchy

    ... even if the device was flashed with NewDeviceHierarchy { data = [00]..
    so that it can boot a flasher image when a USB key is inserted.
    
    Not setting this would prevent the UEFI bootloader from the
    USB key to be loaded by the UEFI firmware. This is done for the
    AGX 64GB only, since it's the only flasher DT which has NewDeviceHierarchy
    disabled.
    
    NOTE: Setting the flasher rootfs label from extlinux wouldn't
    work as an alternative, because the extlinux.conf file
    would be loaded from the eMMC as well.
    
    Signed-off-by: Alexandru Costache <[email protected]>
    acostach committed Dec 2, 2024
    Configuration menu
    Copy the full SHA
    d1d2f79 View commit details
    Browse the repository at this point in the history
  6. jetson-qspi-helpers: Use device-specific name when setting efivars

    ... so that the UEFI capsule update can be triggered based
    on the actual device type.
    
    Signed-off-by: Alexandru Costache <[email protected]>
    acostach committed Dec 2, 2024
    Configuration menu
    Copy the full SHA
    b56267c View commit details
    Browse the repository at this point in the history
  7. layers/meta-balena: Update to v6.1.16

    Changelog-entry: layers/meta-balena: Update to v6.1.16
    Signed-off-by: Alexandru Costache <[email protected]>
    acostach committed Dec 2, 2024
    Configuration menu
    Copy the full SHA
    30dc28e View commit details
    Browse the repository at this point in the history
  8. recipes-bsp/tegra-binaries: Update AGX 64 boot blob and UEFI capsule

    ... to ensure that during boot, newly inserted devices like USB
    keys or NVMEs are added to the top of the boot list. This allows
    for the UEFI bootloader to be loaded from the newly inserted media
    so that the flasher image can be booted first.
    
    Changelog-entry: recipes-bsp/tegra-binaries: Update AGX 64 boot blob and UEFI capsule
    Signed-off-by: Alexandru Costache <[email protected]>
    acostach committed Dec 2, 2024
    Configuration menu
    Copy the full SHA
    968cbf5 View commit details
    Browse the repository at this point in the history
  9. balena-yocto-scripts: update to v1.27.16

    Signed-off-by: Alexandru Costache <[email protected]>
    acostach committed Dec 2, 2024
    Configuration menu
    Copy the full SHA
    3da7cbf View commit details
    Browse the repository at this point in the history
  10. contracts: update to v2.0.117

    Signed-off-by: Alexandru Costache <[email protected]>
    acostach committed Dec 2, 2024
    Configuration menu
    Copy the full SHA
    939cf02 View commit details
    Browse the repository at this point in the history
  11. nvidia-kernel-oot: Enable CONFIG_80211D for rtl8822ce

    Signed-off-by: Alexandru Costache <[email protected]>
    acostach committed Dec 2, 2024
    Configuration menu
    Copy the full SHA
    0ad481d View commit details
    Browse the repository at this point in the history
  12. github/workflows: Update workflows for all device-types

    to allow for builds to run.
    
    Signed-off-by: Alexandru Costache <[email protected]>
    acostach committed Dec 2, 2024
    Configuration menu
    Copy the full SHA
    6d76693 View commit details
    Browse the repository at this point in the history
  13. balena-image-initramfs: Drop installing unused package

    We replaced waiting for the NVME to settle with
    an increased root timeout.
    
    Signed-off-by: Alexandru Costache <[email protected]>
    acostach committed Dec 2, 2024
    Configuration menu
    Copy the full SHA
    631e1e9 View commit details
    Browse the repository at this point in the history