A question on the Jetson tegra device drivers - inside and outside of the linux source tree

I am using the source L4T-BSP-src to build the kernel and device tree. As I can see the device drivers and modules for Jetson Tegra are outside the Linux source tree, which might be a good idea to maintain the software for this h/w.

I also notice that some similar code for these drivers also exist inside the upstream Linux source tree under driver// across almost all drivers. Based on the “git log” info, some of the tegra related source files inside the linux source tree have been updating from time to time. And some .c and .h files event contain a lot of duplicated code as those in the outside of the source tree.

ie. nvidia/drivers/clocksource/tegra186_timer.c (in Nvidia’s outside of source tree) vs drivers/clocksource/timer-tegra186.c (Linux kernel v6.0). Both defined some similar macros and structures and functions. And the latter was committed to upstream in Jul 2022.

$ git log --oneline timer-tegra186.c

07385a6055a8 clocksource/drivers/timer-tegra186: Add support for Tegra234 SoC
42cee19a9f83 clocksource: Add Tegra186 timers support

I my question is : Is Nvidia moving the Tegra drivers from outside to inside the update linux source ?

If I just want to use the upstream v6.0 kernel to build the kernel Image, drivers and dtb and install these new bits on my Jetson Tegra, what else I need to do so the machine can boot ? (or, use the existing dtb which came along with Tegra)


The long term plan is to have flexibility of upstream kernel + our driver code, so certain code may be moving to upstream code. This will take a long while, so for now, please stay on fixed kernel version in each Jetpack release.

Here is guidance of fetching/building source code:
Kernel — Jetson Linux Developer Guide documentation

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.