Commit Graph

154 Commits

Author SHA1 Message Date
Matt Madison
77550030b3 meta: update to L4T R32.5.2
Recipes that fetch from the L4T deb package feed
are still 32.5.1, but recipes that use the L4T
BSP tarball are updated.

Signed-off-by: Matt Madison <matt@madison.systems>
2021-07-15 09:07:43 -07:00
Matt Madison
684f2a3ece image_types_tegra.bbclass: make cbo.dtb optional
to align with what stock L4T does for t194 platforms.

Signed-off-by: Matt Madison <matt@madison.systems>
2021-06-09 04:58:47 -07:00
Matt Madison
361d1f3b4b classes: add cboot-extlinux-config.bbclass
Adapted from the bbclass in OE-Core for u-boot, with modifications
for cboot's idiosyncratic and rather crash-prone interpretation of
the extlinux.conf file format.

Signed-off-by: Matt Madison <matt@madison.systems>
2021-06-09 04:58:47 -07:00
Matt Madison
fcb71c38d7 image_types_tegra.bbclass: rewrite FBNAME in t186 flash config
to 'fusebypass'. It isn't actually used, so despite the fact
that the rewrite  has been around in flash.sh for several L4T
releases, I never noticed.

Signed-off-by: Matt Madison <matt@madison.systems>
2021-05-03 08:30:08 -07:00
Matt Madison
de5a377603 image_types_tegra.bbclass: clean up tegraflash pkg contents after in-build signing
Signed-off-by: Matt Madison <matt@madison.systems>
2021-04-27 06:01:05 -07:00
Matt Madison
e715295695 image_types_tegra.bbclass: add coreutils-native dependency
for tegraflash image generation, since we need the 'cksum' utility
when doing in-build signing.

Signed-off-by: Matt Madison <matt@madison.systems>
2021-04-27 06:01:04 -07:00
Matt Madison
9c46d63237 image_types_tegra.bbclass: copy all tools when signing
The selective copying of tools omits some files that are needed
during the signing steps of BUP generation, causing script failures
when TEGRA_SIGNING_ARGS is non-null, so just copy all of the tools
into the working area for BUP generation.

Signed-off-by: Matt Madison <matt@madison.systems>
2021-04-26 08:30:37 -07:00
Matt Madison
60ab1fbd32 l4t_deb_pkgfeed.bbclass: add support for fetching x86-64 packages
Signed-off-by: Matt Madison <matt@madison.systems>
2021-04-24 04:49:21 -07:00
Kurt Kiefer
c63690fe6f tegra-binaries: split packaging of bmp.blob into new bootlogo package
The image packagers now depend on virtual/bootlogo to supply a machine-
specific boot logo to be packaged in the different flash tools.

This initial commit creates a bootlogo-prebuilt recipe wich provides
virtual/bootlogo by simply copying over the bmp.blob from tegra-binaries
into the deployment directory.

Signed-off-by: Kurt Kiefer <kurt.kiefer@arthrex.com>
2021-04-03 08:12:52 -07:00
Matt Madison
2724473eb7 image_types_tegra.bbclass: add support for SDcard booting on AGX Xavier
providing both doflash.sh and dosdcard.sh scripts in the tegraflash
bundle, splitting out the kernel/DTB/rootfs partitions onto the
SDcard.

Signed-off-by: Matt Madison <matt@madison.systems>
2021-03-28 08:42:08 -07:00
Matt Madison
61ef0dce5e image_types_tegra.bbclass: add --no-flash to burnfuses.sh script
When doing a fuse burn no flashing happens, so prevent the helper
script from attempting to do anything with the rootfs/data partitions
(if they are even present).

Signed-off-by: Matt Madison <matt@madison.systems>
2021-03-04 12:51:24 -08:00
Matt Madison
e975c8e04c l4t_deb_pkgfeed: rework path mapping logic
- extract path parts directly from the downloaded package
  name by default, with no digit stripping
- allow for per-package override of the "group" part
  via L4T_DEB_GROUP[<name>]

The VPI packages (and possibly others in the future) don't
use a uniform path for VPI's main and -dev packages, unlike
other JetPack components we've seen before. This change fixes
downloads for those packages.

