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

Add support for building capsules #1285

Merged
merged 7 commits into from
Aug 4, 2023
Merged

Add support for building capsules #1285

merged 7 commits into from
Aug 4, 2023

Conversation

Lexmark-chad
Copy link
Contributor

Consider this just a starting point to spur some discussion on how best to implement.

  1. Should the capsules be included in the rootfs by default or simply be deployed to ${DEPLOYDIR}? I initially went ahead and included them in the rootfs. That follows the pattern of how swupdate works (which is what we use) in tegra-test-distro whereby tegra-bootloader-update and bl_update_payload are packaged into the rootfs and then swupdate mounts the just programmed inactive partition to drive the bootloader upddate. Having said that, I believe when we implemented dm-verity to create a full chain of trust from the bootloaders to the rootfs it created a cycle of dependencies in the build. To break the cycle we pulled the bootloader payload out of the rootfs and packaged it directly into the .swu. For uefi the capsules eventually have to end up in /opt/nvidia/esp/EFI/UpdateCapsule/. Maybe that means that the capsules should simply be deployed to the ${DEPLOYDIR} and it is up to the update mechanism to pull them out of the update specific packaging and copy them to the appropriate directory.

  2. Is a new recipe really required? I created a separate recipe instead of piling on top of tegra-bup-payload. By doing so I needed to move some logic to a .bbclass to avoid having to repeat it in the new recipe and creating a new point of maintenance.

  3. Requesting a capsule update is obscure so I created and a helper script to set OSIndications.

I like choosing good names for things so if there are any suggestions to improved naming on anything I am open to suggestions.

#!/bin/bash

printf "\x07\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00" > /tmp/var_tmp.bin
dd if=/tmp/var_tmp.bin of=/sys/firmware/efi/efivars/OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c bs=12;sync
Copy link
Member

Choose a reason for hiding this comment

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

The destination path has to be different for the AGX Xavier, which doesn't support writing variables in the efivars sysfs.

It might be better to move this script to the setup-nv-boot-control recipe and have it leverage the logic in the existing script there (maybe with a bit of refactoring) to determine how to modify the EFI variable.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

See what you think of the refactoring. I initially wanted to make a .func file for both compat spec logic and for setting the uefi var, but they were intertwined just enough that I left it together.

Copy link
Member

Choose a reason for hiding this comment

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

At first glance it looks good - just the sort of thing I had in mind.. We should probably use the full path to the .func file in the source line, though. I'll review in more detail when I get a chance.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Full path has been taken care of. Not sure why, but the auto-builder / checklayer broke after I forced push. The commits all look correct so not sure what happened. I am still chasing down an issue during my testing. Invoking the script to set OsIndications works the first time through, but not the second. I am tracking that down now.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

OK... I should have looked at the existing logic a little closer (and the comment). I'll have to rework that logic as it looks like the design intent was to only write TegraPlatformSpec and TegraPlatformCompatSpec the first time - presumably because those should be static values.

Copy link
Member

Choose a reason for hiding this comment

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

Not sure why, but the auto-builder / checklayer broke after I forced push. The commits all look correct so not sure what happened.

Force-pushes (and some other unusual events) can confuse the autobuilder's PR handler. Fixing that is on my to-do list, but in the meantime, I re-queued the job.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Logic should be fixed now. Tested A->B and B->A on Orin AGX Devkit. Will test Xavier AGX Devkit next.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Tested A->B and B->A on Xavier AGX Devkit as well and everything looks OK. I think this is gtg pending any additional feedback.

recipes-bsp/uefi/tegra-uefi-capsules_35.3.1.bb Outdated Show resolved Hide resolved
@madisongh
Copy link
Member

Thanks @Lexmark-chad, this is a good start.

Should the capsules be included in the rootfs by default or simply be deployed to ${DEPLOYDIR}?

