赞
踩
TX2新烧完系统之后,默认只有一个USB3.0口使能了,实际上TX2最多可以使能3个USB3.0口,在TX2的design guide中,可以找到相应的配置说明,见下图。
TX2默认的配置为配置2,只使能了USB_SS#0。为了使能3个USB3.0口,需要将USB配置为配置4。
配置的前提是你的上位机上已经安装了JetPack。并且你已经掌握了TX2编译内核和DTB的方法,以及烧写DTB的方法。如果还不会的同学,可以查阅相关资料,或者参考我的其它帖子。
首先需要进入 ../jetpack/64_TX2/Linux_for_Tegra文件夹,打开这个文件夹下的p2771-0000.conf.common文件,将这个文件中的ODMDATA的值修改为0x7090000,如下图所示,这个设置将USB配置为配置4。
修改完配置之后,就需要修改TX2的设备树DTB。需要修改TX2内核源码,并重新生成DTB文件,再将DTB文件烧写到TX2中。需要修改的内容如下:
1、首先要修改源码中的hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-plugin-manager/ tegra186-quill-p3310-1000-a00-plugin-manager.dtsi 文件中的内容。将这个文件中与下面三段相关的内容注释掉
fragment-500-pcie-config
fragment-500-xusb-config
fragment-500-e3325-pcie
如下所示:
- /*fragment-500-pcie-config {
- ids = ">=3310-1000-500";
- override@0 {
- target = <&tegra_pcie>;
- _overlay_ {
- pci@1,0 {
- nvidia,num-lanes = <4>;
- };
- pci@2,0 {
- nvidia,num-lanes = <0>;
- };
- pci@3,0 {
- nvidia,num-lanes = <1>;
- };
- };
- };
- };*/
-
- /*fragment-500-xusb-config {
- ids = ">=3310-1000-500";
- override@0 {
- target = <&{/xhci@3530000}>;
- _overlay_ {
- phys = <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(0)>,
- <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(1)>,
- <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(2)>,
- <&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(0)>;
- phy-names = "utmi-0", "utmi-1", "utmi-2", "usb3-0";
- };
- };
- override@1 {
- target = <&tegra_xusb_padctl_pinmux_default>;
- _overlay_ {
- usb3-std-A-port2 {
- nvidia,lanes = "usb3-0";
- };
- e3325-usb3-std-A-HS {
- status = "okay";
- };
- };
- };
- };*/
-
- /*fragment-500-e3325-pcie {
- enable-override-on-all-matches;
- ids = ">=3310-1000-500";
- odm-data = "enable-pcie-on-uphy-lane0";
- override@0 {
- target = <&{/xhci@3530000}>;
- _overlay_ {
- phys = <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(0)>,
- <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(1)>,
- <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(2)>;
- phy-names = "utmi-0", "utmi-1", "utmi-2";
- };
- };
- override@1 {
- target = <&tegra_xusb_padctl_pinmux_default>;
- _overlay_ {
- usb3-std-A-port2 {
- status = "disabled";
- };
- };
- };
-
- override@2 {
- target = <&tegra_main_gpio>;
- _overlay_ {
- pcie0_lane2_mux {
- status = "okay";
- };
- };
- };
- };*/
2、另外需要修改hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c03-00-base.dts文件中的内容,修改如下:
- xudc@3550000 {
- status = "okay";
- phys = <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(1)>,
- <&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(0)>;
- phy-names = "usb2", "usb3";
- };
- pcie-controller@10003000 {
- pci@1,0 {
- nvidia,num-lanes = <1>;
- nvidia,disable-clock-request;
- status = "okay";
- };
- pci@2,0 {
- nvidia,num-lanes = <1>;
- status = "okay";
- };
- pci@3,0 {
- nvidia,num-lanes = <1>;
- status = "disabled";
- };
- };
- xhci@3530000 {
- phys = <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(0)>,
- <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(1)>,
- <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(2)>,
- <&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(0)>,
- <&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(1)>
- <&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(2)>;
- phy-names = "utmi-0", "utmi-1","utmi-2", "usb3-0", "usb3-1", "usb3-2";
- };
- pinctrl@3520000 {
- pinmux {
- usb2-micro {
- nvidia,lanes = "otg-0";
- nvidia,function = "xusb";
- nvidia,port-cap = <TEGRA_PADCTL_PORT_OTG_CAP>;
- };
- usb2-1 {
- nvidia,lanes = "otg-1";
- nvidia,function = "xusb";
- nvidia,port-cap = <TEGRA_PADCTL_PORT_HOST_ONLY>;
- };
- usb2-2 {
- nvidia,lanes = "otg-2";
- nvidia,function = "xusb";
- nvidia,port-cap = <TEGRA_PADCTL_PORT_HOST_ONLY>;
- };
- usb3-std-A-port2 {
- nvidia,lanes = "usb3-0";
- nvidia,port-cap = <TEGRA_PADCTL_PORT_HOST_ONLY>;
- status = "okay";
- };
- usb3-std-A-port3 {
- nvidia,lanes = "usb3-2";
- nvidia,port-cap = <TEGRA_PADCTL_PORT_HOST_ONLY>;
- status = "okay";
- };
- usb3-std-A-port4 {
- nvidia,lanes = "usb3-1";
- nvidia,port-cap = <TEGRA_PADCTL_PORT_HOST_ONLY>;
- status = "okay";
- };
- };
- };
3、接下来需要修改hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-platforms/tegra186-quill-power-tree-p3310-1000-a00-00.dtsi文件中的内容。将vbus-2-supply = <&vdd_usb2_5v>;修改为vbus-2-supply = <&battery_reg>;如下所示:
- pinctrl@3520000 {
- vbus-0-supply = <&vdd_usb0_5v>;
- vbus-1-supply = <&vdd_usb1_5v>;
- vbus-2-supply = <&battery_reg>;
- vbus-3-supply = <&battery_reg>;
- vddio-hsic-supply = <&battery_reg>;
- avdd_usb-supply = <&spmic_sd3>;
- vclamp_usb-supply = <&spmic_sd2>;
- avdd_pll_erefeut-supply = <&spmic_sd2>;
- };
修改完以上内容之后,重新编译内核和DTB,将生成的DTB文件烧写到TX2中,重新启动TX2,三个USB3.0口就可以完美运行了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。