Signed-off-by: Matt Madison <matt@madison.systems>
2021-03-04 07:53:18 -08:00
Matt Madison
d8b89943e0 l4t_bsp.bbclass: handle URL changes for L4T R32.5.1
and retain R32.5.0 URLs for source-based L4T recipes.

Signed-off-by: Matt Madison <matt@madison.systems>
2021-02-28 07:49:42 -08:00
Matt Madison
d4c9046bd4 image_types_tegra.bbclass: update INITRD_IMAGE default
to automatically set the needed dependency on the initrd image
based on the INITRAMFS_IMAGE_BUNDLE setting, for cboot platforms,
so users don't have to remember to set it manually.

Signed-off-by: Matt Madison <matt@madison.systems>
2021-02-23 06:24:15 -08:00
Matt Madison
9a09af78af image_types_tegra.bbclass: handle kernel image w/no initramfs on cboot platforms
Signed-off-by: Matt Madison <matt@madison.systems>
2021-02-23 06:24:15 -08:00
Matt Madison
4deed05acc l4t_deb_pkgfeed.bbclass: one more fix for the tar/zstd issue
I missed this in prior testing somehow, but the PATH= being
prepended to the command string in the bitbake fetcher's
unpack method isn't actually doing what we need it to - the
environment only changes for the first command in the string
of commands &&ed together, so the tar wrapper script wasn't
actually getting used.

So yet another workaround here, to set PATH in the environment
from do_unpack().

Signed-off-by: Matt Madison <matt@madison.systems>
2021-02-13 13:37:51 -08:00
Matt Madison
e2f7368168 l4t_deb_pkgfeed.bbclass: restrict EXTRANATIVEPATH addition
to just the do_unpack task.

Signed-off-by: Matt Madison <matt@madison.systems>
2021-02-08 08:19:09 -08:00
Matt Madison
0b2c551d54 l4t_deb_pkgfeed.bbclass: add tar zstd workaround
Some L4T/JetPack deb packages now use zstd compression,
which is not automatically recognized by GNU tar versions
older than 1.31. Some host OSes (e.g. Ubuntu 18.04) use
an older version, so insert a wrapper to add options for
handling zstd decompression to accommodate.

Signed-off-by: Matt Madison <matt@madison.systems>
2021-02-08 06:39:22 -08:00
Matt Madison
517fbf1736 image_types_tegra.bbclass: update flash config functions for t186/t194
to defer the substitution of the bootloader and kernel dtb file names
to the helper script. This is needed now that the two dtb's are
signed/encrypted differently.

Signed-off-by: Matt Madison <matt@madison.systems>
2021-02-04 07:20:27 -08:00
Matt Madison
ef1502946c l4t_deb_pkgfeed.bbclass: add zstd-native dependency
Some of the L4T deb packages use zstd compression on the
embedded tarballs, so make sure it's available during the
do_unpack task.

Signed-off-by: Matt Madison <matt@madison.systems>
2021-02-03 05:43:24 -08:00
Matt Madison
9380b22683 meta: update L4T variable settings for R32.5.0
Signed-off-by: Edison Fernandez <edison.fernandez@ridgerun.com>
Signed-off-by: Matt Madison <matt@madison.systems>
2021-02-03 05:43:24 -08:00
Edison Fernandez
aba16ca1b8 tegra-flashtools-native: updates for R32.5.0
* Drop obsolete patch
* Update l4t_bup_gen.func patch and improve its handling of
  the different Nano SKUs by using the board ID and SKU numbers,
  rather than hard-coding the machine names,  and to allow for
  building a BUP when no target machines have QSPI flash.

Signed-off-by: Matt Madison <matt@madison.systems>
2021-02-03 05:43:24 -08:00
Edison Fernandez
b2f570b09d tegra-binaries: update recipes to version 32.5.0
Signed-off-by: Edison Fernandez <edison.fernandez@ridgerun.com>
Signed-off-by: Matt Madison <matt@madison.systems>
2021-02-03 05:43:24 -08:00
Damien LEFEVRE
27a1481fe0 image_types_tegra: add TEGRA_BUPGEN_STRIP_IMG_NAMES support
Simplify support for partition layouts that initialize
partitions beyond the rootfs (APP) and DATA partitions
by adding TEGRA_BUPGEN_STRIP_IMG_NAMES, which can be
set to a space-separated list of  filenames used for
the additional partitions.