${DEPLOY_DIR_IMAGE} might be a better place when creating the capsules. Something in the OTA updater is going to have to write the capsule into the /boot/efi/EFI/UpdateCapsule directory. For Mender updates, that might be a post-install state script that copies the capsule file out of the rootfs, so we'd also need a recipe to install the capsule(s) into the rootfs for that case. For swupdate, the capsule(s) could just be another payload in the .swu file, keeping it out of the rootfs, in which case the recipe could pull the capsule(s) directly from the deploy area, saving space in the rootfs.

Is a new recipe really required? I created a separate recipe instead of piling on top of tegra-bup-payload

Probably new recipes/bbclass/whatever for now. At some point we might be able to combine the BUP and capsule generation logic, together, eliminating the .bup-payload artifacts altogether and just outputting capsules. That should simplify things a bit, since the capsules won't combine the bootloader and kernel into a single payload. That should allow us to move some of the logic into a bbclass or include file and have cleaner, separated, paths for the bootloader and the kernel capsule generation. @kekiefer - what do you think? Could we drop the old BUPs and associated tools and switch over to the capsule method in one step?

@Lexmark-chad Lexmark-chad marked this pull request as draft July 18, 2023 13:41
Copy link
Member

@madisongh madisongh left a comment

Choose a reason for hiding this comment

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

The basic structure LGTM. See in-line for some minor changes needed.

recipes-bsp/uefi/edk2-basetools-native_202302.bb Outdated Show resolved Hide resolved
recipes-bsp/uefi/tegra-uefi-capsules_35.3.1.bb Outdated Show resolved Hide resolved
classes/bup.bbclass Outdated Show resolved Hide resolved
recipes-bsp/uefi/tegra-uefi-capsules_35.3.1.bb Outdated Show resolved Hide resolved
@Lexmark-chad
Copy link
Contributor Author

@madisongh , thanks for all the feedback. I am close on the OsIndications rework and will hopefully get to that tomorrow.

@Lexmark-chad Lexmark-chad marked this pull request as ready for review July 23, 2023 18:59
Copy link
Member

@madisongh madisongh left a comment

Choose a reason for hiding this comment

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

LGTM

@madisongh
Copy link
Member

@dwalkes could you take a look at this also?

Copy link
Member

@dwalkes dwalkes left a comment

Choose a reason for hiding this comment

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

Thanks again @Lexmark-chad for taking this on. I tried today with jetson-xavier-nx-devkit-emmc, adding to the build with:

IMAGE_INSTALL:append = " tegra-uefi-capsules"

Then after booting up with the resulting build, copied the tegra-bl.cap file to the expected location for UEFI:

cp /opt/nvidia/UpdateCapsule/tegra-bl.cap /opt/nvidia/esp/EFI/UpdateCapsule/TEGRA_BL.Cap

Then ran:

oe4t-set-uefi-OSIndications

Verified the value was set:

root@jetson-xavier-nx-devkit-emmc:~# efivar -n 8be4df61-93ca-11d2-aa0d-00e098032b8c-OsIndications
GUID: 8be4df61-93ca-11d2-aa0d-00e098032b8c
Name: "OsIndications"
Attributes:
        Non-Volatile
        Boot Service Access
        Runtime Service Access
Value:
00000000  04 00 00 00 00 00 00 00                           |........        |
root@jetson-xavier-nx-devkit-emmc:~# efivar -n 8be4df61-93ca-11d2-aa0d-00e098032b8c-OsIndications
GUID: 8be4df61-93ca-11d2-aa0d-00e098032b8c
Name: "OsIndications"
Attributes:
        Non-Volatile
        Boot Service Access
        Runtime Service Access
Value:
00000000  04 00 00 00 00 00 00 00                           |........        |

Then rebooted
After reboot I got

root@jetson-xavier-nx-devkit-emmc:~# nvbootctrl dump-slots-info
Current version: 35.3.1
Capsule update status: 0
Current bootloader slot: A
Active bootloader slot: A
num_slots: 2
slot: 0,             status: normal
slot: 1,             status: normal

I didn't have a serial port connected yet, this would be the next step to debug this. Wanted to make sure I'm not missing something. @Lexmark-chad have you tried on jetson-xavier-nx-devkit-emmc yet or only on AGX Xavier?

