OE-Core master has udpated how the toolchain virtual providers
are handled, so update the layer accordingly.
This affects the gcc-for-nvcc extra toolchain build we have for
CUDA builds, and a few other recipes that have some explicit
references to the old toolchain virtual/<something> names.
Signed-off-by: Matt Madison <matt@madison.systems>
USB instances might not be consistent between the Jetson boot ROM
and the mass storage USB gadget in the running OS, so make the
cross-check of the instance ID optional, and off by default.
This means that when flashing secureboot-enabled devices using
pre-signed binaries, only one target can be flashed at a time
from a given host.
Signed-off-by: Matt Madison <matt@madison.systems>
* Drop OpenSSL 3 support patch now included upstream
* Rework OE build integration to be a bit cleaner
* Update to use BBCLASSEXTEND for native, instead of
having a direct -native recipe
Signed-off-by: Matt Madison <matt@madison.systems>
Fix the change introduced in ff0795338b
to use a relative path, rather than an absolute path, so the full
build path doesn't get embedded in any of OP-TEE packages.
Signed-off-by: Matt Madison <matt@madison.systems>
Since we can't get the target's serial number out of the CVM EEPROM when
using pre-signed binaries, look for the USB instance in the device path
as a way of cross-checking that a storage device matches the target we're
trying to flash.
Signed-off-by: Matt Madison <matt@madison.systems>
* Tweak the flashing script and XML file naming for the pre-signed case
as is done when the script runs the signing itself. Note that external
flash layouts are assumed not to require any tegrasign-type signing, which
should always be the case for R36.x and later.
* Make the script tolerant of not being able to fetch the target's serial
number from the CVM EEPROM. There doesn't appear to be a way to fetch
the CVM contents with pre-signed boot firmware.
With these changes, when using pre-signed binaries, only one target can
be flashed at a time from a given host.
Signed-off-by: Matt Madison <matt@madison.systems>
The odmsign functions do the same post-processing for RCM boot signing
as they do for main signing, so be sure to save and restore the main
files after the second call for signing the RCM boot blob.
Signed-off-by: Matt Madison <matt@madison.systems>
Now that we have patched the NVIDIA out-of-tree drivers to
be compatible with this version, we can update.
Signed-off-by: Matt Madison <matt@madison.systems>
With the repos hosted or mirrored on Github so we can more
easily manage patch additions for kernel versions beyond what
NVIDIA provides in a given Jetson Linux release.
Signed-off-by: Matt Madison <matt@madison.systems>
With L4T R36.4, the odmsign.func script now supports signing
the RCM boot blob used for the initrd-based flashing process.
While the initrd-flash script was updated to handle this, more
changes are needed to handle signing all binaries during the
build.
* Update the flash helper script to run signing on the RCM
boot blob when needed.
* Update the initrd-flash script to drop the extra helper
invocation for signing the RCM boot blob, since that is
now covered with the normal signing step for the internal
flash. And when pre-signed, initrd-flash just looks for
the RCM boot blob in the subdirectory now created during
build-time signing.
Signed-off-by: Matt Madison <matt@madison.systems>
We want to be able to pull in the module load configuration by default
but need to be careful to not enable the 'modeset' parameter on the
driver unless we won't be using x11 in the image. We can't check
distro features, so we make the modprobe conf RCONFLICT with x11, and
don't allow it to be pulled in if 'modeset' is enabled.
Also add variables to allow overriding the setting for the 'modeset'
and 'fbdev' parameters in a bbappend, local.conf file, or similar.
Signed-off-by: Kurt Kiefer <kekiefer@gmail.com>
The nvidia-drm kernel module and associated load config are needed
by libdrm but were only getting picked up by weston-init.
There are valid configurations (headless, egl-only) that need
libdrm but do not pull in weston, so the runtime recommendation
is moved to the libdrm bbappend.
Signed-off-by: Kurt Kiefer <kekiefer@gmail.com>
sinpi/cospi/sinpif/cospif are now defined in glibc as part of C23 extentions
but they conflict with CUDA declrations, therefore use the glibc definitions
when its provided by glibc
Fixes https://github.com/OE4T/meta-tegra/issues/1784
Signed-off-by: Khem Raj <raj.khem@gmail.com>
When flashing a board fused with PKC hash but no SBK, we should not
supply a SBK key as that would encrypt the flash contents which would
then not be able to be read by the board when booting, as the board
won't know the SBK key.
Signed-off-by: Andrew Bradford <andrew.bradford@konsulko.com>
With the R36 series, the nvidia-l4t-gstreamer package now comes off
the 'common' feed instead of the per-SoC feed, which affects multiple
recipes.
Add a new variable, L4T_DEB_IS_COMMON, to the include file we use for
the BSP recipes, to let them specify that the main package should come
from the common feed. Update the recipes for the binary-only gstreamer
plugins, nvdsseimeta, and the DLA compiler to use this new mechanism.
Signed-off-by: Matt Madison <matt@madison.systems>
Commit 9fa8701606dffc7153e7593f817e8ef8f56d335e:
[ nvidia-kernel-oot: fix a build issue ]
intended to pass ${STAGING_KERNEL_BUILDDIR} to make but mistakenly
passed ${STAGING_KERNEL_DIR} which still referring to kernel source but
not kernel builddir, fix that.
Signed-off-by: Ming Liu <liu.ming50@gmail.com>
The OOT R8168 driver does not get built for 6.10 kernels,
so add the R8169 driver (which also covers the 8168) to
to the kernel build, so we have a driver available for
the Ethernet interface on the Orin Nano dev kit carrier.
Signed-off-by: Matt Madison <matt@madison.systems>
Add a patch for the conftest script so it correctly detects one
of the 6.10 changes even when 'linux' appears in the directory path
during a build, as ours usually do.
Also renumber the patches so the order of application is clearer.
Signed-off-by: Matt Madison <matt@madison.systems>
With the Jetson minimal UEFI, no application is loaded from the
ESP partition by the bootloader, so allow for the possibility
that someone has removed the ESP from the storage layout.
Signed-off-by: Matt Madison <matt@madison.systems>
The AGX Orin platform supports a minimal UEFI for booting
off its internal eMMC. Add support for a TEGRA_UEFI_MINIMAL
variable, which when set to a boolean true value, builds
this minimal configuration instead of the normal UEFI.
See the "miniUEFI Support" section in the Jetson Linux developer
guide for more information about support, restrictions, etc.
Signed-off-by: Matt Madison <matt@madison.systems>
The ESP partition is no longer required for setting up the
boot control configuration, so we can remove that dependency.
We may also want to remove the esp.mount unit, or move that
to an optional fstab addition, at some point in the future.
Signed-off-by: Matt Madison <matt@madison.systems>
The tegraflash.py script takes a '--sparseupdate' option that causes
it to update only changed partitions in the SPI flash. Enable that
by default in the flash helper script, and add an --erase-spi option
to force full erasure of the SPI flash, in case that's needed.
Signed-off-by: Matt Madison <matt@madison.systems>
A build issue was observed as follows:
| .../kernel-source/Makefile:672: include/config/auto.conf: No such file or directory
| make[1]: *** [Makefile:226: __sub-make] Error 2
| make[1]: Leaving directory '.../kernel-source'
| make: *** [Makefile:63: hwpm] Error 2
it's not always reproduced, but occasionally happens when we add
patches to nvidia-kernel-oot.
The root cause of this problem is in nvidia-kernel-oot's Makefile, it
goes into ${KERNEL_SRC} instead of ${STAGING_KERNEL_DIR} to build,
which is wrong when building modules/dtbs, because there are no config
files generated in kernel source.
Let's change ${KERNEL_SRC} to ${STAGING_KERNEL_DIR}.
Signed-off-by: Ming Liu <liu.ming50@gmail.com>
- This matches the behavior in classes/image_types_cboot.bbclass
whereby the signed kernel image is copied over the top of the
original unsigned kernel image.
Signed-off-by: Chad McQuillen <chad.mcquillen@lexmark.com>
Signed-off-by: Matt Madison <matt@madison.systems>
Starting with the BOARDID and BOARDSKU variables.
For our purposes, they need to be fixed at build time,
and if they don't match the actual target machine, we'll
get difficult-to-diagnose boot failures.
Signed-off-by: Matt Madison <matt@madison.systems>
which we can use to prevent mis-flashing when the selected
machine configuration doesn't match the actual target hardware.
Signed-off-by: Matt Madison <matt@madison.systems>
Have the helper script cross-check the build-time board ID and SKU
settings, if available, against the actuals read from the CVM EEPROM,
and error out, rather than flashing the wrong boot firmware.
Signed-off-by: Matt Madison <matt@madison.systems>
The default chip SKU should now be getting passed via the
TEGRA_FLASHVAR_CHIP_SKU setting in the machine configuration,
so do not supply a probably-incorrect default in the helper
script. Instead, report an error and exit.
Signed-off-by: Matt Madison <matt@madison.systems>
* Move the mostly-common Orin NX settings to a new orin-nx.inc file
* Set TEGRA_FLASHVAR_CHIP_SKU for machines that differ from the
common default, derived from the chip SKU referenced in the
TEGRA_BUPGEN_SPECS setting
* Convert jetson-agx-orin-devkit-industrial config to using the
agx-orin.inc include file
Signed-off-by: Matt Madison <matt@madison.systems>
* HOSTTOOLS is now using lz4 instead of lz4c since:
https://git.openembedded.org/openembedded-core/commit/?id=fe167e082cbde1c6d186ecdda531abef610ac2ac
and tegra-uefi-capsules do_compile is failing with:
tegra-uefi-capsules/35.6.0/recipe-sysroot-native/usr/lib/python3.13/subprocess.py", line 1966, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'lz4c'
tegra-uefi-capsules/35.6.0/temp/run.do_compile.2229307:369 exit 1 from './doflash.sh'
* I've seen this only with scarthgap-l4t-r35.x branch modified to build
for walnascar (master), but it looks like the same is needed in master
branch (which has surprisingly to me older version 36.4.0 while
scarthgap-l4t-r35.x has 36.6.0, but I don't really use any nvidia
MACHINEs, only sometimes building world for them, so maybe it's
expected)
Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
* drop the one which says 'Inappropriate [Backport]'
as it's either Backport or Inappropriate, but cannot be both
Signed-off-by: Martin Jansa <martin.jansa@gmail.com>