This prevents the BUP generator's layout parser from
failing when the image files for the additional partitions
are not present.
2021-01-23 08:44:12 -08:00
Matt Madison
69c9a62523 l4t_deb_pkgfeed.bbclass: exclude L4T_DEB_SOCNAME from dependencies
The function for computing the SRC_URI dereferences that
variable, leading to task signature mismatches between SoCs
even when the actual URI is a common one.

There are only a couple of SoC-specific URIs we use, and
other parts of those URIs vary by SoC, so just exclude
the SOCNAME part of the URI from consideration completely.

Signed-off-by: Matt Madison <matt@madison.systems>
2020-12-15 10:57:10 -08:00
Matt Madison
b6e1f424b8 meta: update build-time dependencies for redundant boot
With the necessary rollback config files now being installed
via a new recipe, update the build-time dependencies to use
it.

Signed-off-by: Matt Madison <matt@madison.systems>
2020-11-30 14:40:19 -08:00
Matt Madison
9ef40c7fa0 cuda.bbclass: add compatibility with ccache
Signed-off-by: Matt Madison <matt@madison.systems>
2020-11-26 08:32:46 -08:00
Matt Madison
3ba3e549a3 image_types_tegra.bbclass: fix bootargs setting for tegra194
to have the KERNEL_ARGS settings replace the /chosen/bootargs
property in the device tree, rather than append to it. This
was done for the other platforms, and for BUP payloads, but
was missed for Xavier tegraflash packaging.

Signed-off-by: Matt Madison <matt@madison.systems>
2020-11-25 05:56:41 -08:00
Matt Madison
8978c333a9 image_types_tegra.bbclass: add burnfuses scripts for tegra194/210
in tegraflash packages, similar to what is already present
for tegra186 SoCs.

By default, none of the platforms includes a fuse configuration;
users that create a machine configuration that enable secure
boot should add a bbappend to tegra-bootfiles that adds a fuse
configuration file to the SRC_URI and sets ODMFUSE_FILE to
get it included, along with the burnfuses script, in the
tegraflash package. The fuse configuration should be created
using the L4T `odmfuse.sh` script with the `--no-burn` option.

Signed-off-by: Matt Madison <matt@madison.systems>
2020-11-07 05:55:55 -08:00
Matt Madison
6554e8b65e meta: update from R32.4.3 -> R32.4.4/JetPack 4.4.1
* URL paths for L4T packages changed again.
* The only JetPack package that changed is tegra-mmapi;
  dropped a now-obsolete patch.
* Merged latest NVIDIA changes into the kernel repo via
  subtree merge, including additions for Nano-2GB devkit
  (which is not yet supported in the layer).
* cboot recipe left at 32.4.3 - no 32.4.4 sources available (yet).
* Slight modifications needed to machine configurations -
  EMMC settings file for Nanos has been renamed.
* Patched l4t_bup_gen.func for tegra210 platforms to
  skip jetson-nano-qspi-sd entries in the BUP when building
  for the other tegra210 machines, since the script
  now exits with an error when it can't find a file for
  a BUP entry.
* Kernel recipe now points at a new branch, as there
  were issues merging in the git subtree updates for
  the NVIDIA-specific repos.

**Note** that TX1/Nano flash layout files have changed
 in this release - the 'id=' field in the partition
 entries are now used to set the partition number
 in the GPT. Custom flash layout files should be
 changed accordingly.

Signed-off-by: Matt Madison <matt@madison.systems>
2020-10-26 10:21:08 -07:00
Matt Madison
7ad412d7be image_types_tegra.bbclass: fix burnfuses.sh command for tegra186
The --burnfuses option was removed from tegra186-flash-helper.sh
a couple of releases back; we can use -c "burnfuses <file>" instead.

