What makes Jetson AGX Xavier non-SBSA compliant?

The Xavier is not SBSA compliant for a few reasons. First as you’ve pointed out the Xavier uses a custom bootloader for hardware initialization and boot device enumeration (cboot+device tree blobs) that boots from the eMMC. For SBSA compliance you would need a UEFI (such as edk2 with ACPI) that boots from an SPI NOR flash (or equivalent dedicated storage) and provides standard EFI boot time and runtime services (BDS - Boot Device Selection, EFI variable services, system reset, RTC services, ect). Second, many of the peripherals found in the T194 SoC are custom to Nvidia and Nvidia only provides support through out-of-tree device drivers that target a slightly custom 4.9 LTS kernel. These drivers would need to be upstreamed to mainline for there to be any chance to run generic arm64 distributions on the Xavier without significant effort. As you’ve suspected, some hardware (such as generic watchdogs) are not implemented on the t194 (AFAIK) which also prevents “complete” SBSA compliance. SBSA compliance also requires that certain key hardware blocks (PCIe and USB) be configured and physically mapped in such a way that “generic” drivers for PCIe and USB can work with them (I’m not sure how compliant these blocks are on the t194). The Xavier DOES however support some of the prerequisites for SBBR/EBBR though services provided in ARM Trusted Firmware such as PSCI.

Unfortunately the closest thing you can get to SBSA compliance on the Xavier is through virtualization. If that interests you, details can be found here.

2 Likes