Issue with USB 2.0 ports without ucsi_ccg

Hi,

We have an issue with USB2.0 line on custom board for NVidia Xavier 8Gb. Custom board didn’t have ucsi_ccg chip for control USB Id. We use only USB2.0 in host mode.

Our setup include:

  1. 4 lines of USB 2.0 that connected directly from Xavier 8Gb SOC to ports

  2. VBUS for all usb driver by independent power supply(didn’t controlled by Xavier)

  3. USB 3.1 is not in use

Was apply changes in dtsi according to this topic and this guide and i still have the same issues: Xavier didnt recognize any connected USB devices(keyboard, mouse, etc…).

Also, i close the ucsi_ccg driver in kernel config and close i2c node in main dtsi.

Attached dmesg log from target, modified dtsi.

Can you help to us resolve this issue?

Best Regards,

Lobachev Ronen tegra194-power-tree-p2888-0001-p2822-1000.dtsi (4.6 KB) tegra194-p2888-0001-p2822-0000-common.dtsi (8.5 KB) tegra194-cvb-p2822-0000-a00.dtsi (1.4 KB) dmesg.txt (60.9 KB)

Are you really sure the device tree is taking effect?

The log shows

[ 7.080480] Could not get extcon-dev /xhci@3610000:id(0)

HI,
According to guide was closed all nodes wit prefix “extcon-*”. Module of extecon start by default and can’t find this node in .dtsi because i closed them. I dont think it affect USB config because in dtsi i set USB2.0 as host by default and didnt use ID pin for work as OTG.

Could you go to /proc/device-tree/ and check if all the device tree their match your expectation?

HI,

To be sure i close all fields with prefix “extcon-” in all dtsi (under xudc and xhci) and i still have same output. But under /proc/device-tree in nodes of xhci and xudc i still see under extcon-cables-name “id” and “vbus”. I checked that dtsi compiled and download to target. But i still cant understand why under /proc/ i cna see extecon nodes.

Then probably there is something wrong during update dtb.

What is your method to update dtb?

For update only dtb i use next commands:

cd $WORKING_DIR/Linux_for_Tegra/sources/kernel/kernel-4.9
make O=build dtbs
cd $WORKING_DIR/Linux_for_Tegra/sources/kernel/kernel-4.9/build/arch/arm64/boot/dts
cp tegra194-p2888-0001-p2822-0000.dtb $WORKING_DIR/Linux_for_Tegra/kernel/dtb
cd $WORKING_DIR/Linux_for_Tegra
sudo ./flash.sh -r -k DTB jetson-xavier-8gb mmcblk0p1

do you use -r -k kernel-dtb or -k DTB?

-r -k DTB.

Could you use -r -k kernel-dtb to flash?

I have same errors in dmesg. Attacheddmesg.txt (62.8 KB)

Are you able to share the boot log from uart? Want to check the bootloader log.

Full log attached.full_log.txt (73.9 KB)

The dtb is still loaded from partiton. Could you share dts converted from dtb and post here?

I can’t convert dtb to dts with dtc tool. I get error:

ronen@ronen-ThinkPad-T420:~/Elbit_Xavier/Linux_for_Tegra/sources/kernel/kernel-4.9/build/arch/arm64/boot/dts$ dtc -I dts -O dtb -f tegra194-p2888-0001-p2822-0000.dtb -o converted_tegra194-p2888-0001-p2822-0000.dts
Error: tegra194-p2888-0001-p2822-0000.dtb:1.1-2 syntax error
FATAL ERROR: Unable to parse input tree

Attached dtb and dump of dtb via fdtdump tooltegra194-p2888-0001-p2822-0000.dtb (268.7 KB) converted_tegra194-p2888-0001-p2822-0000.txt (541.9 KB)

hmm… Then I don’t quite understand where did this id pin come from. Have you tried full flash? or using FDT entry in extlinux.conf?

Do you customize your boot flow? For example, do you boot the rootfs from other storage?

Regular i use full flash with commands:

cd $WORKING_DIR/Linux_for_Tegra/sources/kernel/kernel-4.9
mkdir build
make mrproper
make O=build mrproper
make O=build tegra_defconfig
make O=build zImage -j4
make O=build dtbs
make O=build modules
cd $WORKING_DIR/Linux_for_Tegra/sources/kernel/kernel-4.9/build/arch/arm64/boot
cp Image $WORKING_DIR/Linux_for_Tegra/kernel
cd $WORKING_DIR/Linux_for_Tegra/sources/kernel/kernel-4.9/build/arch/arm64/boot/dts
cp tegra194-p2888-0001-p2822-0000.dtb $WORKING_DIR/Linux_for_Tegra/kernel/dtb #ronron - agv(xavier)
cd $WORKING_DIR/Linux_for_Tegra
sudo ./flash.sh jetson-xavier-8gb mmcblk0p1

Our BSP based on this sources:
Driver pack
RootFS
Kernel SRC

I use defualt extlinux.conf that arrived with pakage from Jetson Download center. Attachedextlinux.conf (733 Bytes)

ok then I find the cause…

You are using wrong DTB. Xaver 8gb is using below dtb. But not the one you are copying…

DTB_FILE=tegra194-p2888-0006-p2822-0000.dtb

Thank you
I will update my script for flash and test on our board, but in dmesg (after flash via Jetson SDK tool) i see that dtsi file is tegra194-p2888-0001-p2822-0000-common.dtsi. And inside of tegra194-p2888-0006-p2822-0000.dts i see include to tegra194-p2888-0001-p2822-0000-common.dts. And tegra194-p2888-0006-p2822-0000.dts and tegra194-p2888-0006-p2822-common.dtsi not contains “extecon-” fields .

P.S.: I cant test it only on next week. Thank you very much for help.

Best Regards,
Ronen.

This is was a issue in my script. Thank you.

1 Like