PMIC change to remove 5V0_HDMI_EN and enable hdmi display on custom carrier board

JetPack 3.1, 28.1
Jetson TX2
Custom carrier board.

I’m trying to get hdmi to work on a custom carrier board and it seems like it is a configuration problem because I’m able to see edid data, I can vnc into the custom board and see the display properties in the GUI both when I start with the hdmi cable plugged in and the properties change if I unplug the hdmi cable and plug in a different monitor’s hdmi cable. And the data reflected in the properties are correct for the monitor that is plugged in. Both hdmi monitors are verified to work when plugged into the devkit carrier board. Other peripherals work. i.e. usb, ethernet, otg.

I’m reading the Platform Adaptation and Bring-Up Guide and the section on the PMIC Changes suggest that I modify tegra186-mb1-bct-pmic-quill-p3310-1000-c04.cfg. The file is found in two places but one is the result of the flash.sh running pmic_config. The one I changed is found here: bootloader/t186ref/BCT/tegra186-mb1-bct-pmic-quill-p3310-1000-c04.cfg

I changed pmic.generic.1.block-count = 4; (it used to be 5) and put # in front of the lines in the 5V0_HDMI_EN block as shown below.
########### GENRIC RAIL for baseboard-specific configurations

This section is specific to the Jetson developer kit baseboard (P2597).

The below configuration should be removed or modified per the requirements of the

baseboard used. Refer to product documentation for additional information.

Baseboard: P2597: Expander: 5V0_HDMI_EN

pmic.generic.1.block[4].type = 1; # I2C Type

pmic.generic.1.block[4].i2c-controller-id = 0;

pmic.generic.1.block[4].slave-add = 0xE8; # 7BIt:0x74

pmic.generic.1.block[4].reg-data-size = 8;

pmic.generic.1.block[4].reg-add-size = 8;

pmic.generic.1.block[4].block-delay = 10;

pmic.generic.1.block[4].count = 2;

pmic.generic.1.block[4].commands[0].0x07.0xFF = 0xEF;

pmic.generic.1.block[4].commands[1].0x03.0xFF = 0x10;

Question 1: Is there a script that needs to run beyond flashing again to convert this to another format? I used this to flash: sudo ./flash.sh jetson-tx2 mmcblk0p1 to just flash everything.

Question 2: How I can confirm that the change I made by putting a comment # in front of the

Question 3: In the log I see this and think it is related to hdmi trying to configure the gpio expander?
nvidia@tegra-ubuntu:~$ dmesg | grep 0x74
[ 0.300370] tegra-i2c 3160000.i2c: no acknowledge from address 0x74
If it is, I would have thought the PMIC change would impact this and not have it error out.

Question 4: Is there another item I should be looking for in the logs or elsewhere?

Question 5: What other areas should I be looking at that I haven’t thought about yet?

Some debug info:
attempting to switch to another window from keyboard using ctrl-alt-F1 produces this on the serial console but no display on the hdmi screen:
[ 2131.413865] PD DISP2 index4 DOWN
[ 2131.414061] PD DISP1 index3 DOWN
[ 2131.414151] PD DISP0 index2 DOWN
[ 2131.498994] PD DISP0 index2 UP
[ 2131.499918] PD DISP1 index3 UP
[ 2131.500009] PD DISP2 index4 UP
[ 2131.501759] Parent Clock set for DC plld2
[ 2131.503246] tegradc 15210000.nvdisplay: hdmi: pclk:148500K, set prod-setting:prod_c_150M

Then pressing ctrl-alt-F7 outputs this on the serial console but again no display on the hdmi screen:
nvidia@tegra-ubuntu:~$ [ 2262.895397] PD DISP2 index4 DOWN
[ 2262.895572] PD DISP1 index3 DOWN
[ 2262.895652] PD DISP0 index2 DOWN
[ 2262.906155] PD DISP0 index2 UP
[ 2262.907033] PD DISP1 index3 UP
[ 2262.907123] PD DISP2 index4 UP
[ 2262.908724] Parent Clock set for DC plld2
[ 2262.910139] tegradc 15210000.nvdisplay: hdmi: pclk:148500K, set prod-setting:prod_c_150M

nvidia@tegra-ubuntu:~$ sudo cat /sys/class/graphics/fb0/mode
U:1920x1080p-60

nvidia@tegra-ubuntu:~$ sudo cat /sys/kernel/debug/tegradc.0/mode
pclk: 148500000
h_ref_to_sync: 1
v_ref_to_sync: 3
h_sync_width: 44
v_sync_width: 5
h_back_porch: 148
v_back_porch: 36
h_active: 1920
v_active: 1080
h_front_porch: 88
v_front_porch: 4
flags: 0x0
stereo_mode: 0
avi_m: 0x2
vmode: 0x600000

nvidia@tegra-ubuntu:~$ dmesg |grep tegradc
[ 0.443528] tegradc 15210000.nvdisplay: DT parsed successfully
[ 0.443570] tegradc 15210000.nvdisplay: Display dc.ffffff8002320000 registered with id=0
[ 0.451013] tegradc 15210000.nvdisplay: vblank syncpt # 7 for dc 1
[ 0.451027] tegradc 15210000.nvdisplay: vpulse3 syncpt # 8 for dc 1
[ 0.451362] tegradc 15210000.nvdisplay: hdmi: smccuen hmdi fix applied (HPD polarity inversion)
[ 0.453451] tegradc 15210000.nvdisplay: hdmi: no prod_list_hdmi_board, use default range
[ 0.483199] tegradc 15210000.nvdisplay: probed
[ 4.128407] tegradc 15210000.nvdisplay: fb registered
[ 4.165849] tegradc 15210000.nvdisplay: hdmi: pclk:148500K, set prod-setting:prod_c_150M
[ 12.090046] tegradc 15210000.nvdisplay: hdmi: plugged
[ 17.866492] tegradc 15210000.nvdisplay: hdmi: pclk:148500K, set prod-setting:prod_c_150M
[ 22.256486] tegradc 15210000.nvdisplay: hdmi: pclk:148500K, set prod-setting:prod_c_150M
[ 2225.746781] tegradc 15210000.nvdisplay: hdmi: pclk:148500K, set prod-setting:prod_c_150M
[ 2225.956444] tegradc 15210000.nvdisplay: hdmi: pclk:148500K, set prod-setting:prod_c_150M
[ 2413.933713] tegradc 15210000.nvdisplay: hdmi: pclk:148500K, set prod-setting:prod_c_150M
[ 2418.890650] tegradc 15210000.nvdisplay: hdmi: pclk:148500K, set prod-setting:prod_c_150M
[ 3469.360041] tegradc 15210000.nvdisplay: hdmi: pclk:148500K, set prod-setting:prod_c_150M
[ 3469.551122] tegradc 15210000.nvdisplay: hdmi: pclk:148500K, set prod-setting:prod_c_150M
[ 3470.002290] tegradc 15210000.nvdisplay: hdmi: pclk:148500K, set prod-setting:prod_c_150M
[ 3488.142516] tegradc 15210000.nvdisplay: hdmi: pclk:148500K, set prod-setting:prod_c_150M

nvidia@tegra-ubuntu:~$ sudo cat /sys/kernel/debug/tegradc.0/stats
underflows: 0
underflows_a: 0
underflows_b: 0
underflows_c: 0
underflows_d: 0
underflows_h: 0
underflows_t: 0
underflow_frames: 0

var-log-Xorg.0.log.txt (18.3 KB)
tegradc.0-edid.txt (798 Bytes)
dmesg-log.txt (56.1 KB)

Hi smccuen,

I wonder “tegra186-mb1-bct-pmic-quill-p3310-1000-c04.cfg” is the correct one or not. You can see the flash log and find it does not use c04. You could try c03.cfg.

We have a guidance of how to generate PMIC config from dtsi. Please refer to L4T document “TX2 Configuring Pinmux GPIO and PAD”.

https://developer.nvidia.com/embedded/dlc/l4t-documentation-28-2-ga

I would have thought that since ‘tegra186-mb1-bct-pmic-quill-p3310-1000-c04.cfg’ is what is in the Platform Adaptation and Bring-Up Guide" pdf for the past several version of the pdf that was the one to use. It is also being called out in the flash log that I captured and attached to this post by the line that follows, right?

copying pmic_config(/home/flexforce/JetPack-L4T-3.1/64_TX2/Linux_for_Tegra_tx2/bootloader/t186ref/BCT/tegra186-mb1-bct-pmic-quill-p3310-1000-c04.cfg)... done.

20180325-flashcmd.txt (246 KB)

Not sure what is going on to your jetpack. Have you modified the config or something else?

This one is from my jetapck3.1

copying pmic_config(/home/waywang/Documents/JetPack3.1/64_TX2/Linux_for_Tegra_tx2/bootloader/t186ref/BCT/tegra186-mb1-bct-pmic-quill-p3310-1000-c03.cfg)... done.

Also, the common way to modify this cfg file is through the pinmux speardsheet.
http://developer.nvidia.com/embedded/dlc/jetson-tx2-module-pinmux

I retried and used a fresh JetPack 3.1 install to a TX2 devkit and for the pmic it is still using the -c04 file for the pmic as shown below. I programmed the devkit tx2 using first the using the GUI ./JetPack-L4T-3.1-linux-x64.run method and then again using command line:

sudo ./flash.sh jetson-tx2 mmcblk0p1 | tee myflashoutput.txt

This is from the .txt file above.

copying pmic_config(/home/flexforce/jetpack-3.1/64_TX2/Linux_for_Tegra_tx2/bootloader/t186ref/BCT/tegra186-mb1-bct-pmic-quill-p3310-1000-c04.cfg)... done.

The pinmux uses a -c03 version but not the pmic?

copying pinmux_config(/home/flexforce/jetpack-3.1/64_TX2/Linux_for_Tegra_tx2/bootloader/t186ref/BCT/tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg)... done.

How can this be. Where is your log info coming from that it might be different from what I generate with a default JetPack 3.1 install?

I am not sure the cause. What would happen if delete the c04.cfg?

Found the problem. Ended up being a hardware issue. Once that was fixed, the changes I had done previously to the software worked straight up.