Skip to content
New issue

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

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

Already on GitHub? # to your account

Backport Tegra Capsule Update #1552

Open
wants to merge 14 commits into
base: main
Choose a base branch
from

Conversation

igoropaniuk
Copy link
Contributor

Backport Tegra Capsule Update patches from scarthgap branch

Copy link
Member

@quaresmajose quaresmajose left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@quaresmajose
Copy link
Member

Maybe it will be better to wait abit for the merge of the foundriesio/lmp-manifest#474

@igoropaniuk
Copy link
Contributor Author

@quaresmajose that was my initial plan😊 to merge it after we switch to scrarthgap completely in main( oth meta-lmp and lamp-manifest)

@igoropaniuk igoropaniuk force-pushed the tegra-capsule-updates-backport branch from d799542 to c73cf92 Compare February 2, 2025 10:29
@igoropaniuk
Copy link
Contributor Author

@quaresmajose I've rebased on the latest main

Copy link
Member

@quaresmajose quaresmajose left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Contributor

@angolini angolini left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I cannot comment on capsule update behavior, so I only added few comments related with yocto aesthetics

LICENSE = "MPL-2.0"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad"

inherit allarch
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is it allarch?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's just a copy of the existing recipe for ubootenv meta-lmp-base/recipes-sota/aktualizr/aktualizr-fiovb-env-rollback.bb with the minimal changes

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a config snippet.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let me know if you want me to drop it

meta-lmp-base/recipes-sota/fioefi/fioefi_0.1.bb Outdated Show resolved Hide resolved
@ricardosalveti
Copy link
Member

+1 to remove the cherry-pick lines, this is 'main'.

Introduce recipe, that assembles a "fioefi" script which wraps
UEFI Capsule update commands. Scripts provides the same usage API
as fiovb/ubootenv apps:

$ fioefi_setenv bootupgrade_available 1
$ fioefi_printenv rollback

Signed-off-by: Igor Opaniuk <igor.opaniuk@foundries.io>
Add tegra-specific fioefi script includes. Testing fioefi script:

$ export FIO_OSTREE_TARGET_SYSROOT=/
$ fioefi_setenv bootupgrade_available 1
$ reboot
....
Update Progress - 100% **************************************************
Shutdown state requested 1
Rebooting system ...

When ak-lite is used, it automatically sets a path to the target sysroot via
FIO_OSTREE_TARGET_SYSROOT variable.

Boot firmware version is obtained from the ESRT table [1].

[1] https://uefi.org/specs/UEFI/2.9_A/23_Firmware_Update_and_Reporting.html
Signed-off-by: Igor Opaniuk <igor.opaniuk@foundries.io>
Enable fioefi MACHINE_FEATURE for tegra by default.

Signed-off-by: Igor Opaniuk <igor.opaniuk@foundries.io>
Install fioefi package if fioefi machine feature is enabled.

Signed-off-by: Igor Opaniuk <igor.opaniuk@foundries.io>
Introduce support for fioefi rollback mode in aktualizr.

Signed-off-by: Igor Opaniuk <igor.opaniuk@foundries.io>
Add tegra-bl.cap UEFI capsule to LMP_BOOT_FIRMWARE_FILES.

Signed-off-by: Igor Opaniuk <igor.opaniuk@foundries.io>
Add dependency on tegra-uefi-capsules for lmp-boot-firmware on tegra
machines.

Signed-off-by: Igor Opaniuk <igor.opaniuk@foundries.io>
Do not install UEFI capsules to rootfs, lmp-boot-firmware should handle
that instead.

Signed-off-by: Igor Opaniuk <igor.opaniuk@foundries.io>
Enable systemd-boot support by default for Tegra machines.
Boot test:

Jetson UEFI firmware (version v35.5.0 built on 2024-02-26T13:44:31+00:00)
ESC   to enter Setup.
F11   to enter Boot Manager Menu.
Enter to continue boot.
**  WARNING: Test Key is used.  **
......EFI stub: Booting Linux Kernel...
EFI stub: Using DTB from configuration table
EFI stub: Loaded initrd from LINUX_EFI_INITRD_MEDIA_GUID device path
EFI stub: Exiting boot services and installing virtual address map...
I/TC: Secondary CPU 1 initializing

.....
Linux-microPlatform 4.0.20 jetson-agx-xavier-devkit ttyTCU0

jetson-agx-xavier-devkit login:

Signed-off-by: Igor Opaniuk <igor.opaniuk@foundries.io>
Use L4T_VERSION variable, and convert it to the same format as it's
currenlty exposed via ESRT table:

$ cat /sys/firmware/efi/esrt/entries/entry0/fw_version
2295296

Signed-off-by: Igor Opaniuk <igor.opaniuk@foundries.io>
Don't install systemd-bless-boot.service, as ak-lite invokes
bless-boot tool manually fio SOTA targets with fioefi support.

Signed-off-by: Igor Opaniuk <igor.opaniuk@foundries.io>
Fix ESP partition defined path.

Signed-off-by: Igor Opaniuk <igor.opaniuk@foundries.io>
Disable nv_update_verifier service, as it's invoked manually by
ak-lite for SOTA targets with fioefi support.

Signed-off-by: Igor Opaniuk <igor.opaniuk@foundries.io>
Add support for deploying systemd-boot to ESP partition.
Considering that default deployment has always index == 0, the filenames
in ESP for efi binaries are generated in this way:
deployment index       path
0:                     /boot/EFI/BOOT/bootx64.efi
1:                     /boot/EFI/BOOT/bootx64-1.efi
2:                     /boot/EFI/BOOT/bootx64-2.efi

Signed-off-by: Igor Opaniuk <igor.opaniuk@foundries.io>
@igoropaniuk igoropaniuk force-pushed the tegra-capsule-updates-backport branch from c73cf92 to acb12f5 Compare February 6, 2025 17:56
@igoropaniuk
Copy link
Contributor Author

Good to merge?

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants