Change the device tree for DisplayPort on DP1?

Good idea with: dtc -I dts -O dtb tegra210-p3448-0000-p3449-0000-b00.dtb> output.txt

But then I get a:
Error: tegra210-p3448-0000-p3449-0000-b00.dtb:1.1-2 syntax error FATAL ERROR: Unable to parse input tree

No I have not

I build my sd-blob.img for Jetson-210_Linux with:

  1. Changed the file tegra210-porg-p3448-common.dtsi (see above) in the sources
    Sources/Linux_for_Tegra/source/public/kernel/kernel-4.9/arch/arm64/boot/dts/

  2. Rebuild the device tree image:
    cd <src_path>/kernel/kernel-4.9/
    make ARCH=arm64 tegra_defconfig
    make ARCH=arm64 dtbs

  3. And after that I copy the updated device tree image to the L4T (Jetson-210_Linux_R32.5.1_aarch64) release tree:
    arch/arm64/boot/dts/tegra210-p3448–p3449-0000-*.dtb → path-to Linux_for_Tegra/kernel/dtb/

  4. For the root Filesystem, i use the sample root filesystem from drivers → Sample Root Filesystem:
    https://developer.nvidia.com/embedded/linux-tegra
    I copy this to: Jetson-210_Linux_R32.5.1_aarch64/Linux_for_Tegra/rootfs
    Readme → Download and extract the sample filesystem to this directory.

  5. then I create the image
    sudo ./jetson-disk-image-creator.sh -o sd-blob.img -b jetson-nano -r 300

  6. And then I flash and boot the target device.

I think I am doing something wrong here?

Sorry, my fault again, please reverse the input output format in command.

dtc -I dtb -O dts tegra210-p3448-0000-p3449-0000-b00.dtb> output.txt

And my other suggestion is still… you shall stop using sd card image creator for now. We really no need to use that at this moment.
And you can try to use pure jetpack from sdkmanager first. It will download a Linux_For_Tegra folder with everything prepared well.

With that package, we can focus on the DP issue.

now it worked :-)

output.txt (332.2 KB)

This is a good idea :-)

Your hdmi-display under sor1 is not disabled.

hdmi-display {
compatible = “hdmi,display”;
status = “okay”;

Okay, this is not good. I can not understand the problem yet ?
I am changing the file: tegra210-porg-p3448-common.dtsi ?

I am now working with the sdkmanager.

If you are not sure where it gets enabled, write another one to disable it in tegra210-porg-p3448-common.dtsi.

There is news :-)

The OEM config works! it works better with the SDK manager :-)

output_2021-04-07_13-02-29.log (21.3 KB)

The .log also looks much better “not panic” and
[ 13.113038] Please complete system configuration setup on the serial port provided by Jetson’s USB device mode connection. e.g. /dev/ttyACMx where x can 0, 1, 2 etc. is also good

I have managed turn off hdmi.
HDMI had to disabled in the “egra210-ers-hdmi-e2190-1100-a00.dtsi” file

output.txt (326.8 KB)

Unfortunately I still can not see a picture on DP?

So are you able to login and dump dmesg now?

Yes, I can.
Here is the dmesg log:

dmesg_output_2021-04-07_13-27-39.log (62.1 KB)

Hi,

There is one more place to modify.

The “nvidia,active-panel” in sor1 has to be changed to &sor1_dp_display too.

Hi,

now DP runs for about 20s ??? after that the screen is black again…

i still get i2c i still have i2c problems:

[ 159.608216] tegra-i2c 7000c700.i2c: — register dump for debugging ----
[ 159.615204] tegra-i2c 7000c700.i2c: I2C_CNFG - 0x22c00
[ 159.620458] tegra-i2c 7000c700.i2c: I2C_PACKET_TRANSFER_STATUS - 0x10001
[ 159.627258] tegra-i2c 7000c700.i2c: I2C_FIFO_CONTROL - 0x1c
[ 159.632910] tegra-i2c 7000c700.i2c: I2C_FIFO_STATUS - 0x800040
[ 159.638826] tegra-i2c 7000c700.i2c: I2C_INT_MASK - 0x6c
[ 159.644131] tegra-i2c 7000c700.i2c: I2C_INT_STATUS - 0x2
[ 159.649578] tegra-i2c 7000c700.i2c: i2c transfer timed out addr: 0x50
[ 159.659956] tegradc tegradc.0: hdmi: edid read failed

i still need to turn off i2c???

Can you tell me, as I do with ./flash.sh can only replace the new .dtb file?
I can not do it :-)

Thanks a lot!!!

I don’t get why hdmi is still there. Could you go to /proc/device-tree on your device and check if those files are really those you modify in dts?

Sorry, I don’t get what you want to ask in this line.

If you are saying that you want to update dtb only, then you can try this command.

Replace the dtb file at Linux_for_Tegra/kernel/dtb/ then issue below command to update the dtb partition.

sudo ./flash.sh -r -k DTB your_board_name mmcblk0p1

I think you are right.
in the /proc/device-tree I get with:

cat nvidia,dtbbuildtime
Feb 19 2021 08:42:41

That is wrong :-(

Exactly what I meant, sorry :-)

With this I now have the new .dtb file updated.
hdmi messages are no longer displayed, perfect.
Thank you :-)

The screen still remains black, but i check my .dtb file

dmesg shows me still:

[ 1.068632] tegradc tegradc.0: disp0 connected to head0->/host1x/sor1
[ 1.068782] tegradc tegradc.0: mandatory property disp-default-out not found
[ 1.068815] tegradc tegradc.0: err:-19 parsing out_type

I have learned a lot :-)

Hello,

This part is missing. Please check hardware/nvidia/platform/t210/common/kernel-dts/t210-common-platforms/tegra210-dp.dtsi

and add those missing to your sor1 dp-display.

Also, for nvidia,out-parent-clk = “pll_d_out0”, change it to “pll_d2” first.

Hello,
great, I have tegra210-dp.dtsi changed!

This is now my current .dtb file

output.txt (326.8 KB)

looks good, right?

Now I receive the output via dmesg:

[ 1.061509] tegradc tegradc.0: disp0 connected to head0->/host1x/sor1
[ 1.061600] display board info: id 0x0, fab 0x0
[ 1.061683] tegradc tegradc.0: No lt-data, using default setting
[ 1.061736] tegra_cec 70015000.tegra_cec: cec_add_sysfs ret=0
[ 1.061742] tegra_cec 70015000.tegra_cec: probed
[ 1.061787] tegradc tegradc.0: DT parsed successfully
[ 1.061838] tegradc tegradc.0: Display dc.ffffff800ab80000 registered with id=0
[ 1.569879] Host read timeout at address 540400c4
[ 1.571867] tegradc tegradc.0: probed
[ 1.571876] tegra-apbdma 60020000.dma: Tegra20 APB DMA driver register 32 channels
[ 1.572566] Console: switching to colour frame buffer device 80x30
[ 1.572599] tegradc tegradc.0: fb registered
[ 1.575961] hpd: state 7 (Takeover from bootloader), hpd 0, pending_hpd_evt 1
[ 1.575970] hpd: switching from state 7 (Takeover from bootloader) to state 0 (Reset)
[ 1.575979] hpd: state 0 (Reset), hpd 0, pending_hpd_evt 0
[ 1.575997] tegradc tegradc.0: blank - powerdown
[ 1.576072] extcon-disp-state extcon:disp-state: cable 44 state 0 already set.
[ 1.576078] Extcon DP: HPD disabled
[ 1.576083] hpd: hpd_switch 0
[ 1.576087] hpd: switching from state 0 (Reset) to state 1 (Check Plug)
[ 1.576098] hpd: state 1 (Check Plug), hpd 0, pending_hpd_evt 0
[ 1.576105] hpd: switching from state 1 (Check Plug) to state 3 (Disabled)

I use an passive HDMI to Displayport adapter!
I think that is the problem?

I’m going to the company now, and get me a screen with DisplayPort

Please use a native DP monitor.

I have now used a native DP monitor.

But still dmesg log:

[ 1.066423] display board info: id 0x0, fab 0x0
[ 1.066528] tegradc tegradc.0: No lt-data, using default setting
[ 1.066626] tegradc tegradc.0: DT parsed successfully
[ 1.066668] tegradc tegradc.0: Display dc.ffffff800ab80000 registered with id=0
[ 1.073804] tegra-apbdma 60020000.dma: Tegra20 APB DMA driver register 32 channels
[ 1.574598] Host read timeout at address 540400c4
[ 1.576676] tegradc tegradc.0: probed
[ 1.577467] Console: switching to colour frame buffer device 80x30
[ 1.577505] tegradc tegradc.0: fb registered
[ 1.580205] tegra-adma 702e2000.adma: Tegra210 ADMA driver registered 22 channels
[ 1.581000] tegra-fuse-burn 7000f800.efuse:efuse-burn: shutdown limit check disabled
[ 1.581007] tegra-fuse-burn 7000f800.efuse:efuse-burn: Fuse burn driver initialized
[ 1.581263] hpd: state 7 (Takeover from bootloader), hpd 0, pending_hpd_evt 1
[ 1.581270] hpd: switching from state 7 (Takeover from bootloader) to state 0 (Reset)
[ 1.581280] hpd: state 0 (Reset), hpd 0, pending_hpd_evt 0
[ 1.581294] tegradc tegradc.0: blank - powerdown
[ 1.581315] kfuse 7000fc00.kfuse: initialized
[ 1.581369] extcon-disp-state extcon:disp-state: cable 44 state 0 already set.
[ 1.581375] Extcon DP: HPD disabled
[ 1.581379] hpd: hpd_switch 0
[ 1.581384] hpd: switching from state 0 (Reset) to state 1 (Check Plug)
[ 1.581394] hpd: state 1 (Check Plug), hpd 0, pending_hpd_evt 0
[ 1.581401] hpd: switching from state 1 (Check Plug) to state 3 (Disabled)

output_2021-04-08_13-30-24.log (71.7 KB)

Is that the problem:
nvidia,hpd-gpio = <&gpio TEGRA_GPIO(CC, 1) 1>; /* PN7 */

I use:
hdmi_int_dp_hpd_pcc1 {
nvidia,pins = “hdmi_int_dp_hpd_pcc1”;
nvidia,function = “dp”;
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
nvidia,enable-input = <TEGRA_PIN_ENABLE>;
nvidia,io-high-voltage = <TEGRA_PIN_DISABLE>;
};

The hpd hardware is okay! I measure a 1.8V level on DP1_HPD ,when DisplayPort is contacted.