325 Commits

Author SHA1 Message Date
Matt Madison
7608aaf47a tegra-common: fix typo in variable name
which is TEGRA_DCE_OVERLAY, singular, rather than
the plural.

Signed-off-by: Matt Madison <matt@madison.systems>
2025-05-01 07:21:15 -07:00
Matt Madison
d886d9a737 conf/machine: update Orin NX/Nano BPFDTB settings
The BPMP's device tree also needs updating to enable
'super' mode.

Signed-off-by: Matt Madison <matt@madison.systems>
2025-04-19 04:26:13 -07:00
Matt Madison
6a9475bc9d conf/machine: update Orin NX and Nano configs for R36.4.3
with the new "super" device trees and nvpmodel configuration
files.

Signed-off-by: Matt Madison <matt@madison.systems>
2025-04-19 04:26:13 -07:00
Matt Madison
2bbc15ae8b p3737-0000-p3701-0004: fix KERNEL_DEVICETREE setting
which missed getting updated for the OOT device trees
that were switched to in L4T R36.x.

Signed-off-by: Matt Madison <matt@madison.systems>
2025-02-21 03:25:04 -08:00
Austin Schuh
0c07ff6ac8 Support zstd compressed tegraflash images
zstd is a lot faster when compressing and decompressing, which helps
with iteration speed.

Use the CONVERSIONTYPES machinery builtin rather than re-implementing it
ourselves here.

Signed-off-by: Austin Schuh <austin.linux@gmail.com>
Signed-off-by: Matt Madison <matt@madison.systems>
2025-02-08 05:41:00 -08:00
Austin Schuh
0a2689bde3 conf/machine: add configuration for Orin Nano SKU 0003
Note, this is different than the SOM in the orin nano developer kit.

Signed-off-by: Austin Schuh <austin.linux@gmail.com>
2025-01-22 06:29:28 -08:00
Matt Madison
30217c6fc3 meta: switch from virtual/XXX-gcc to virtual/cross-XXX
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>
2025-01-22 06:05:38 -08:00
Matt Madison
2b18e164e9 tegra-common: add TEGRA_UEFI_MINIMAL support
- Default to off
- Add the needed boot control overlay when enabled

Signed-off-by: Matt Madison <matt@madison.systems>
2024-11-11 07:06:40 -08:00
Matt Madison
4910dd248b tegra-common: add TEGRA_FLASH_CHECK variables
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>
2024-11-10 06:16:36 -08:00
Matt Madison
de2553df58 conf/machine: refactor and add CHIP_SKU defaults
* 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>
2024-11-10 06:16:36 -08:00
Matt Madison
20da6a250b tegra-common: add CHIP_SKU to TEGRA_FLASHVARS
so we can add a default setting for this variable into
machine configuration files.

Signed-off-by: Matt Madison <matt@madison.systems>
2024-11-10 06:16:36 -08:00
Matt Madison
009e202587 tegra-common: fix TEGRA_FLASHVARS setting
* Drop obsolete (t19x-specific) entries
* Add missing RAMCODE entry

Signed-off-by: Matt Madison <matt@madison.systems>
2024-11-10 06:16:36 -08:00
Kurt Kiefer
944504cd13 linux: linux-yocto: add rtw88 support
This change removes rtl8822 from nvidia-kernel-oot to switch to the
driver and firmware from linux-yocto and linux firmware. It includes
updates to tegra-wifi to pull in the needed packages to the image.

Signed-off-by: Kurt Kiefer <kekiefer@gmail.com>
2024-10-29 12:03:41 -07:00
Matt Madison
f541445b6f conf/machine: remove net.ifnames=0 from KERNEL_ARGS
to align with the defaults in L4T R36.4.0.

Signed-off-by: Matt Madison <matt@madison.systems>
2024-10-26 08:15:33 -07:00
Matt Madison
dcfe4a5bd8 cuda: update to 12.6 for JetPack 6.1
Signed-off-by: Matt Madison <matt@madison.systems>
2024-10-26 08:15:33 -07:00
Ilies CHERGUI
7f01265d37 optee: update recipes for L4T R36.4.0
- base OP-TEE version now 4.2
- refresh makefile patch
- add openssl as dependency to optee-test

