Have a done some “progress”, in the sens that, I have found that I should have put the “tegra194-a02-bpmp-p2888-a04.dtb” in the folder “bootloader/t186ref” in order to be flashed on the device and not just the “bootloader” folder.
I have change my strategy, I have given up compiling the kernel, what I’m doing now:
Delete everything
Download a fresh copy of JetPack 4.6 using sdkmanager
De-compiling the two dts files “tegra194-a02-bpmp-p2888-a04.dtb” and “tegra194-p2888-0001-p2822-0000.dtb” using the “dtc” command:
dtc -I dtb -O dts tegra194-p2888-0001-p2822-0000.dtb -o tegra194-p2888-0001-p2822-0000.dts
dtc -I dtb -O dts tegra194-a02-bpmp-p2888-a04.dtb -o tegra194-a02-bpmp-p2888-a04.dts
Changing the following things in tegra194-a02-bpmp-p2888-a04.dts
clock@can1 {
allow_fractional_divider = <0x1>;
allowed-parents = <0x121 0x5b 0x13a 0x5e>;
clk-id = <0x9>;
};
clock@can2 {
allow_fractional_divider = <0x1>;
allowed-parents = <0x121 0x5b 0x13a 0x5e>;
clk-id = <0xb>;
};
And in tegra194-p2888-0001-p2822-0000.dts
mttcan@c310000 {
compatible = "nvidia,tegra194-mttcan";
reg = <0x0 0xc310000 0x0 0x400 0x0 0xc311000 0x0 0x32 0x0 0xc312000 0x0 0x1000>;
reg-names = "can-regs", "glue-regs", "msg-ram";
interrupts = <0x0 0x28 0x4>;
pll_source = "pllaon";
clocks = <0x4 0x11c 0x4 0xa 0x4 0x9 0x4 0x5e>;
clock-names = "can_core", "can_host", "can", "pllaon";
resets = <0x5 0x4>;
reset-names = "can";
mram-params = <0x0 0x10 0x10 0x20 0x0 0x0 0x10 0x10 0x10>;
tx-config = <0x0 0x10 0x0 0x40>;
rx-config = <0x40 0x40 0x40>;
status = "okay";
linux,phandle = <0x187>;
phandle = <0x187>;
};
mttcan@c320000 {
compatible = "nvidia,tegra194-mttcan";
reg = <0x0 0xc320000 0x0 0x400 0x0 0xc321000 0x0 0x32 0x0 0xc322000 0x0 0x1000>;
reg-names = "can-regs", "glue-regs", "msg-ram";
interrupts = <0x0 0x2a 0x4>;
pll_source = "pllaon";
clocks = <0x4 0x11d 0x4 0xc 0x4 0xb 0x4 0x5e>;
clock-names = "can_core", "can_host", "can", "pllaon";
resets = <0x5 0x5>;
reset-names = "can";
mram-params = <0x0 0x10 0x10 0x20 0x0 0x0 0x10 0x10 0x10>;
tx-config = <0x0 0x10 0x0 0x40>;
rx-config = <0x40 0x40 0x40>;
status = "okay";
linux,phandle = <0x188>;
phandle = <0x188>;
};
...
clocks-init {
compatible = "nvidia,clocks-config";
status = "okay";
disable {
clocks = <0x14f 0x9 0x4 0xb>;
};
};
Then recompile them into dtb
dtc -I dts -O dtb tegra194-p2888-0001-p2822-0000.dts -o tegra194-p2888-0001-p2822-0000.dtb
dtc -I dts -O dtb tegra194-a02-bpmp-p2888-a04.dts -o tegra194-a02-bpmp-p2888-a04.dtb
Then replace the existing file “tegra194-p2888-0001-p2822-0000.dtb” in the “kernel/dtb” folder and “tegra194-a02-bpmp-p2888-a04.dtb” in the “bootloader/t186ref”
Then flash the jetson with the command:
sudo ./flash.sh jetson-agx-xavier-devkit mmcblk0p1
Once it is done, setup the ubuntu (language, keyboard etc…)
Then login and type:
sudo modprobe mttcan
And everything freeze. Then the device reboot itself after ~2 minutes.
Thank you for you help.