Module not booting correctly on custom carrier board

Just a small upgrade meanwhile I’m checking again the HW.

Is it possible that the fact that my custom carrier board has no EEPROM like there is on the devkits can negatively impact the rest of the I²C and then, cause some errors on the common part as PMIC wrong config ?

@Trumany

Also, what about address conflicts between I²C interfaces ?

Are they well fully isolated ?

Kind regards,

Romain

What do you mean here? The I2C address should not conflict on same bus. You should check all the I2C devices on same bus to see if any device failed already or has same address to others.

I mean between buses (I2C1, I2C2, I2C3, …)

Regards,

Romain

That would be ok.

Hello,

Just a small update because yesterday at the end of a good day of work, I managed to make the module booting correctly.

I saw many posts on this forum marked as “resolved” but where no real solution for someone encountering a same boot/flash log with a concrete patch or way to solve it…

So I wanted to come back here and explain the real problem and the way I resolved this:

  • First, I moved to Jetpack 4.6.4 as WayneWWW asked me to do (too many known bugs on the 4.6.2).
  • Then, I checked again the checklist for bring-up and schematic given by Nvidia but I found nothing as I already followed these checklist when I designed my custom carrier board.
  • So, I started to modify a bit my custom carrier board in the hope to get a different bootlog and so, understand better the real problem.
  • I disabled all my carrierboard power rails and there, the bootlog was a lot different, looping with another I²C error like in this post : AGX Xavier operation on custom carrier board: "tegra-i2c 31c0000.i2c: rx dma timeout txlen:28 rxlen:128"
  • There was also some display and Hdmi edid errors displayed
  • The most important thing from this step is that the bootlog was displaying at one time around 90s of boot-time this message : "Please complete system configuration setup on the serial port … "
  • But the OEM dialog to configure a blank module didn’t appeared as it appeared on the commercial devkit.
  • By searching around, I plugged my HDMI monitor in my HDMI interface connector (on my custom carrierboard) and tadaaaaaam, it was displaying the GUI from Ubuntu for the OEM config.
  • But I had no way to connect a keyboard or a mouse to my custom carrierboard so I wanted that this configuration do not go on the display but on the UART debug link.
  • By looking at HPD signal of the HDMI interface, I realized that the logic control level was inverted between the Hardware of my custom carrierboard (PU and non-inverting level shifter) and the DTS file used for the flash.
  • As seen since the first logs, the problem seems to be an I²C problem, I removed the I²C level shifter for my HDMI I²C interface but I think it changed nothing (TBC when I’ll resolder it).
  • So from there, I shutdowned all my carrier board, I re-enabled my carrierboard power rails, I connected the HDMI screen (in order that the Jetson module believe there’s no screen connected (remember the inverted logic)) and I Power-On the board.

→ Tadaaaaaam, the module is booting correctly, without all the I²C errors as seen in all bootlogs previously, then display the line "Please complete system configuration setup on the serial port … " and few seconds later, the dialog for the configuration appears in the UART debug link.

→ Finally and after lot of work, investigations and determination, my carrierboard is working fine and the Jetson AGX Xavier Industrial module can be flashed and can boot correctly on my custom carrierboard with the original Jetpack 4.6.4 without any modification for the moment ! What a great moment…

→ Next steps will be to test the already available interfaces and then to edit the DTS in order to make the others interfaces working and also, change the logic level of the HDP signal of the HDMI interface !

What an incredible loose of time for such a ridiculous problem :D

Good luck to all future carrierboard designers !

Regards,

Romain