TX1 Kernel keeps throwing I2C-3 error during boot-up

We have our own TX1 SOM carrier board, which doesn’t HDMI port. Once the TX1 module puts with carrier board, the same kernel can boot up, however it keeps sending following i2c error. It appears to try to talk to HDMI adapter over I2C-3 device. I tried disable the i2c-3 in device tree file, however it’s causing kernel crash. We’d like to know the method to workaround it, though next step is to remove HDMI in device tree file.

{code} [ 95.125015] tegra-i2c 7000c700.i2c: — register dump for debugging ----
[ 95.131902] tegra-i2c 7000c700.i2c: I2C_CNFG - 0x22c00
[ 95.137456] tegra-i2c 7000c700.i2c: I2C_PACKET_TRANSFER_STATUS - 0x10001
[ 95.145381] tegra-i2c 7000c700.i2c: I2C_FIFO_CONTROL - 0xe0
[ 95.150980] tegra-i2c 7000c700.i2c: I2C_FIFO_STATUS - 0x800040
[ 95.156867] tegra-i2c 7000c700.i2c: I2C_INT_MASK - 0xed
[ 95.162098] tegra-i2c 7000c700.i2c: I2C_INT_STATUS - 0x0
[ 95.167573] tegra-i2c 7000c700.i2c: msg->len - 1
[ 95.172299] tegra-i2c 7000c700.i2c: is_msg_write - 1
[ 95.177394] tegra-i2c 7000c700.i2c: next_msg->len - 128
[ 95.184216] tegra-i2c 7000c700.i2c: is_next_msg_write - 0
[ 95.189623] tegra-i2c 7000c700.i2c: buf_remaining - 128
[ 95.194982] tegra-i2c 7000c700.i2c: i2c transfer timed out, addr 0x0050, data 0x00
{code}

Hello, TKAI:
Would you please try to disable CONFIG_TEGRA_HDMI2_0 in kernel config and re-compile kernel?
it will disable HDMI module.

br
ChenJian

Thanks ChenJian,

Actually we just disable the ‘hdmi-display’ in device tree file (dtbs) and the problem is gone away.
Removing it from config file sounds a good idea too.

The ideal solution should be in source code driver file, where it should not keep throwing so many warning, but a few is acceptable.

Thanks.

I tried as you suggested and got a kernel panic from the tegra_dc debugfs init code:

[    5.214161] tsec tsec: initialized
[    5.216907] tsec tsecb: initialized
[    5.221406] nvdec nvdec: initialized
[    5.226404] falcon vic03: initialized
[    5.229819] falcon msenc: initialized
[    5.233159] falcon nvjpg: initialized
[    5.236868] tegradc tegradc.1: Display dc.54240000 registered with id=0
[    5.242097] display board info: id 0x0, fab 0x0
[    5.246946] panel_select fail by _node_status
[    5.250856] display board info: id 0x0, fab 0x0
[    5.255632] panel_select fail by _node_status
[    5.259637] parse_tmds_config: No tmds-config node
[    5.264530] of_dc_parse_platform_data: could not find vrr-settings node
[    5.271004] of_dc_parse_platform_data: could not find SD settings node
[    5.277618] of_dc_parse_platform_data: could not find cmu node
[    5.283291] of_dc_parse_platform_data: could not find cmu node for adobeRGB
[    5.290256] tegradc tegradc.1: DT parsed successfully
[    5.295530] hdmi: couldn't get regulator vdd_hdmi_5v0
[    5.301125] Unable to handle kernel NULL pointer dereference at virtual address 00000018
[    5.308364] pgd = ffffffc00007d000
[    5.311713] [00000018] *pgd=000000017fc06003, *pmd=000000017fc07003, *pte=00e0000050041407
[    5.319946] Internal error: Oops: 96000005 [#1] PREEMPT SMP
[    5.325494] Enter nvdumper_crash_setup_regs
[    5.329663] nvdumper: all registers are saved.
[    5.329666] nvdumper: all registers are saved.
[    5.329670] nvdumper: all registers are saved.
[    5.342910] nvdumper: all registers are saved.
[    5.347332] Modules linked in:
[    5.350365] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.10.67-gbaaa7aa-dirty #2
[    5.357650] task: ffffffc0ffda0000 ti: ffffffc0ffd9c000 task.ti: ffffffc0ffd9c000
[    5.365112] PC is at tegra_dc_create_debugfs+0x130/0x250
[    5.370386] LR is at tegra_dc_create_debugfs+0x128/0x250
[    5.375673] pc : [<ffffffc0003a9eb8>] lr : [<ffffffc0003a9eb0>] pstate: 20000105
[    5.383040] sp : ffffffc0ffd9fab0
[    5.386330] x29: ffffffc0ffd9fab0 x28: ffffffc0fef933e0
[    5.391613] x27: 000000000000006a x26: ffffffc0fef93410
[    5.396899] x25: ffffffc0fef89d40 x24: 0000000000000000
[    5.402185] x23: 0000000000000000 x22: ffffffc0ff1bc810
[    5.407472] x21: ffffffc03ff17578 x20: ffffffc0ff1bc800
[    5.412758] x19: ffffffc0fef90000 x18: 0000000000000c7f
[    5.418045] x17: 00000000000018ff x16: 0000000000000064
[    5.423332] x15: 0000000000000069 x14: 0000000000000064
[    5.428618] x13: 0000000000000065 x12: 000000000000005f
[    5.433905] x11: 0000000000000074 x10: 0000000000000075
[    5.439192] x9 : 000000000000006f x8 : 0000000000000004
[    5.444479] x7 : 0000000000008124 x6 : ffffffc0fef90000
[    5.449765] x5 : 0000000000000000 x4 : ffffffc0ffbf56f8
[    5.455051] x3 : ffffffc0ffd9f9f0 x2 : 0000000000000000
[    5.460338] x1 : 0000000000000001 x0 : 0000000000000000
ubuntu@ubuntu-VirtualBox:~/jetpack/TX1/Linux_for_Tegra_tx1/sources/kernel_source$ /opt/linaro/gcc-linaro-5.3-2016.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-addr2line -e vmlinux ffffffc0003a9eb8
/home/ubuntu/jetpack/TX1/Linux_for_Tegra_tx1/sources/kernel_source/drivers/video/tegra/dc/dc.c:1700
ubuntu@ubuntu-VirtualBox:~/jetpack/TX1/Linux_for_Tegra_tx1/sources/kernel_source$ git rev-parse HEAD
baaa7aad03a9a49fb86f5f58c783920b906b0ee2

Hello, NaterGator:
For different version BSP, there are dependencies among modules.

It’s not a good way to just disable the HDMI 2.0 module.
If you suffers HDMI i2c error message flood, you may check the code @ drivers/video/tegra/dc/hdmi2.0.c

br
Chenjian

@jachen I also disabled the entire intel HDA stack in the kernel. Nonetheless I found the kernel would still probe over I2C unless I disabled hdmi-display in the device tree like TKAI specified.

Just noting it for future people who design a board with HDMI; removing CONFIG_TEGRA_HDMI2_0 is probably not what you want to do.

Removing hdmi-display in device tree worked for me as well. We are creating our own carrier board without HDMI. For future people on a TX1 I modified the file located here:

%kernel_source%/arch/arm64/boot/dts/tegra210-platforms/tegra210-ers-hdmi-e2190-1100-a00.dtsi

and set status = “disabled” here:

hdmi-display {
                                status = "disabled";
                                compatible = "hdmi,display";

Hi there

we are building our own carrier and want to use the HDMI video output but we got the following message:

hdmi: couldn’t get regulator vdd_hdmi_5v0: -517

Do you know what is missing?