Signed-off-by: Ilies CHERGUI <ichergui@nvidia.com>
2024-10-26 08:15:33 -07:00
Ilies CHERGUI
aa7546af8b meta: update recipes R36.3.0/JetPack 6 -> R36.4.0/JetPack 6.1
Signed-off-by: Ilies CHERGUI <ichergui@nvidia.com>
Signed-off-by: Matt Madison <matt@madison.systems>
2024-10-26 08:15:33 -07:00
Kurt Kiefer
411b175fd4 nvidia-kernel-oot: deploy virtual/dtb in separate recipe
Custom boards wishing to provide their own devicetree sources will
want to be a provider of virtual/dtb. If this happens, then other
providers of virtual/dtb will not be built. That's a problem, because
the nvidia-kernel-oot recipe also contains device drivers and overlay
devicetree sources that are required.

To solve this, the deployment step of nvidia-kernel-oot is broken
out into a special provider for virtual/dtb. That way, it can easily
be skipped by creating a new virtual/dtb provider and the rest of
nvidia-kernel-oot can still be built and used.

Signed-off-by: Kurt Kiefer <kekiefer@gmail.com>
2024-07-12 03:03:29 -07:00
Timo Schuster
2c972e80d9 p3737-0000-p3701-0005: set correct TEGRA_FLASHVARs, KERNEL_DEVICETREE and EMMC_BCT
Signed-off-by: Timo Schuster <timo.schuster@leica-microsystems.com>
2024-06-29 07:06:43 -07:00
Matt Madison
cab25debe1 nvidia-kernel-oot: mark replacements for in-tree drivers
A number of the out-of-tree modules are named identically to
modules built in-tree, and are intended to replace the in-tree
copies. Mark those with RREPLACES/RCONFLICTS settings when
packaging the modules.

Also add PREFERRED_RPROVIDER settings for those packages,
to point to the out-of-tree copies, to the tegra-common machine
configuration include file.

Signed-off-by: Matt Madison <matt@madison.systems>
2024-06-09 05:36:59 -07:00
Matt Madison
e9f872043b tegra-helper-scripts: allow for custom TBCDTB_FILE definition
* Add a default setting for TEGRA_FLASHVAR_TBCDTB_FILE that resolves
  to "@DTBFILE@"
* Update the flash helper to:
    - replace @DTBFILE@ with the name of the device tree file in that variable
    - remove the TBCDTB-FILE replacement in the storage layout, which isn't needed
    - simplify p3701 flashvars handling, similar to what's there for p3767

Signed-off-by: Matt Madison <matt@madison.systems>
2024-06-08 08:06:33 -07:00
Matt Madison
c0660474e9 meta: remove BOOT_PARTITIONS_ON_EMMC references
The spillover of some boot firmware partitions into
the eMMC was specific to some of the Xavier models,
so we can drop handling of that case.

Signed-off-by: Matt Madison <matt@madison.systems>
2024-05-31 09:57:00 -07:00
Matt Madison
35d254912c jetson-orin-nano-devkit: drop TEGRA_SPIFLASH_BOOT setting
which is no longer needed.

Signed-off-by: Matt Madison <matt@madison.systems>
2024-05-31 09:57:00 -07:00
Matt Madison
fd15e19dc5 conf/machine: drop PREFERRED_VERSION_weston from tegra-common
Signed-off-by: Matt Madison <matt@madison.systems>
2024-05-31 09:57:00 -07:00
Matt Madison
a758e632f7 agx-orin: update TEGRA_PLUGIN_MANAGER_OVERLAYS for R36.3.0
Signed-off-by: Matt Madison <matt@madison.systems>
2024-05-31 09:57:00 -07:00
Matt Madison
f8633daf75 conf/machine: add missing TEGRA_BOARDSKU settings
Signed-off-by: Matt Madison <matt@madison.systems>
2024-05-31 09:57:00 -07:00
Pavel Löbl
3e76d865a5 p3768-0000-p3767-0001: set correct SKU for Orin NX 8Gb
Set SKU to 0001 as otherwise 0000 is used from included
16Gb Orin NX variant config.

