We have set up CAN communication as proposed here and activated CANs with:
sudo busybox devmem 0x0c303000 32 0x0000C400
sudo busybox devmem 0x0c303008 32 0x0000C458
sudo busybox devmem 0x0c303010 32 0x0000C400
sudo busybox devmem 0x0c303018 32 0x0000C458
sudo insmod /lib/modules/4.9.253-rt168-tegra/kernel/net/can/can.ko
sudo insmod /lib/modules/4.9.253-rt168-tegra/kernel/net/can/can-raw.ko
sudo insmod /lib/modules/4.9.253-rt168-tegra/kernel/net/can/can-bcm.ko
sudo insmod /lib/modules/4.9.253-rt168-tegra/kernel/net/can/can-gw.ko
sudo insmod /lib/modules/4.9.253-rt168-tegra/kernel/drivers/net/can/can-dev.ko
sudo insmod /lib/modules/4.9.253-rt168-tegra/kernel/drivers/net/can/mttcan/native/mttcan.ko
sudo ip link set can0 type can bitrate 500000
sudo ip link set can1 type can bitrate 500000
sudo ip link set up can0
sudo ip link set up can1
ip -s -d link show can0
Even though it was set as 500000 it shows 498701:
8: can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UP mode DEFAULT group default qlen 10
link/can promiscuity 0
can state ERROR-ACTIVE (berr-counter tx 0 rx 0) restart-ms 0
bitrate 498701 sample-point 0.870
tq 26 prop-seg 33 phase-seg1 33 phase-seg2 10 sjw 1
mttcan: tseg1 2..255 tseg2 0..127 sjw 1..127 brp 1..511 brp-inc 1
mttcan: dtseg1 1..31 dtseg2 0..15 dsjw 1..15 dbrp 1..15 dbrp-inc 1
clock 38400000
re-started bus-errors arbit-lost error-warn error-pass bus-off
0 0 0 0 0 0 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535
RX: bytes packets errors dropped overrun mcast
0 0 0 0 0 0
TX: bytes packets errors dropped carrier collsns
0 0 0 0 0 0
Is there any way at all to set the clockrate at an exact value (say 500000) without flashing? I am working on an AGX Xavier.