Xavier brings down existing CAN-BUS during reboot/power-up


I’m having trouble connecting the Xavier to my existing CAN-bus network. I have used this guide to enable CAN bus on the Xavier and it works good: https://medium.com/@ramin.nabati/enabling-can-on-nvidia-jetson-xavier-developer-kit-aaaa3c4d99c9

However during power up the Jetson seems to bring down the CAN-bus network causing all the other nodes to loose communication and some enter fault mode. I suspect this is because Rx/Tx are configured as GPIO during boot and is not working properly until the register patch is applied.

Will changing the pinmux and flashing the register values permanent help to sort this out(https://elinux.org/Jetson/AGX_Xavier_CAN) or do I need to make a hack?

A transciever that has silent mode and only goes to active state after boot will probably work. But how would I configure this?


I also forgot to mention that this seems not be a problem on TX2 with same transceivers

Hi Ltro,

I would like to know by power up means are you suspending the system and then resumes or you are doing cold boot means reboot the system?

Thanks & Regards,
Shubhi Garg

@shgarg it happens either when booting from scratch or when running sudo reboot. Haven’t tried suspend function since it’s not useable in this application

Yes, then pin configurations will go off and they will be back to their original settings. You can do one thing:
As you followed: https://medium.com/@ramin.nabati/enabling-can-on-nvidia-jetson-xavier-developer-kit-aaaa3c4d99c9
In enable_CAN.sh: copy below lines at the starting so that after every boot, it configures automatically:
sudo busybox devmem 0x0c303000 32 0x0000C400
sudo busybox devmem 0x0c303008 32 0x0000C458
sudo busybox devmem 0x0c303010 32 0x0000C400
sudo busybox devmem 0x0c303018 32 0x0000C458

Please try and let me know if this works.


Hi again,

I already dis this, CAN configures automatically but the script is loaded too late I suspect. If the tx/rx pins are configured GPIO during initial boot and are low they will be dominant on the CAN bus and disable all other communication. I need to check this with a scope to see if it actually is the problem