Signed-off-by: Matt Madison <matt@madison.systems>
2020-10-22 07:24:52 -07:00
Matt Madison
f25c7bf676 cuda.bbclass, cuda-environment: make nvcc easier to find
Prepend our copy of the CUDA toolkit's bin directory to PATH,
rather than appending, so that build systems that search for
nvcc find our copy first for cross builds.

And for CMake, export CUDACXX to point to our copy of nvcc;
CMake will use that environment variable before looking in
the PATH.

Signed-off-by: Matt Madison <matt@madison.systems>
2020-10-13 05:19:04 -07:00
Matt Madison
0bd00bd4e7 cuda.bbclass, cuda-environment: fix CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES
Fix the quoting used in the cmake toolchain files so that variable references
are interpreted by CMake rather than bitbake, and so that the resultant
value is a list rather than a single space-separated string.

Signed-off-by: Matt Madison <matt@madison.systems>
2020-10-13 05:19:04 -07:00
Dan Walkes
025838d593 Support csv file reference removal globs
The list of files in the csf for v4l-utils does not match the list
in /etc/nvidia-container-runtime/host-files-for-container.d/l4t.csv
on a Jetpack 4.4 based stock NVIDIA image.  This is problematic
for the libv4l2rds libraries when attempting to install v4l-utils
in a container.  The install works fine if the container is running
on an NVIDIA image, but when running on OE4T you see an error
message:
```
unable to make backup link of './usr/lib/aarch64-linux-gnu/libv4l2rds.so.0.0.0' before installing new version: Invalid cross-device link
```

To avoid this, add support for removing container runtime files
in the container-runtime-csv class using a glob pattern, and
use this pattern to avoid placing libv4l2rds in the container
runtime.
2020-09-29 09:19:55 -07:00
Matt Madison
99e24a198e meta: set HOMEPAGE for all L4T and JetPack packages
to point to the relevant page on the NVIDIA developer website,
which for most packages is either the L4T page or the JetPack
page.

Signed-off-by: Matt Madison <matt@madison.systems>
2020-09-03 06:39:40 -07:00
Matt Madison
241e236548 cuda.bbclass, tegra-libraries: move nvgpu kernel module dependency
The dependency on the GPU driver is really in the libraries
provided by the tegra-libraries package, since it applies to
the libEGL_nvidia library as well as the libcuda library.
So move the RRECOMMENDS on the kernel driver to that package,
and drop it from cuda.bbclass.

