Custom Carrier Board with Jetson TX2 not booting with JetPack 4.2

Hi
We have a custom carrier board with a TX2. Instead of a HDMI Display, our board uses a Display Port as primary interface. With JetPack 3.3, we were able to make the DP running. Now we tried the same with the JetPack Version 4.2 and so far, the system won’t boot up and display is not working. As mentioned in other threads, it is possible that the system does not boot completely, because no display is recognized. In JetPack 3.3 was already a DTB File for Display Port, in 4.2 this is missing. The boot log shows the following:

[0001.565] E> I2C: slave not found in slaves.
[0001.570] E> I2C: Could not write 0 bytes to slave: 0x00a2 with repeat start true.
[0001.577] E> I2C_DEV: Failed to send register address 0x00000000.
[0001.583] E> I2C_DEV: Could not read 256 registers of size 1 from slave 0xa2 at 0x00000000 via instance 1.
[0001.593] E> eeprom: Retry to read I2C slave device.
[0001.598] E> I2C: slave not found in slaves.
[0001.602] E> I2C: Could not write 0 bytes to slave: 0x00a2 with repeat start true.
[0001.609] E> I2C_DEV: Failed to send register address 0x00000000.
[0001.615] E> I2C_DEV: Could not read 256 registers of size 1 from slave 0xa2 at 0x00000000 via instance 1.
[0001.625] E> eeprom: Failed to read I2C slave device
[0001.629] I> Eeprom read failed 0x3526070d
[0001.635] I> Find /i2c@3160000's alias i2c0
[0001.639] I> Reading eeprom i2c=0 address=0x50
[0001.643] E> I2C: slave not found in slaves.
[0001.648] E> I2C: Could not write 0 bytes to slave: 0x00a0 with repeat start true.
[0001.655] E> I2C_DEV: Failed to send register address 0x00000000.
[0001.661] E> I2C_DEV: Could not read 256 registers of size 1 from slave 0xa0 at 0x00000000 via instance 0.
[0001.671] E> eeprom: Failed to read I2C slave device
[0001.675] I> Eeprom read failed 0x3526070d
[0001.681] I> Find /i2c@3180000's alias i2c2
[0001.685] I> Reading eeprom i2c=2 address=0x54
[0001.690] I> Enabling gpio chip_id = 2, gpio pin = 9
[0001.694] C> GPIO driver for chip_id 0x2 could not be found
[0001.700] E> cam_eeprom_read: Can't get gpio driver
[0001.704] I> Eeprom read failed 0x4d4d000d
[0001.708] I> Reading eeprom i2c=2 address=0x57
[0001.713] I> Enabling gpio chip_id = 2, gpio pin = 9
[0001.717] C> GPIO driver for chip_id 0x2 could not be found
[0001.723] E> cam_eeprom_read: Can't get gpio driver
[0001.727] I> Eeprom read failed 0x4d4d000d
[0001.731] I> create_pm_ids: id: 3310-1000-B02-E, len: 15
[0001.736] I> config: mem-type:00,power-config:00,misc-config:00,modem-config:00,touch-config:00,display-config:00,, len: 93
[0001.761] E> cannot find any other nvdisp nodes
[0001.765] E> no valid display unit config found in dtb
[0001.771] W> display init failed
[0001.774] initializing target
[    7.486852] random: crng init done
[    7.490272] random: 7 urandom warning(s) missed due to ratelimiting
[    7.571004] tegra-i2c c240000.i2c: no acknowledge from address 0x69
[    7.577343] bmi160 1-0069: bmi_i2c_rd ERR: 0x00
[    7.584980] bmi160 1-0069: bmi_init _id_i2c ERR
[    8.522864] vdd-1v8: voltage operation not allowed
[    8.527685] sdhci-tegra 3440000.sdhci: could not set regulator OCR (-1)
[    8.555089] vdd-1v8: voltage operation not allowed
[    8.559904] sdhci-tegra 3440000.sdhci: could not set regulator OCR (-1)
[    8.583870] vdd-1v8: voltage operation not allowed
[    8.588675] sdhci-tegra 3440000.sdhci: could not set regulator OCR (-1)
[    8.597686] vdd-1v8: voltage operation not allowed
[    8.602507] sdhci-tegra 3440000.sdhci: could not set regulator OCR (-1)
[    8.713939] vdd-1v8: voltage operation not allowed
[    8.718830] sdhci-tegra 3440000.sdhci: could not set regulator OCR (-1)
[    8.727824] vdd-1v8: voltage operation not allowed
[    8.732628] sdhci-tegra 3440000.sdhci: could not set regulator OCR (-1)
[    8.740759] vdd-1v8: voltage operation not allowed
[    8.745564] sdhci-tegra 3440000.sdhci: could not set regulator OCR (-1)

We did the configuration of the display as in JetPack 3.3:

host1x {
		nvdisplay@15200000 {
            		status = "okay";
            		nvidia,dc-or-node = "/host1x/sor";
        	};
        	sor {
            		bootloader-status = "okay";
            		status = "okay";
            		dp-display {
                		bootloader-status = "okay";
                		status = "okay";
            		};
        	};
        	dpaux@155c0000 {
            		bootloader-status = "okay";
            		status = "okay";
        	};
        	dpaux@15040000 {
            		bootloader-status = "disabled";
            		status = "disabled";
        	};
        	nvdisplay@15210000 {
            		status = "disabled";
        	};
        	sor1 {
            		bootloader-status = "disabled";
            		status = "disabled";
            		dp-display {
                		bootloader-status = "disabled";
                		status = "disabled";
            		};
            		hdmi-display {
                    		bootloader-status = "disabled";
                    		status = "disabled";
            		};
        	};
        	nvdisplay@15220000 {
            		status = "disabled";
        	};
	};

	plugin-manager {
        	/delete-node/ fragment-e3320-dp;
        	/delete-node/ fragment-e3320-a00@1;
        	/delete-node/ fragment-e3320-a01@1;
    	};

Could you provide us a DTB file for using the DP as primary display as in JetPack 3.3?
Do we need to configure something else to make DP work?
Thank you for your help.

Kind regards

Hi,

device tree should be the same. Current log shows there is a regulator error.

vdd-1v8: voltage operation not allowed

Do you add any regulator to your device tree?

The log shows the same errors as mentioned in the thread
[url]https://devtalk.nvidia.com/default/topic/1048985/tx2-won-t-boot-after-installing-jetpack-4-2/[/url]

We are not adding any regulator to our device tree.

Does this mean we could just copy the Device Tree from JetPack3.3 to the 4.2 Version?
Thank you.

ok, so there is no real “boot up” issue. You just cannot set the user account and pwd right?

Could you try to find the kernel source and build the kernel dtb?

It’s possible that the problem is just that we cannot set the user account.

We already got the kernel source and build the kernel dtb with JetPack 4.2 the same way we did in JetPack 3.3. The log mentions “cannot find any other nvdisp nodes” and “no valid display unit config found in dtb”, so it seams something in our configuration of the DTB is wrong.

Could you provide a dtsi file for primary DP configuration for JetPack 4.2?

Which DTB are you using for DP now?

We use the tegra186-quill-p3310-1000-a00-00-base.dts file as a start and changed the host1x configuration (see first comment). We then create the DTB with make dtbs in the kernel source folder and flash it to our system.

Why didn’t you just use some thing like dsi-dp one in our kernel source? Which one did you hit the “cannot find any other nvdisp nodes”?

As we understand, the configuration for the dsi-dp is not the same as for the primary DP. The display is connected to the DP0.
Is this not the case?

The logic is similar. You could just put refer to dsi-dp one and change it to dp primary.

So-called “primary” is just the head0 in device tree.

Thank you for your help, the display is now working.
What could be the problem, if the boot logo is not showed and the display turns on during kernel boot?

Hi sevm89,

I think our cboot only supports boot logo on HDMI. Did you see boot logo on DP when using rel-28?

Hi WayneWWW
In Release 28, the boot logo with DP was working.
We are facing another problem with the JetPack 4.2 Version. When following the description of the page https://elinux.org/Jetson/TX2_USB, all USB Interfaces are not working. In JetPack 3.3, the steps described worked and we did not have any issues with the USB. Did something changed in how to configure pcie and usb?
And the errors

[    8.740759] vdd-1v8: voltage operation not allowed
[    8.745564] sdhci-tegra 3440000.sdhci: could not set regulator OCR (-1)

we see without having done any modification on our side, just by using the dsi-dp DTB File.
Thank you.

I think we can focus on fixing the boot logo first.
The usb configuration is changed because the kernel version is changed. The document for usb config is not yet ready.

Can you give an estimate, when the documentation will be available?

Ok, so for the boot logo, what we have to do?

Hi sevm89,

The document for usb may still need 1~2 weeks.

As for the boot logo, we are checking it on our board. Could you share the cboot log from UART with us?

Hi WayneWWW

Thank you for the information.
Attached you can find the log of the boot process from UART.
log_boot.txt (81.7 KB)

Hi WayneWWW

Do you have any updates on these topics?
Thanks.

Best regards

Hi Sevm89,
Did you get your TX2 to boot on a your custom board using JetPack 4.2? I have the same problem with a custom board that has no HDMI or Display Port.

Thanks

Hi badegoke

We got our custom board to boot with JetPack 4.2. On first boot, the user is asked to enter username and password for registration. If you have a headless system, you won’t be able to see this and therefore the board will not finish booting.
You probably can change the rootfs, so that the registration is not necessary anymore (see link below). [url]https://devtalk.nvidia.com/default/topic/1048835/jetson-tx2/tx2-l4t-32-1-automatic-booting/post/5326586/#5326586[/url]

Best regards