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

Backport Tegra Capsule Update #1552

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

Conversation

igoropaniuk
Copy link
Contributor

Backport Tegra Capsule Update patches from scarthgap branch

igoropaniuk and others added 18 commits December 30, 2024 15:27
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 <[email protected]>
(cherry picked from commit b7e8757)
Install fioefi package if fioefi machine feature is enabled.

Signed-off-by: Igor Opaniuk <[email protected]>
(cherry picked from commit da8b5b2)
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.

Signed-off-by: Igor Opaniuk <[email protected]>
(cherry picked from commit f45e6fc)
Introduce support for fioefi rollback mode in aktualizr.

Signed-off-by: Igor Opaniuk <[email protected]>
(cherry picked from commit db543ee)
Enable fioefi MACHINE_FEATURE for tegra by default.

Signed-off-by: Igor Opaniuk <[email protected]>
(cherry picked from commit 8ef310c)
Add tegra-bl.cap UEFI capsule to LMP_BOOT_FIRMWARE_FILES.

Signed-off-by: Igor Opaniuk <[email protected]>
(cherry picked from commit df4a45b)
Signed-off-by: Jose Quaresma <[email protected]>
(cherry picked from commit 74fa61a)
Add dependency on tegra-uefi-capsules for lmp-boot-firmware on tegra
machines.

Signed-off-by: Igor Opaniuk <[email protected]>
(cherry picked from commit 81d52af)
Add lmp-boot-firmware runtime dependency for all targets.

Signed-off-by: Igor Opaniuk <[email protected]>
(cherry picked from commit a4d3422)
Do not install UEFI capsules to rootfs, lmp-boot-firmware should handle
that instead.

Signed-off-by: Igor Opaniuk <[email protected]>
(cherry picked from commit 44b7f99)
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 <[email protected]>
(cherry picked from commit 98cfc62)
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 <[email protected]>
(cherry picked from commit 0d9155a)
* Add support for upgrade_available cmd
* Parse target sysroot deployment path from boot entries

Signed-off-by: Igor Opaniuk <[email protected]>
(cherry picked from commit ccc592a)
Add support for obtaining current boot firmware version,
which is exposed in ESRT table.

[1] https://uefi.org/specs/UEFI/2.9_A/23_Firmware_Update_and_Reporting.html
Signed-off-by: Igor Opaniuk <[email protected]>
(cherry picked from commit 7df9c84)
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 <[email protected]>
(cherry picked from commit 2c0d74a)
Fix ESP partition defined path.

Signed-off-by: Igor Opaniuk <[email protected]>
(cherry picked from commit 8f2671a)
Disable nv_update_verifier service, as it's invoked manually by
ak-lite for SOTA targets with fioefi support.

Signed-off-by: Igor Opaniuk <[email protected]>
(cherry picked from commit 99a1ec9)
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 <[email protected]>
(cherry picked from commit bab4ca3)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants