TX2-I boot problem

I use L4T release28.2.1.Tx2 and tx2-i both can boot up,but when tx2-i boot,system show some error message by dmesg.
I compare this dmesg log, find some different between emmc.
TX2-I :

[ 0.371263] isomgr_init(): iso emc max clk=1600000KHz
[ 0.371273] isomgr_init(): max_iso_bw=7680000KB

Tx2 :

[ 0.363012] isomgr_init(): iso emc max clk=1866000KHz
[ 0.363025] isomgr_init(): max_iso_bw=26870400KB

And tx2-i show this error message:
max_iso_bw is relaxed to 7799200KB from 7680000KB
[ 0.424424] ------------[ cut here ]------------
[ 0.424441] WARNING: at ffffffc00085857c [verbose debug info unavailable]
[ 0.424451] Modules linked in:

[ 0.424474] CPU: 4 PID: 6 Comm: kworker/u12:0 Not tainted 4.4.38 #169
[ 0.424485] Hardware name: storm (DT)
[ 0.424500] Workqueue: events_unbound async_run_entry_fn
[ 0.424513] task: ffffffc1ade1be80 ti: ffffffc1ade58000 task.ti: ffffffc1ade58000
[ 0.424532] PC is at __tegra_isomgr_register+0x310/0x4d8
[ 0.424544] LR is at __tegra_isomgr_register+0x310/0x4d8
[ 0.424555] pc : [] lr : [] pstate: 60000045
[ 0.424569] sp : ffffffc1ade5b8e0
[ 0.424578] x29: ffffffc1ade5b8e0 x28: 0000000000000000
[ 0.424593] x27: ffffffc001429000 x26: ffffffc00136a000
[ 0.424608] x25: ffffffc000c0c000 x24: ffffffc00142c1e8
[ 0.424622] x23: ffffffc0008dcc60 x22: 0000000000000000
[ 0.424637] x21: 00000000005a6568 x20: ffffffc0014297a0
[ 0.424651] x19: ffffffc001429800 x18: ffffffc000b1aa60
[ 0.424664] x17: ffffffc000b1aa60 x16: ffffffc000b1aa60
[ 0.424679] x15: ffffffc000b1aa60 x14: 424b303030303836
[ 0.424692] x13: 37206d6f72662042 x12: 4b30303239393737
[ 0.424706] x11: ffffffc0012002a8 x10: 6c65722073692077
[ 0.424720] x9 : 000000000000014f x8 : 0000000000000002
[ 0.424734] x7 : ffffffc001228978 x6 : 0000000000000040
[ 0.424747] x5 : 0000000000000000 x4 : 0000000000000000
[ 0.424761] x3 : 0000000000000000 x2 : 0000000000000000
[ 0.424773] tegra-adma 2930000.adma: Tegra ADMA driver register 10 channels
[ 0.424784] x1 : 0000000000000000 x0 : 0000000000000031

[ 0.424812] —[ end trace ccb845483f031496 ]—
[ 0.424822] Call trace:
[ 0.424833] [] __tegra_isomgr_register+0x310/0x4d8
[ 0.424845] [] tegra_isomgr_register+0x1c/0x2c
[ 0.424859] [] tegra_nvdisp_bandwidth_register+0xd8/0x1dc
[ 0.424872] [] tegra_nvdisp_init+0x3ec/0x908
[ 0.424886] [] tegra_dc_probe+0x254/0xf0c
[ 0.424900] [] platform_drv_probe+0x50/0xbc
[ 0.424912] [] driver_probe_device+0xcc/0x414
[ 0.424923] [] __driver_attach+0x9c/0xa0
[ 0.424935] [] bus_for_each_dev+0x58/0x98
[ 0.424946] [] driver_attach+0x20/0x28
[ 0.424957] [] driver_attach_async+0x14/0x54
[ 0.424968] [] async_run_entry_fn+0x44/0x180
[ 0.424981] [] process_one_work+0x158/0x434
[ 0.424991] [] worker_thread+0x134/0x40c
[ 0.425003] [] kthread+0xe0/0xf4
[ 0.425016] [] ret_from_fork+0x10/0x40
[ 0.425026] __tegra_isomgr_register(): ISO BW usage:
[ 0.425037] __tegra_isomgr_register(): client=disp_0, iso dedi bw=5924200KB
[ 0.425048] __tegra_isomgr_register(): client=disp_1, iso dedi bw=0KB
[ 0.425058] __tegra_isomgr_register(): client=disp_2, iso dedi bw=0KB
[ 0.425069] __tegra_isomgr_register(): client=isp_a, iso dedi bw=0KB
[ 0.425080] __tegra_isomgr_register(): client=tegra_camera_ctrl, iso dedi bw=1875000KB
[ 0.425094] __tegra_isomgr_register(): client=ape_adma, iso dedi bw=0KB
[ 0.425104] __tegra_isomgr_register(): client=eqos, iso dedi bw=0KB
[ 0.425114] __tegra_isomgr_register(): revisit BW usage of iso clients
tx2.log (75.6 KB)
tx2i.log (78.6 KB)