@Lexmark-chad
Copy link
Contributor Author

@Lexmark-chad have you tried on jetson-xavier-nx-devkit-emmc yet or only on AGX Xavier?

I've tried it on both Orin & Xavier AGX. I'll take a peek at the Xavier NX Devkit.

@Lexmark-chad
Copy link
Contributor Author

Lexmark-chad commented Jul 26, 2023

@dwalkes, I got the same result. I'll have to get someone here to rig me up a serial debug cable so I can see what is going on during boot.

@dwalkes
Copy link
Member

dwalkes commented Jul 26, 2023

This is exactly what happened before 64a3404 but I see that is in the kirkstone branch. I actually only tested it on master with https://matrix.to/#/!YBfWVpJwNVtkmqVCPS:gitter.im/$S8dzzJNfmhMzAt5cp4ikgNjJtez98R68O_39q3oAG0M?via=gitter.im&via=matrix.org&via=3dvisionlabs.com I believe. I will try to re-test the NVIDIA built capsule update on kirkstone tonight.

@dwalkes
Copy link
Member

dwalkes commented Jul 27, 2023

I will try to re-test the NVIDIA built capsule update on kirkstone tonight.

I've verified I can successfully complete an update with this TEGRA_BL.Cap generated with the Jetpack 5.1.1 release and instructions here and the rest of the image matching the kirkstone build on this branch. So it appears to be some difference in capsule content which causes the issue although I'm not sure what that would be.

@Lexmark-chad
Copy link
Contributor Author

When I used NVIDIA's tooling with the *.bl_only.bup-payload from the build it also didn't work. Continuing to investigate...

@Lexmark-chad
Copy link
Contributor Author

I finally got a serial cable hooked up. There wasn't anything that stood out as a hint of what is going on so I instrumented the tooling to output the exact command used to generate the bup payloads. The main difference I saw was that L4T tooling uses nvdisp-init.bin for the cpu-bootloader partition while meta-tegra uses uefi_jetson.bin. If I understand correctly that just means boot with or without a splash screen. My next thought will be to try and enable debug in uefi so I get more serial trace output at boot. @madisongh, can you think of anything else I should be looking at?

@dwalkes
Copy link
Member

dwalkes commented Jul 31, 2023

My next thought will be to try and enable debug in uefi so I get more serial trace output at boot.

I suggest EDK2_BUILD_MODE:pn-edk2-firmware-tegra = "DEBUG" in local.conf , as well as turning on debug prints here

@Lexmark-chad
Copy link
Contributor Author

Just changing BUILD_MODE to DEBUG produced useful information:

Jetson UEFI firmware (version v35.3.1 built on 2023-01-24T13:18:32+00:00)
ESC   to enter Setup.
F11   to enter Boot Manager Menu.
Enter to continue boot.
FwPackageValidateImageInfo WARNING: image info for 'BCT' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'BCT' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'BCT' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'BCT' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'BCT' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'BCT_A' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'BCT_A' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'BCT_A' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'BCT_A' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'BCT_A' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'BCT_B' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'BCT_B' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'BCT_B' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'BCT_B' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'BCT_B' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'BCT-boot-chain_backup' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'BCT-boot-chain_backup' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'BCT-boot-chain_backup' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'BCT-boot-chain_backup' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'BCT-boot-chain_backup' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'mb1' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'mb1' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'mb1' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'mb1' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'mb1' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'mb1_b' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'mb1_b' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'mb1_b' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'mb1_b' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'mb1_b' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'MB1_BCT' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'MB1_BCT' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'MB1_BCT' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'MB1_BCT' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'MB1_BCT' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'MEM_BCT' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'MEM_BCT' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'MEM_BCT' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'MEM_BCT' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'MEM_BCT' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'spe-fw' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'mb2' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'mts-preboot' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'mts-mce' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'mts-proper' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'VER' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'VER' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'VER' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'VER' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'VER' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'cpu-bootloader' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'bootloader-dtb' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'bootloader-dtb' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'bootloader-dtb' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'bootloader-dtb' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'bootloader-dtb' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'secure-os' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'eks' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'bpmp-fw' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'bpmp-fw-dtb' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'bpmp-fw-dtb' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'bpmp-fw-dtb' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'bpmp-fw-dtb' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'bpmp-fw-dtb' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'rce-fw' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'adsp-fw' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'sc7' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'xusb-fw' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'secondary_gpt' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'secondary_gpt' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'secondary_gpt' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'secondary_gpt' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'secondary_gpt' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'secondary_gpt_backup' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'secondary_gpt_backup' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'secondary_gpt_backup' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'secondary_gpt_backup' has version=13617, expected=0
FwPackageValidateImageInfo WARNING: image info for 'secondary_gpt_backup' has version=13617, expected=0
bootloader-dtb not found in package: Unsupported
FmpDxe(NVIDIA System Firmware): CheckTheImage() - FmpDeviceLib CheckImage failed. Status = Aborted
FmpDxe(NVIDIA System Firmware): SetTheImage() - Check The Image failed with Aborted.
HandleCapsules˙�ˇ‚

@dwalkes
Copy link
Member

dwalkes commented Aug 1, 2023

I think this means the check here is failing, and turning on that info print might be helpful in figuring out why. I suspect it's some issue with tnspec match. Here's the working TegraBL.cap on the left linked above (from 5.1.1) and the one from the tegra build on the right.
Screenshot 2023-08-01 100335
Note the tnspecs referenced there and the differences between the two.

@Lexmark-chad
Copy link
Contributor Author

Lexmark-chad commented Aug 1, 2023

I'm getting closer. The tnspecs are different between meta-tegra builds and l4t tooling which causes the code in FwPackageGetImageIndex to flow through differently. I've added debug all throughout that function and it is clearly following a different code path. The tnspecs for bootloader-dtb for meta-tegra are:

3668-100-0001--1-2-jetson-xavier-nx-devkit-emmc-
3668-200-0001--1-2-jetson-xavier-nx-devkit-emmc-
3668-300-0001--1-2-jetson-xavier-nx-devkit-emmc-
3668-301-0001--1-2-jetson-xavier-nx-devkit-emmc- 
3668-301-0003--1-2-jetson-xavier-nx-devkit-emmc-

while l4t's is:

3668-100-0001--1-2-jetson-xavier-nx-devkit-emmc-
3668-301-0001--1-2-jetson-xavier-nx-devkit-emmc-

It's the 3668-200-0001--1-2-jetson-xavier-nx-devkit-emmc- spec which causes the code to flow differently based on the call to FwPackageGetImageIndex with these parameters:

FwPackageGetImageIndex: Name: bootloader-dtb, FullSpec: 3668-200-0001-G.0-1-2-jetson-xavier-nx-devkit-emmc-, CompatSpec: 3668-100---1--jetson-xavier-nx-devkit-emmc-

Looking at that code now to understand design intent.

@Lexmark-chad
Copy link
Contributor Author

While it was true that the 3668-200-0001--1-2-jetson-xavier-nx-devkit-emmc- spec caused it to flow through a different code path and eventually return EFI_UNSUPPORTED the problem had already occurred when 3668-100-0001--1-2-jetson-xavier-nx-devkit-emmc- didn't match the compat spec and kick it out of the loop. I made a small change which appears to have fixed the problem, but I think it's better to actually refactor that code a bit as I found it confusing and hard to follow given what they were trying to accomplish. I'll give that a shot and we can patch it in meta-tegra while we wait for it to be upstreamed. Any opinions on whether the patch should be added to this PR and have it all go together?

@madisongh
Copy link
Member

Hmm. The TEGRA_BUPGEN_SPECS setting for jetson-xavier-nx-devkit-emmc is incorrect. I must have missed that when converting us over to using the compatibility specs. We should be building just the -100 and -301 entries, just like L4T does.

the problem had already occurred when 3668-100-0001--1-2-jetson-xavier-nx-devkit-emmc- didn't match the compat spec and kick it out of the loop