Signed-off-by: Matt Madison <matt@madison.systems>
2020-09-03 06:02:05 -07:00
Matt Madison
5777561e6b cuda.bbclass: add support for meson builds
Note that a patch is required for meson 0.55 to
fix an issue with identifying CUDA compiler when
cross-building (see #409).

Signed-off-by: Matt Madison <matt@madison.systems>
2020-09-02 09:52:37 -07:00
Matt Madison
0eb5085402 meta: remove cuda-toolkit from target-side dependencies for CUDA builds
cuda-toolkit includes the compiler and command-line tools, which
should *not* be required on the target; only the cuda-libraries
packages should be needed for building and running CUDA apps.

However, there are assumptions in the CUDA packages about the way
the CUDA SDK is normally packaged - with host and target files
co-located.  In particular, there are host-side header files in
the cuda-nvcc package that need to be available in the target's
include tree so they can be found without explicitly including
the host-side include tree (something that isn't easy to do
when include paths get discovered via pkg-config).

To resolve this, the cuda-nvcc-headers recipe is added, which
packages just the header files from cuda-nvcc.  Appropriate
dependencies are added to ensure that those headers are
available when needed.

Also included here are some variable updates to add in
the host-side includes, and some updates to the SDK
environment, particularly for CMake support, so that
it works properly with the new structure.

Signed-off-by: Matt Madison <matt@madison.systems>
2020-07-27 04:12:06 -07:00
Matt Madison
2b679e9b77 meta: use tegra-cmake-overrides for CUDA builds
- update the settings in cuda.bbclass
- update the toolchain environment for SDK builds

Signed-off-by: Matt Madison <matt@madison.systems>
2020-07-27 04:12:06 -07:00
Matt Madison
104066f3ef meta: update recipes from 32.4.2/4.4DP to 32.4.3/4.4GA
- Replaced l4t_bup_gen.func patch with a new, smaller
  one to fix a typo
- ALSA configs for Xavier-NX have changed, HDA now works
  without having to hack the config file
- BSP sources path back to 'sources' from 'Sources'

Signed-off-by: Matt Madison <matt@madison.systems>
2020-07-12 05:46:54 -07:00
Matt Madison
4f55bae30e image_types_tegra.bbclass: add BUP contents check after generation
The BUP_generator.py script has a --check option for sanity-checking
that partitions that take a TNSPEC are present for each TNSPEC
mentioned in the paylod.  Add that check after generating the
payload.

Signed-off-by: Matt Madison <matt@madison.systems>
2020-07-06 12:41:33 -07:00
Matt Madison
4c77b00dc8 image_types_tegra.bbclass: add data partition support
Provide a simpler mechanism for populating a data partition
by adding the variables IMAGE_TEGRAFLASH_DATA and DATAFILE.
When set, the data partition's filesystem image will be copied
from ${IMAGE_TEGRAFLASH_DATA} to ${DATAFILE} in the tegraflash
package.

This also uses the new --datafile option in the helper scripts
for handling the additional content appropriately.

Also ran an untabify pass over the entire bbclass, to clean
up some tabs that have wandered in from past commits.

Signed-off-by: Matt Madison <matt@madison.systems>
2020-07-05 05:23:30 -07:00
Matt Madison
bfd031dc37 image_types_tegra.bbclass: fix typo in variable name
Signed-off-by: Matt Madison <matt@madison.systems>
2020-06-21 08:43:51 -07:00
Matt Madison
1ddbdb7bbf cuda.bbclass, cuda-environment: add some environment variables
for better compatibility with the old FindCUDA module.

Signed-off-by: Matt Madison <matt@madison.systems>
2020-06-03 09:49:57 -07:00
Matt Madison
1c889ecebd image_types_tegra.bbclass: fix typo in variable name
Signed-off-by: Matt Madison <matt@madison.systems>
2020-05-23 08:45:58 -07:00
Matt Madison
d0f047cbcd image_types_tegra.bbclass: switch to tar.gz packaging
With more tegraflash packages having to include ext4
filesystem image files, switch to creating a compressed
tarball instead of using zip for packaging.

This has two benefits:
1. Package creation is substantially faster, particularly
   when the package includes a raw ext4 image.
2. tar (unlike zip) understands sparse files and will
   preserve the sparseness.  Since the make-sdcard
   script now uses bmaptool if it can, keeping the
   ext4 filesystem image as a sparse file improves
   write speed substantially.

Signed-off-by: Matt Madison <matt@madison.systems>
2020-05-22 11:21:40 -07:00
Matt Madison
38c8340c36 image_types_tegra.bbclass: add SDcard support to tegra194
to support the Xavier NX dev kit.

Signed-off-by: Matt Madison <matt@madison.systems>
2020-05-22 11:21:40 -07:00
Matt Madison
95e0ea45a3 image_types_tegra.bbclass: add RECROOTFSSIZE support
Signed-off-by: Matt Madison <matt@madison.systems>
2020-05-22 11:21:40 -07:00
Matt Madison
882d53169c meta: remove obsolete dependency for BUP generation
In prior L4T releases, version information was extracted
from the /etc/nv_tegra_release file.  This is no longer
the case - all platforms now use the bsp_version file.
So we can drop the nv-tegra-release dependency.

Signed-off-by: Matt Madison <matt@madison.systems>
2020-05-03 08:59:55 -07:00
Matt Madison
428958a32f meta: deploy the XXX_only BUP payloads
The BUP generator creates multiple payloads, the number of
which varies by platform.  Extend the recipes/image types
that currently deploy just the primary combined BL+kernel
payload to deploy the others as well.  There may be a good
use case for this, particularly on the Xavier-NX, where
the kernel_only payload could be helpful.

Signed-off-by: Matt Madison <matt@madison.systems>
2020-05-03 08:59:55 -07:00