Signed-off-by: Pavel Löbl <pavel@loebl.cz>
2024-05-31 09:57:00 -07:00
Matt Madison
34408864ce Revert "tegra-common: set OLDEST_KERNEL so that glibc will restrict features"
This reverts commit 1eec81c883.

With L4T R36.x, we now have a 5.15 kernel as a base, so we no
longer need to do this.

Signed-off-by: Matt Madison <matt@madison.systems>
2024-05-30 12:13:39 -07:00
Matt Madison
eb2d73cdf7 conf/machine: updates for L4T R36.3.0
Signed-off-by: Matt Madison <matt@madison.systems>
2024-05-30 12:13:39 -07:00
Matt Madison
6b045aac99 recipes-kernel: update kernel recipe to linux-jammy-nvidia-tegra 5.15
Signed-off-by: Matt Madison <matt@madison.systems>
2024-05-30 12:13:39 -07:00
Matt Madison
617aa8c815 meta: update recipes R35.5.0/JetPack 5 -> R36.3.0/JetPack 6
Signed-off-by: Matt Madison <matt@madison.systems>
2024-05-30 12:13:39 -07:00
Matt Madison
26f6e9401d meta: remove all t194/xavier references
in preparation for the R36.x update, which drops support
for those platforms.

Signed-off-by: Matt Madison <matt@madison.systems>
2024-05-30 12:13:38 -07:00
Igor Opaniuk
669ccd241e tegra-common: drop bup-payload image_type
Drop bup-payload image type from TEGRA_INITRAMFS_FSTYPES, as it's
planned to generate BUP image inside UEFI capsule generation
recipes.

Signed-off-by: Igor Opaniuk <igor.opaniuk@foundries.io>
2024-05-29 12:49:04 -07:00
Matt Madison
9e64510f86 p3768-0000-p3767-0001: fix BPFDTB_FILE setting
The 0001 board SKU has its own version of that file.

Signed-off-by: Matt Madison <matt@madison.systems>
2024-04-23 08:31:44 -07:00
Matt Madison
526ad46b00 conf/machine: Refactor AGX Orin configs, update TEGRA_BUPGEN_SPECS
Starting with R35.5.0, the BUP generator needs the chip SKU passed
to it for generating bootloader updates for Orin modules.  Update all
of the Orin configs to reflect that.

Also refactor the AGX Orin configs so we have a separate machine
definition for each of the board SKUs, similar to what's there for
the Orin NX/Nano configs.

Signed-off-by: Matt Madison <matt@madison.systems>
2024-04-18 11:20:07 -07:00
Matt Madison
7cf06f8ae4 conf/machine: fix boardsku settings for Orin Nano modules
8GB module: board SKU 0003 or 0005
4GB module: board SKU 0004

Signed-off-by: Matt Madison <matt@madison.systems>
2024-04-17 05:35:39 -07:00
Matt Madison
d4dfb31b34 tegra-common: enable UBOOT_EXTLINUX by default
This aligns with the stock L4T/JetPack configuration. Note that
the Android-style separate kernel/kernel-dtb partitions are also
present by default, and will be used by the L4TLauncher UEFI app
to load the kernel and DTB if the extlinux.conf method fails.

Signed-off-by: Matt Madison <matt@madison.systems>
2024-04-14 07:46:08 -07:00
Matt Madison
b077b5b3eb conf/machine: trim entries from TEGRA_BUPGEN_SPECS
Unlike stock L4T, which has to handle multiple BOARDSKUs for each
module with its prebuilt binary distribution, we can reduce the
number of BUP entries we build per machine, since we have to target
specific BOARDSKUs at build time.

Orin Nano configurations should need to handle only BOARDSKUs 0003
(8GiB) and 0004 (4GiB).

The p3768-0000-p3767-0000 configuration was already trimmed to cover
just the 0000 (16GiB) SKU, so the p3509-a02-p3767-0000 configuration
is updated to match that, since it's just the carrier that's different.

Signed-off-by: Matt Madison <matt@madison.systems>
2024-04-10 04:28:35 -07:00
Matt Madison
d95c73912e conf/machine: switch P3767 machines to use t234-specific storage layouts
* Use flash_l4t_t234_nvme.xml as the default layout
* Mark it as having a _rootfs_ab varian