Not sure how this relates to the kernel error, but the tx2i.log file indicates EDID (i2c) failure and a regulator failure for HDMI.

This is surrounded by various EDID/i2c errors:

[    4.809689] hdmi: couldn't get regulator vdd_hdmi_5v0: -517

Does the monitor work correctly on other systems? Is it purely HDMI? Probably the monitor is ok since the regulator failure wouldn’t care about things like VGA adapters, but I have to ask since EDID is failing. If nothing unusual is going on, then it looks like hardware failure.

Hi,

Monitor is work correctly,use default edid message(1280x1024).Our hardware platform has two purely HDMI and both of them worked correctly.EDID failing because our platform does not connect tx2 DDC to monitor. TX2 display use default EDID instead of DDC.

Our hardware platform compatible tx2 and tx2i.Tx2 can work correctly but tx2i does not.

Another problem,when TX2I boot up on our platform,user cann’t transmit command by system terminal(uart0).But receive work correctly.

I can’t help much with a custom board, but I wonder if the regulator is an issue even though you have hard coded the EDID. There are so many i2c errors I have to wonder if this might be influencing something else beyond just the monitor’s EDID.

Is your serial console trying to use RTS/CTS flow control? If so, disable this in software and connect only the DP/DM/GND.

ok,thanks for response.

Hi,
After flash the TX2I,this error was disappeared.But system treminal does not work correctly.Could you help me? How to disable flow control?
Base on dts file, I did not find any uart flow control property.

Hi,

I use ssh connect to tx2-i,and use this command to transmit date to ttyS0(system terminal)“echo hello > /dev/ttyS0”.
On system terminal,I find ttyS0 transmit “hello” to my PC by USB-UART connection.
And use “cat /proc/interrupts | grep serial”,I find interrupt number has been increasing.But terminal still can not receive keyboard input.

Flow control depends on two wires, plus a setting in your serial console program. The wires are the CTS and RTS wires.

Most serial console programs do not use CTS/RTS unless set up to do so, but some might. Which serial console program do you use? Basically just look for any kind of flow control and make sure CTS/RTS or “hardware” flow control are not enabled as options. In some cases it may list “software” flow control to mean the same as no CTS/RTS.

The two wires supporting flow control, the CTS (“clear to send”) and RTS (“request to send”) wires are described here since a TX1 can use these (TX2 is the same as a TX1, but does not seem to support flow control in the TX2…only half of the communications works on a TX2 if flow control is enabled…exactly as you describe):
https://elinux.org/Jetson/TX1_Serial_Console#Color_Codes_and_Pin_Descriptions_of_the_USB_Serial_UART_Cable

If you have only the three wires connected, and not the five wires, then you already have disabled the hardware side and only the serial console program could have the wrong settings.

I find that most serial UARTs do the right thing if CTS/RTS is connected physically, but disconnected in software. Removing CTS/RTS wires (in addition to software setting) only matters on a few serial UARTs.

I am sure hardware and software flow control is disabled.
I noticed some log like this" To run a command as administrator (user “root”), use "sudo “.” But tx2 boot does not have this message.

If there is activity on the serial console UART, then this will be interpreted as a user typing in a command. Since serial console is logged in as user “nvidia”, you will see a message such as this if the command requires being root:

You must run this program as root or use sudo!

Certain commands already have “sudo” behind them to prevent this (requires a password), but I am wondering if your “sudo” is set up correctly. Do you see any kind of permission error if you run this command?

sudo ls

If this has an error, what is the output of:

ls -l /usr/bin/sudo

The bottom line is that some command was run, either via the serial line or via a boot script, and that command wanted root privileges to execute and did not have root privileges. If sudo is not set up correctly, then there was an issue with how flash was performed and no root command will ever succeed via sudo; if sudo was set up correctly, then the question switches to whether the root-only command arrived via the serial console or via a boot script.

The above ls command with sudo will test the sudo command itself.