Setting UEFI variables using the DefaultVariableDxe only works if ESP is on eMMC, but not on an NVMe drive

I’m trying to update manually using the UEFI capsule update mechanism, which requires setting this UEFI variable: OsIndications. (This is assuming we’ve been able to set TegraPlatformSpec, and TegraPlatformCompatSpec previously)

On the Xavier AGX, which has the uefi variable store on the emmc, we have to write files to a location on the ESP, under /EFI/NVDA/Variables, and reboot.
However, if the ESP is on an NVMe drive, instead of the emmc, this will fail, with this message produced (when turning on debug messages):

Failed to Locate System Partition Guid Not Found

I suspect the cause of the issue is that NvmExpressDxe and others required to read from an nvme drive are not loaded when DefaultVariableDxe runs, while the emmc/sd card dxes are loaded by virtue of being in APRIORI DXE under Platform/NVIDIA/Jetson/Jetson.fdf

Hello
You are correct, currently we only support runtime variables on an eMMC ESP partition.
Does your setup have the firmware images on eMMC and the OS images on NVMe ?

Yes, on the Xavier AGX, we have the firmware images on the eMMC, and the OS images on the NVMe (ESP + Linux filesystems).

Is it on the roadmap to support runtime variables on an NVMe drive? If not, do you have any suggestions on how we could modify the sources to support this use case?

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.