Are we setting up the compat spec wrong for the Xavier NXes, too?

@Lexmark-chad
Copy link
Contributor Author

Are we setting up the compat spec wrong for the Xavier NXes, too?

That looks correct:

https://github.com/OE4T/meta-tegra/blob/kirkstone/conf/machine/jetson-xavier-nx-devkit.conf#L7

@madisongh
Copy link
Member

I mean in this function:

gen_compat_3668() {
if [ "$fab" != "301" ]; then
fab="100"
fi
boardsku=
boardrev=
chiprev=
return 0
}

@Lexmark-chad
Copy link
Contributor Author

I modified TEGRA_BUPGEN_SPECS for the jetson-xavier-nx-devkit-emmc machine conf to match the l4t entries per your observation and it still failed. I'll re-check everything tomorrow to see if I messed up something. Also, per prior post:

root@jetson-xavier-nx-devkit-emmc:~# efivar --print --name 781e084c-a330-417c-b678-38e696380cb9-TegraPlatformCompatSpec
GUID: 781e084c-a330-417c-b678-38e696380cb9
Name: "TegraPlatformCompatSpec"
Attributes:
        Non-Volatile
        Boot Service Access
        Runtime Service Access
Value:
00000000  33 36 36 38 2d 31 30 30  2d 2d 2d 31 2d 2d 6a 65  |3668-100---1--je|
00000010  74 73 6f 6e 2d 78 61 76  69 65 72 2d 6e 78 2d 64  |tson-xavier-nx-d|
00000020  65 76 6b 69 74 2d 65 6d  6d 63 2d                 |evkit-emmc-     |

@Lexmark-chad
Copy link
Contributor Author

False alarm. Not everything rebuilt after I changed the machine conf to make TEGRA_BUPGEN_SPECS match L4T's list. Once rebuilt everything worked as expected. I will soon add that change to the PR. I'll log an issue against edk2-nvidia as there is clearly a logic bug that will eventually get exposed.

@dwalkes
Copy link
Member

dwalkes commented Aug 3, 2023

Thanks @Lexmark-chad , kicked off a build, will retry in the morning.

@dwalkes
Copy link
Member

dwalkes commented Aug 3, 2023

Confirmed working on jetson-xavier-nx-devkit-emmc. Thanks again @Lexmark-chad !

@dwalkes dwalkes self-requested a review August 3, 2023 13:57
@Lexmark-chad
Copy link
Contributor Author

Issue logged.

@madisongh
Copy link
Member

@Lexmark-chad could you make sure you've added a Signed-off-by: line to each of your commits?

@Lexmark-chad
Copy link
Contributor Author

@Lexmark-chad could you make sure you've added a Signed-off-by: line to each of your commits?

Sorry, forgot about that... Will take care of that shortly.

into edk2-firmware-tegra-35.3.1.inc for sharing with other recipes
who need just that info.

Signed-off-by: Chad McQuillen <chad.mcquillen@lexmark.com>
publish the python tools from edk2 source which is required
for generating uefi capsules.

Signed-off-by: Chad McQuillen <chad.mcquillen@lexmark.com>
Signed-off-by: Chad McQuillen <chad.mcquillen@lexmark.com>
creating uefi capsules from the bootloader and kernel bup payloads.

Signed-off-by: Chad McQuillen <chad.mcquillen@lexmark.com>
from setup-nv-boot-control.sh into uefi_common.func.in for other
scripts that will need to set uefi variables.

- Changed interface to set_ufi_var to require guid and
  added an optional parameter to control 'write once'
  behavior for static variables.

Signed-off-by: Chad McQuillen <chad.mcquillen@lexmark.com>
Signed-off-by: Chad McQuillen <chad.mcquillen@lexmark.com>
to match L4T's specs.

Signed-off-by: Chad McQuillen <chad.mcquillen@lexmark.com>
@madisongh madisongh merged commit 72d0081 into OE4T:kirkstone Aug 4, 2023
1 check passed
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.

None yet

3 participants