Skip to content

Commit 4a4f021

Browse files
Imported current 4.6.2 beta driver sources
1 parent 065bf24 commit 4a4f021

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+22641
-22614
lines changed

README.md

+25-10
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,42 @@
1-
# NVIDIA Jetson driver
1+
# NVIDIA Jetson driver (Beta)
22

3-
Driver for Allied Vision Alvium MIPI cameras for NVIDIA Jetson with JetPack 4.6.1 (L4T 32.7.1)
3+
4+
Driver (Beta) for Allied Vision Alvium MIPI cameras for NVIDIA Jetson with JetPack 4.6.2 (L4T 32.7.2)
45
https://developer.nvidia.com/embedded/jetpack
56
![Alvium camera](https://cdn.alliedvision.com/fileadmin/content/images/cameras/Alvium/various/alvium-cameras-models.png)
67

8+
THE SOFTWARE IS PRELIMINARY AND STILL IN TESTING AND VERIFICATION PHASE AND IS PROVIDED ON
9+
AN “AS IS” AND “AS AVAILABLE” BASIS AND IS BELIEVED TO CONTAIN DEFECTS. A PRIMARY PURPOSE
10+
OF THIS EARLY ACCESS IS TO OBTAIN FEEDBACK ON PERFORMANCE AND THE IDENTIFICATION OF
11+
DEFECT SOFTWARE, HARDWARE AND DOCUMENTATION.
12+
13+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
14+
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
15+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
16+
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
17+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
18+
719
## Overview
820

921
The scripts in this project build and install the Allied Vision MIPI camera driver to the NVIDIA Jetson boards.
1022

11-
Compatible platforms with JetPack 4.6.1 (L4T 32.7.1):
23+
Compatible platforms with JetPack 4.6.2 (L4T 32.7.2) :
1224

1325
+ Nano 2GB and 4GB NVIDIA developer kit
14-
+ TX2 (Beta: including optional use of Allied Vision's adapter for up to 6 cameras)
26+
+ TX2 (including optional use of Allied Vision's adapter for up to 6 cameras)
1527
+ TX2 NX NVIDIA developer kit
16-
+ AGX Xavier NVIDIA developer kit (Beta: including optional use of Allied Vision's adapter for up to 6 cameras)
28+
+ AGX Xavier NVIDIA developer kit (including optional use of Allied Vision's adapter for up to 6 cameras)
1729
+ Xavier NX NVIDIA developer kit
18-
+ Beta: Xavier NX on [Auvidea JNX30-PD](https://auvidea.eu/product/38401/) for Alvium cameras with FPD Link interface.
30+
+ Xavier NX on [Auvidea JNX30-PD](https://auvidea.eu/product/38401/) for Alvium cameras with FPD Link interface.
1931

2032

2133
The scripts require Git on the host PC.
2234

2335
***Before starting the installation, make sure to create a backup of your Jetson system.***
2436

25-
## Prerequisites: Install JetPack 4.6.1
37+
## Prerequisites: Install JetPack 4.6.2
2638

27-
Install JetPack 4.6.1 (L4T 32.7.1) as per NVIDIA's instructions
39+
Install JetPack 4.6.2 (L4T 32.7.2) as per NVIDIA's instructions
2840
https://developer.nvidia.com/embedded/jetpack
2941

3042
Recommendation: Use NVIDIA SDK Manager to install JetPack and useful tools such as CUDA.
@@ -33,12 +45,15 @@ https://docs.nvidia.com/sdk-manager/
3345

3446
## Install Alvium MIPI driver
3547

48+
Because the bootloader cboot has a bug in jetpack 4.6.2, the installation installs a patched cboot version.
49+
The applied patch and more information about the bug can be found here: https://forums.developer.nvidia.com/t/cboot-in-32-7-2-fails-to-read-extlinux-conf/214017/15
50+
3651
### Method A: Use precompiled binaries
3752

38-
Install the precompiled kernel, which includes the driver and an installation menu.
53+
Install the precompiled kernel, which includes the driver and an installation menu.
3954

4055
1. Extract the tarball on a host PC.
41-
The tarball contains helper scripts and another tarball with the precompiled binaries named AlliedVision_NVidia_L4T_32.7.1_<git-rev>.tar.gz.
56+
The tarball contains helper scripts and another tarball with the precompiled binaries named AlliedVision_NVidia_L4T_32.7.2_<git-rev>.tar.gz.
4257

4358
2. Copy the tarball to the target board.
4459
3. On the target board, extract the tarball and run the included install script.

avt_build/jetson_build/board.py

+16-10
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
from . import upstream
44
from . import build
55

6-
AVT_RELEASE = "4.0.0"
6+
AVT_RELEASE = "4.6.2~beta1"
77
KERNEL_RELEASE = "4.9.253-tegra"
8-
L4T_VERSION = "32.7.1"
8+
L4T_VERSION = "32.7.2"
99

1010
FileSet = namedtuple('FileSet', [
1111
'driver_package',
@@ -14,19 +14,19 @@
1414

1515

1616
def get_tx2_agx_nx_upstream_files(UpstreamFile):
17-
driver_package = UpstreamFile("https://developer.nvidia.com/embedded/l4t/r32_release_v7.1/t186/jetson_linux_r32.7.1_aarch64.tbz2", "368c85a7ef0ab3a3e845cb535ecc1fea71e576a172788906f7178356ad9c9b84")
17+
driver_package = UpstreamFile("https://developer.nvidia.com/embedded/l4t/r32_release_v7.2/t186/jetson_linux_r32.7.2_aarch64.tbz2", "2b98fa531414ed5bff38de0d4a8b10d272008a84c227bbf16a9082ce924afa70")
1818
#rootfs = UpstreamFile("https://developer.nvidia.com/embedded/l4t/r32_release_v7.1/t186/tegra_linux_sample-root-filesystem_r32.7.1_aarch64.tbz2", "17996e861dd092043509e0b7e9ae038e271e5b0b7b78f26a34db4f03df2b12b8")
19-
public_sources = UpstreamFile("https://developer.nvidia.com/embedded/l4t/r32_release_v7.1/sources/t186/public_sources.tbz2", "3f551de576e0eb0397a8679aed760e53433fbd9c90b1d008caae364f3b7569f9")
19+
public_sources = UpstreamFile("https://developer.nvidia.com/embedded/l4t/r32_release_v7.2/sources/t186/public_sources.tbz2", "5ff4a46c6b85926450c456b0ee2d78f1801aab9c51b3f51b777c7c27ddf517fd")
2020

2121
return FileSet(
2222
public_sources=public_sources,
2323
#rootfs=rootfs,
2424
driver_package=driver_package)
2525

2626
def get_nano_upstream_files(UpstreamFile):
27-
driver_package = UpstreamFile("https://developer.nvidia.com/embedded/l4t/r32_release_v7.1/t210/jetson-210_linux_r32.7.1_aarch64.tbz2", "7b6f4a698278226ae1d92661270c5441e16d01eafffb4bfb086de80b6964ae6f")
27+
driver_package = UpstreamFile("https://developer.nvidia.com/embedded/l4t/r32_release_v7.2/t210/jetson-210_linux_r32.7.2_aarch64.tbz2", "3165351568f2b6677aceeb7c789bf986d8feb95fdec63eb3989f1c715b1fa795")
2828
#rootfs = UpstreamFile("https://developer.nvidia.com/embedded/l4t/r32_release_v7.1/t210/tegra_linux_sample-root-filesystem_r32.7.1_aarch64.tbz2", "17996e861dd092043509e0b7e9ae038e271e5b0b7b78f26a34db4f03df2b12b8")
29-
public_sources = UpstreamFile("https://developer.nvidia.com/embedded/l4t/r32_release_v7.1/sources/t210/public_sources.tbz2", "fdf5fb80fca25d107bb1545f9f8985237404b621d751b1c1ddc9a25c1b25cd21")
29+
public_sources = UpstreamFile("https://developer.nvidia.com/embedded/l4t/r32_release_v7.2/sources/t210/public_sources.tbz2", "4aaccdc4f51c969120ac9bcefe47522d519c7b00fe70a7c2d84bc95c77e56858")
3030

3131
return FileSet(
3232
public_sources=public_sources,
@@ -55,9 +55,12 @@ def get_nano_upstream_files(UpstreamFile):
5555
("bootloader/payloads_t21x/bl_update_payload", "opt/ota_package/t21x/bl_update_payload")
5656
]
5757

58+
l4t_patches_xavier = [
59+
("cboot_t194.bin", "bootloader")
60+
]
5861

5962
class Board:
60-
def __init__(self, name, bundle_name, build_dir, files, dtb_filters, bups, kernel_extra, bootloader_payload, tools_version):
63+
def __init__(self, name, bundle_name, build_dir, files, dtb_filters, bups, kernel_extra, bootloader_payload, tools_version, l4t_patches):
6164
self.name = name
6265
self.bundle_name = bundle_name
6366
self.build_dir = build_dir
@@ -67,11 +70,14 @@ def __init__(self, name, bundle_name, build_dir, files, dtb_filters, bups, kerne
6770
self.kernel_extra_files = kernel_extra
6871
self.bootloader_payload_files = bootloader_payload
6972
self.l4t_tools_version = tools_version
73+
self.l4t_patches = l4t_patches
7074

7175

7276
known_boards = {
73-
'nano': ("Nano, Nano 2GB", "nano", "nano", get_nano_upstream_files, ['tegra210'], ['t21x'], kernel_extra_files_nano,bootloader_payload_files_nano, "32.7.1-20220219090432"),
74-
'xavier': ("AGX, NX, TX2", "xavier", None, get_tx2_agx_nx_upstream_files, ['tegra194','tegra186'], ['t19x','t18x'], kernel_extra_files_xavier,bootloader_payload_files_xavier, "32.7.1-20220219090344"),
77+
'nano': ("Nano, Nano 2GB", "nano", "nano", get_nano_upstream_files, ['tegra210'], ['t21x'],
78+
kernel_extra_files_nano, bootloader_payload_files_nano, "32.7.1-20220219090432", None),
79+
'xavier': ("AGX, NX, TX2", "xavier", None, get_tx2_agx_nx_upstream_files, ['tegra194', 'tegra186'], ['t19x', 't18x'],
80+
kernel_extra_files_xavier, bootloader_payload_files_xavier, "32.7.1-20220219090344", l4t_patches_xavier),
7581
}
7682

7783

@@ -80,7 +86,7 @@ def boards(args):
8086
build_dir = build.build_dir(args)
8187

8288
def mk_board(brd):
83-
return Board(brd[0], brd[2], build_dir(brd[1]), brd[3](UpstreamFile), brd[4], brd[5], brd[6], brd[7],brd[8])
89+
return Board(brd[0], brd[2], build_dir(brd[1]), brd[3](UpstreamFile), brd[4], brd[5], brd[6], brd[7],brd[8],brd[9])
8490

8591
UpstreamFile = upstream.upstream(args)
8692
return [mk_board(known_boards[board]) for board in args.boards]
Binary file not shown.

avt_build/jetson_build/prepare.py

+7-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
from . import tools
44
from . import common
55

6+
from pathlib import Path, PurePath
7+
68
def clean(args, board):
79
logging.info(f"Cleaning {board.name} in {board.build_dir}")
810

@@ -19,4 +21,8 @@ def prepare(args, board):
1921
logging.warning("Extracting public_sources DISABLED")
2022
#t.extract(board.files.public_sources, board.build_dir)
2123
#t.execute(['sudo', './apply_binaries.sh'], cwd=board.build_dir / 'Linux_for_Tegra')
22-
24+
if board.l4t_patches is not None:
25+
logging.info("Appling L4T patches")
26+
base_dir = Path(__file__).parent
27+
for patch in board.l4t_patches:
28+
t.execute(['cp', base_dir / 'files/l4t-patches' / patch[0], board.build_dir / 'Linux_for_Tegra' / patch[1]], sudo=True)
Original file line numberDiff line numberDiff line change
@@ -1,74 +1,74 @@
1-
/*
2-
* Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved.
3-
*
4-
* This program is free software; you can redistribute it and/or modify
5-
* it under the terms of the GNU General Public License as published by
6-
* the Free Software Foundation; either version 2 of the License, or
7-
* (at your option) any later version.
8-
*
9-
* This program is distributed in the hope that it will be useful, but WITHOUT
10-
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11-
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12-
* more details.
13-
*
14-
* You should have received a copy of the GNU General Public License along
15-
* with this program; if not, write to the Free Software Foundation, Inc.,
16-
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17-
*/
18-
19-
#include <dt-bindings/gpio/tegra-gpio.h>
20-
21-
/ {
22-
gpio: gpio@6000d000 {
23-
gpio-init-names = "default";
24-
gpio-init-0 = <&gpio_default>;
25-
26-
gpio_default: default {
27-
gpio-input = <
28-
TEGRA_GPIO(X, 1)
29-
TEGRA_GPIO(X, 5)
30-
TEGRA_GPIO(X, 6)
31-
TEGRA_GPIO(X, 7)
32-
TEGRA_GPIO(Y, 0)
33-
TEGRA_GPIO(V, 3)
34-
TEGRA_GPIO(K, 7)
35-
TEGRA_GPIO(I, 1)
36-
TEGRA_GPIO(H, 6)
37-
TEGRA_GPIO(K, 4)
38-
TEGRA_GPIO(K, 6)
39-
TEGRA_GPIO(L, 1)
40-
TEGRA_GPIO(Z, 2)
41-
TEGRA_GPIO(Z, 0)
42-
TEGRA_GPIO(CC, 1)
43-
TEGRA_GPIO(H, 2)
44-
TEGRA_GPIO(H, 5)
45-
TEGRA_GPIO(Y, 1)
46-
TEGRA_GPIO(A, 5)
47-
TEGRA_GPIO(X, 4)
48-
>;
49-
gpio-output-low = <
50-
TEGRA_GPIO(S, 4)
51-
TEGRA_GPIO(S, 5)
52-
TEGRA_GPIO(S, 6)
53-
TEGRA_GPIO(S, 7)
54-
TEGRA_GPIO(T, 0)
55-
TEGRA_GPIO(T, 1)
56-
TEGRA_GPIO(Z, 3)
57-
TEGRA_GPIO(I, 0)
58-
TEGRA_GPIO(V, 6)
59-
TEGRA_GPIO(V, 1)
60-
TEGRA_GPIO(V, 2)
61-
TEGRA_GPIO(I, 2)
62-
TEGRA_GPIO(K, 5)
63-
TEGRA_GPIO(V, 5)
64-
TEGRA_GPIO(H, 0)
65-
TEGRA_GPIO(H, 1)
66-
TEGRA_GPIO(H, 3)
67-
TEGRA_GPIO(H, 4)
68-
TEGRA_GPIO(BB, 2)
69-
>;
70-
gpio-output-high = <
71-
>;
72-
};
73-
};
74-
};
1+
/*
2+
* Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved.
3+
*
4+
* This program is free software; you can redistribute it and/or modify
5+
* it under the terms of the GNU General Public License as published by
6+
* the Free Software Foundation; either version 2 of the License, or
7+
* (at your option) any later version.
8+
*
9+
* This program is distributed in the hope that it will be useful, but WITHOUT
10+
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11+
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12+
* more details.
13+
*
14+
* You should have received a copy of the GNU General Public License along
15+
* with this program; if not, write to the Free Software Foundation, Inc.,
16+
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17+
*/
18+
19+
#include <dt-bindings/gpio/tegra-gpio.h>
20+
21+
/ {
22+
gpio: gpio@6000d000 {
23+
gpio-init-names = "default";
24+
gpio-init-0 = <&gpio_default>;
25+
26+
gpio_default: default {
27+
gpio-input = <
28+
TEGRA_GPIO(X, 1)
29+
TEGRA_GPIO(X, 5)
30+
TEGRA_GPIO(X, 6)
31+
TEGRA_GPIO(X, 7)
32+
TEGRA_GPIO(Y, 0)
33+
TEGRA_GPIO(V, 3)
34+
TEGRA_GPIO(K, 7)
35+
TEGRA_GPIO(I, 1)
36+
TEGRA_GPIO(H, 6)
37+
TEGRA_GPIO(K, 4)
38+
TEGRA_GPIO(K, 6)
39+
TEGRA_GPIO(L, 1)
40+
TEGRA_GPIO(Z, 2)
41+
TEGRA_GPIO(Z, 0)
42+
TEGRA_GPIO(CC, 1)
43+
TEGRA_GPIO(H, 2)
44+
TEGRA_GPIO(H, 5)
45+
TEGRA_GPIO(Y, 1)
46+
TEGRA_GPIO(A, 5)
47+
TEGRA_GPIO(X, 4)
48+
>;
49+
gpio-output-low = <
50+
TEGRA_GPIO(S, 4)
51+
TEGRA_GPIO(S, 5)
52+
TEGRA_GPIO(S, 6)
53+
TEGRA_GPIO(S, 7)
54+
TEGRA_GPIO(T, 0)
55+
TEGRA_GPIO(T, 1)
56+
TEGRA_GPIO(Z, 3)
57+
TEGRA_GPIO(I, 0)
58+
TEGRA_GPIO(V, 6)
59+
TEGRA_GPIO(V, 1)
60+
TEGRA_GPIO(V, 2)
61+
TEGRA_GPIO(I, 2)
62+
TEGRA_GPIO(K, 5)
63+
TEGRA_GPIO(V, 5)
64+
TEGRA_GPIO(H, 0)
65+
TEGRA_GPIO(H, 1)
66+
TEGRA_GPIO(H, 3)
67+
TEGRA_GPIO(H, 4)
68+
TEGRA_GPIO(BB, 2)
69+
>;
70+
gpio-output-high = <
71+
>;
72+
};
73+
};
74+
};

0 commit comments

Comments
 (0)