硬件:T5000 + 自研载板
软件:R38.2.1
目的是将原来的“usb3-1绑定usb2-0”拆开,改成“usb3-1绑定usb2-2”,做一个“新的typeC”接口,仅保留usb2-0作为烧录口。
问题是,修改似乎不生效,“新的typeC”仍然将3.0的U盘识别成2.0 。
请帮忙看看下面的改动和覆盖的文件是否正确?是否还有其他地方需要修改?谢谢!
另外,从 P4071_A02_OrCAD_schematics(base_version).pdf 中看到(page35, USB Type-C Connector),usb3-1的收发有做一个reverse,我们的自研载板没有做这个reverse,这个是否也需要通过引脚配置来调整一下?如何修改?谢谢!
修改文件:source/hardware/nvidia/t264/nv-public/nv-platform/tegra264-p4071-0000.dtsi 以下3个配置
usb3-1 {
//nvidia,usb2-companion = <0>;
nvidia,usb2-companion = <2>;
status = “okay”;
};
usb@a808670000 {
phys = <&{/bus@0/padctl@a808680000/pads/usb2/lanes/usb2-0}>;
phy-names = “usb2-0”;
status = “okay”;
};
usb@a80aa10000 {
phys = <&{/bus@0/padctl@a808680000/pads/usb2/lanes/usb2-1}>,
<&{/bus@0/padctl@a808680000/pads/usb2/lanes/usb2-2}>,
<&{/bus@0/padctl@a808680000/pads/usb2/lanes/usb2-3}>,
<&{/bus@0/padctl@a808680000/pads/usb3/lanes/usb3-0}>,
<&{/bus@0/padctl@a808680000/pads/usb3/lanes/usb3-1}>,
<&{/bus@0/padctl@a808680000/pads/usb3/lanes/usb3-2}>;
phy-names = “usb2-1”, “usb2-2”, “usb2-3”, “usb3-0”, “usb3-1”, “usb3-2”;
status = “okay”;
};
编译后,更新了3个路径下的 tegra264-p4071-0000+p3834-0008-nv.dtb(rootfs/boot/,kernel/dtb/,bootloader/)
I think the problem here is how did you update the device tree.
If the runtime device tree in /proc/device-tree is not what you expect, then it means issue is related to update method is wrong.
您的意思是不是说我对设备树代码的修改是正确的?我反编译了板子运行时的/sys/firmware/fdt文件,附上源文件和反编译的源码,usb部分的内容和tegra264-p4071-0000.dtsi不是完全一致,我有点拿不准。请帮忙看看是否有问题?谢谢!
另外那个usb3-1收发引脚交换的问题是否会有影响?
fdt.dts.txt (325.3 KB)
fdt.zip (44.5 KB)
更新device tree基本上就是幾個點要確認. 沒什麼太深奧的學問
- 編譯出來的dtb檔案有沒有對? dtc反譯 tegra264-p4071-0000+p3834-0008-nv.dtb之後出來的結果有沒有符合你的預期?
- (1)的結果符合預期之後, /sys/firmware/fdt的內容有沒有對?
如果(2)是錯的, 問題就是
- kernel/dtb有沒有正確的更新到預期要燒錄的dtb?
- flash log上寫出燒錄進去的dtb是不是你改的那個dtb?
- 是不是編譯出來的dtb本來內容就是錯的?
用diff比较了编译出来的和被覆盖的3个路径的tegra264-p4071-0000+p3834-0008-nv.dtb(后附路径),完全相同。该文件反编译出的usb内容和fdt反编译出来的是一致的。
我所说的反编译后和tegra264-p4071-0000.dtsi不完全一致,是fdt反编译后,usb部分多了不少没有出现在tegra264-p4071-0000.dtsi中的内容,我判断不了这些是不是对的。但是,我修改的部分,usb2-0单列,usb3-1绑定usb2-2,这两项确实符合预期。
./rootfs/boot/tegra264-p4071-0000+p3834-0008-nv.dtb
./kernel/dtb/tegra264-p4071-0000+p3834-0008-nv.dtb
./bootloader/tegra264-p4071-0000+p3834-0008-nv.dtb
./source/kernel-devicetree/generic-dts/dtbs/tegra264-p4071-0000+p3834-0008-nv.dtb
附上反编译的tegra264-p4071-0000+p3834-0008-nv.dts.txt,以及刷机的log,其中有多处出现tegra264-p4071-0000+p3834-0008-nv.dtb
tegra264-p4071-0000+p3834-0008-nv.dts.txt (324.7 KB)
m114_flash_usb_20260116_113629.txt (5.5 MB)
如果是多了其他內容但你改的東西都在那就是預期的.
基本上usb DT都要搭配完整線路圖. 所以如果你沒完整附上的話也無法確認你的DT有沒有問題
CORE.pdf (629.0 KB)
FRONT.pdf (110.4 KB)
CORE.pdf是载板usb的线路,我所说的type-C是第一页右下角的“TYPE C”。FRONT.pdf是右边这个窄条的小板。请帮忙查看,谢谢!