Also, the BUP generation specs for p3768-0000-p3767-0000
are cleaned up to include just the 0000 board SKU, since we
have separate machine configs for the other SKUs.

Signed-off-by: Matt Madison <matt@madison.systems>
2024-03-17 07:40:13 -07:00
Matt Madison
4b1368a184 jetson-agx-orin-devkit: rework PMIC config selection
R35.5.0 introduces different logic for selecting the PMIC config,
based on board SKU.  Update the machine config to expect a sed
rewrite in the flash variable, and update the flash helper to
perform that rewrite.

Signed-off-by: Matt Madison <matt@madison.systems>
2024-03-17 07:40:13 -07:00
Matt Madison
df0835244e p3768-0000-p3767-0004: set TEGRA_FLASHVAR_RAMCODE
with R35.5.0, RAMCODE needs to be set for this SKU.

Signed-off-by: Matt Madison <matt@madison.systems>
2024-03-17 07:40:13 -07:00
Matt Madison
dd789beb6e jetson-orin-nano-devkit: set TNSPEC_BOOTDEV_DEFAULT
to point to the SDcard, which is the proper default for
the Orin Nano dev kit.

Signed-off-by: Matt Madison <matt@madison.systems>
2024-03-14 09:44:57 -07:00
Kurt Kiefer
1eec81c883 tegra-common: set OLDEST_KERNEL so that glibc will restrict features
As of the nanbield release, OLDEST_KERNEL is set in meta.conf to
version 5.15. This is newer than the version available to us for the
tegra machines in the Jetpack 5 releases. As such, some components
that use this variable (such as glibc) will be build assuming support
for kernel features we don't have.

Override the OLDEST_KERNEL to 5.10, to match the linux-tegra kernel.

Signed-off-by: Kurt Kiefer <kekiefer@gmail.com>
2024-01-06 05:02:53 -08:00
Dan Walkes
d421bf5cfe edk-firmware-tegra: Support A/B redundancy
When USE_REDUNDANT_FLASH_LAYOUT is specified, add the
.dtbo file to the build which enables RootfsA/B suport
in UEFI based on discussion at [1].

This content of the variable is set based on the corresponding
logic found in nvidia's flash.sh.  The usage for this variable
can be found at [2].

1: https://github.com/OE4T/meta-tegra/discussions/1182#discussioncomment-5067058
2: 71fc2f6de4/Silicon/NVIDIA/Application/L4TLauncher/L4TRootfsValidation.c (L464-L466)

Signed-off-by: Dan Walkes <danwalkes@trellis-logic.com>
2023-12-06 05:36:37 -08:00
Dan Walkes
32fad08d3f conf/machine: Support redundant flash layouts
NVIDIA provides redundant flash layouts with A/B support
for most platforms. This commit adds a parameter
USE_REDUNDANT_FLASH_LAYOUT which uses them instead of the
default non-redundant.

* Add a variable USE_REDUNDANT_FLASH_LAYOUT to control whether
to use the default flash layout or the redundant flash layout
for both internal and external layouts.  The weak override var
USE_REDUNDANT_FLASH_LAYOUT_DEFAULT can be set at the distro
layer to override the default (off) state if desired.
* Build a PARTITION_LAYOUT_TEMPLATE_REDUNDANT variable
which appends the rootfs_ab string to the partition layout file
for all cases other than when PARTITION_LAYOUT_TEMPLATE_DEFAULT_SUPPORTS_REDUNDANT
is set, where PARTITION_LAYOUT_TEMPLATE_DEFAULT_SUPPORTS_REDUNDANT
is set for nano platforms using flash_t234_qspi.xml which already
contains redundant partitions.
* Build a PARTITION_LAYOUT_EXTERNAL_REDUNDANT variable which
appends the rootfs_ab string to the PARTITION_LAYOUT_EXTERNAL file
for all platforms with the exception of orin nano platforms which
 use "flash_l4t_external.xml" by default.
