For anyone that needs to do this on their NX kits (or similar):
Vidyas patches are from a git repo we do not have access to. So what you need to do:
- Pay attention to the #include directive in the patch. While I cannot find <mach-t194/clk-t194.h>, I can find the clock id - TEGRA194_CLK_PLLNVHS by just grepping through everything after doing source_sync.sh. Use the clock ID from there and mind that you use the same clock ID that is for the L4T version you are using. E.g. source_sync.sh -d <YOUR_L4T_VERSION>, then “find . -type f -exec grep TEGRA194_CLK_PLLNVHS {} ;”
Then you device-tree-decompile the relevant bpmp in your Linux_for_Tegra folder (where flash.sh resides. For example:
-
If you do sudo ./flash.sh -r jetson-xavier-nx-devkit-emmc mmcblk0p1:
-
Then look at the jetson-xavier-nx-devkit-emmc.conf
-
cat jetson-xavier-nx-devkit-emmc.conf | grep source
source ${LDK_DIR}/p3668.conf.common"; -
And if you look for bpmp in that file you will find the one you are flashing:
-
cat p3668.conf.common | grep -i bpmp
BPFDTB_FILE=tegra194-a02-bpmp-p3668-a00.dtb; -
Look for that file
-
find . -name tegra194-a02-bpmp-p3668-a00.dtb
./bootloader/t186ref/tegra194-a02-bpmp-p3668-a00.dtb
./bootloader/tegra194-a02-bpmp-p3668-a00.dtb -
Then decompile one of these
-
dtc -o test.dts ./bootloader/t186ref/tegra194-a02-bpmp-p3668-a00.dtb
-
In test.dts, locate the “clock” parent and insert the patch, using the correct (!) clock id
clocks {
clock@pllnvhs {
clk-id = <0xf3>;
pll_freq_table = <0x249f000 0x5f5e100 0x02 0x7d 0x18 0xffffffff 0xffffffff 0xffffffff 0xffffffff>;
}; -
Compile back to dtb and copy these back
dtc -o test.dtb test.dts
cp test.dtb ./bootloader/t186ref/tegra194-a02-bpmp-p3668-a00.dtb
cp test.dtb ./bootloader/tegra194-a02-bpmp-p3668-a00.dtb -
Noting I needed sudo in front of one of these.
-
Then flash the entire kit.
sudo ./flash.sh -r jetson-xavier-nx-devkit-emmc mmcblk0p1
Note that we have verified the SSC off using oscilloscope.