* Add a ROOTFSPART_SIZE_DEFAULT var which sets the default rootfs
partition size for the MACHINE when not using dual redundancy.
* Add a ROOTFSPART_SIZE_REDUNDANT var which divides the
ROOTFSPART_SIZE_DEFAULT by two when USE_REDUNDANT_FLASH_LAYOUT
is specified.

After this commit:
* Custom MACHINE types which need to support multiple flash
layouts for redundancy can name their layouts to match the
NVIDIA syntax, ending with _rootfs_ab, define
PARTITION_LAYOUT_EXTERNAL_DEFAULT as well as
PARTITION_LAYOUT_TEMPLATE_DEAFULT and the
USE_REDUNDANT_FLASH_LAYOUT will function as expected for
these platforms as well to select the appropriate xml files.
* Custom MACHINEs which don't need to support multiple flash
layouts can just define PARTITION_LAYOUT_EXTERNAL and/or
PARTITION_LAYOUT_TEMPLATE as done previously to override
the default assignments for these variables in tegra-common.inc
* Custom MACHINEs which need to specify a custom partition size
can either specify ROOTFSPART_SIZE_DEFAULT to let the size be
set based on USE_REDUNDANT_FLASH_LAYOUT, or set ROOTFSPART_SIZE
to force to a specific size regardless of USE_REDUNDANT_FLASH_LAYOUT

See also https://github.com/OE4T/meta-tegra/wiki/Rendundant-Rootfs-A-B-Partition-Support

Signed-off-by: Dan Walkes <danwalkes@trellis-logic.com>
2023-12-06 05:36:37 -08:00
Chad McQuillen
c4a0fa60e8 meta: refactor uefi-signing
- Encapsulate knowledge of local signing by moving most TEGRA_UEFI_DB_*
  references to tegra-uefi-signing.bbclass.

- All recipes just call the tegra_uefi_* signing functions.

- Recipes that require uefi signing inherit ${TEGRA_UEFI_SIGNING_CLASS}
  which defaults to tegra-uefi-signing.bbclass.  Users can assign
  their own class to override the default uefi signing function
  behavior (to use a signing server, as an example).

- Use weak default assignment for TEGRA_UEFI_SIGNING_CLASS and
  TEGRA_UEFI_USE_SIGNED_FILES in the event they are not defined.

Signed-off-by: Chad McQuillen <chad.mcquillen@lexmark.com>
2023-10-15 04:13:57 -07:00
Chad McQuillen
71ad71748b meta: move definition of EMMC_BCTS
from image_types_tegra.bbclass to tegra-common.inc.  This enables
a future change in the digsigserver signing class to pass this
value in the MANIFEST to the signing server without having to
inherit from image_types_tegra to get this single value.  EMMC_BCT
and EMMC_BCT_OVERRIDES are already defined in machine configuration files
so moving this here for consistency.

Signed-off-by: Chad McQuillen <chad.mcquillen@lexmark.com>
Signed-off-by: Matt Madison <matt@madison.systems>
2023-10-14 04:39:25 -07:00
Matt Madison
67db4bcc28 conf/machine: move tegra-flashvars settings to machine config files
To prepare for removing the static flashvars files from
the layer and instead generate them from the variable settings
in the config files.

The variables are named the same as in the old flashvars
files, prefixed with TEGRA_FLASHVAR_.

The TEGRA_FLASHVARS variable is in the tegra-common include
file and is the aggregated set of variable names (minus the
prefix) for all supported platforms.  Only those variables
that have settings in the current machine config will get
used.

Signed-off-by: Matt Madison <matt@madison.systems>
2023-10-07 03:39:50 -07:00
Matt Madison
f958e7c3eb conf/machine: remove fuselevel setting from TEGRA_SIGNING_ENV
in the tegra-common include file.

Signed-off-by: Matt Madison <matt@madison.systems>
2023-10-07 03:39:50 -07:00
Matt Madison
f15840bef0 conf/machine: add TEGRA_BOOT_FIRMWARE_FILES variable
to the per-SoC machine include files, in preparation
for moving the separate lists out of the bootfiles recipe
and the image_types_tegra class.

Signed-off-by: Matt Madison <matt@madison.systems>
2023-10-07 03:39:50 -07:00