当前位置:   article > 正文

如何开启英伟达TX2的所有USB3.0口_英伟达留了几个usb3.0的口

英伟达留了几个usb3.0的口

    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

如下所示:

  1. /*fragment-500-pcie-config {
  2. ids = ">=3310-1000-500";
  3. override@0 {
  4. target = <&tegra_pcie>;
  5. _overlay_ {
  6. pci@1,0 {
  7. nvidia,num-lanes = <4>;
  8. };
  9. pci@2,0 {
  10. nvidia,num-lanes = <0>;
  11. };
  12. pci@3,0 {
  13. nvidia,num-lanes = <1>;
  14. };
  15. };
  16. };
  17. };*/
  18. /*fragment-500-xusb-config {
  19. ids = ">=3310-1000-500";
  20. override@0 {
  21. target = <&{/xhci@3530000}>;
  22. _overlay_ {
  23. phys = <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(0)>,
  24. <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(1)>,
  25. <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(2)>,
  26. <&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(0)>;
  27. phy-names = "utmi-0", "utmi-1", "utmi-2", "usb3-0";
  28. };
  29. };
  30. override@1 {
  31. target = <&tegra_xusb_padctl_pinmux_default>;
  32. _overlay_ {
  33. usb3-std-A-port2 {
  34. nvidia,lanes = "usb3-0";
  35. };
  36. e3325-usb3-std-A-HS {
  37. status = "okay";
  38. };
  39. };
  40. };
  41. };*/
  42. /*fragment-500-e3325-pcie {
  43. enable-override-on-all-matches;
  44. ids = ">=3310-1000-500";
  45. odm-data = "enable-pcie-on-uphy-lane0";
  46. override@0 {
  47. target = <&{/xhci@3530000}>;
  48. _overlay_ {
  49. phys = <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(0)>,
  50. <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(1)>,
  51. <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(2)>;
  52. phy-names = "utmi-0", "utmi-1", "utmi-2";
  53. };
  54. };
  55. override@1 {
  56. target = <&tegra_xusb_padctl_pinmux_default>;
  57. _overlay_ {
  58. usb3-std-A-port2 {
  59. status = "disabled";
  60. };
  61. };
  62. };
  63. override@2 {
  64. target = <&tegra_main_gpio>;
  65. _overlay_ {
  66. pcie0_lane2_mux {
  67. status = "okay";
  68. };
  69. };
  70. };
  71. };*/

2、另外需要修改hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c03-00-base.dts文件中的内容,修改如下:

  1. xudc@3550000 {
  2. status = "okay";
  3. phys = <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(1)>,
  4. <&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(0)>;
  5. phy-names = "usb2", "usb3";
  6. };
  7. pcie-controller@10003000 {
  8. pci@1,0 {
  9. nvidia,num-lanes = <1>;
  10. nvidia,disable-clock-request;
  11. status = "okay";
  12. };
  13. pci@2,0 {
  14. nvidia,num-lanes = <1>;
  15. status = "okay";
  16. };
  17. pci@3,0 {
  18. nvidia,num-lanes = <1>;
  19. status = "disabled";
  20. };
  21. };
  22. xhci@3530000 {
  23. phys = <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(0)>,
  24. <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(1)>,
  25. <&tegra_xusb_padctl TEGRA_PADCTL_PHY_UTMI_P(2)>,
  26. <&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(0)>,
  27. <&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(1)>
  28. <&tegra_xusb_padctl TEGRA_PADCTL_PHY_USB3_P(2)>;
  29. phy-names = "utmi-0", "utmi-1","utmi-2", "usb3-0", "usb3-1", "usb3-2";
  30. };
  31. pinctrl@3520000 {
  32. pinmux {
  33. usb2-micro {
  34. nvidia,lanes = "otg-0";
  35. nvidia,function = "xusb";
  36. nvidia,port-cap = <TEGRA_PADCTL_PORT_OTG_CAP>;
  37. };
  38. usb2-1 {
  39. nvidia,lanes = "otg-1";
  40. nvidia,function = "xusb";
  41. nvidia,port-cap = <TEGRA_PADCTL_PORT_HOST_ONLY>;
  42. };
  43. usb2-2 {
  44. nvidia,lanes = "otg-2";
  45. nvidia,function = "xusb";
  46. nvidia,port-cap = <TEGRA_PADCTL_PORT_HOST_ONLY>;
  47. };
  48. usb3-std-A-port2 {
  49. nvidia,lanes = "usb3-0";
  50. nvidia,port-cap = <TEGRA_PADCTL_PORT_HOST_ONLY>;
  51. status = "okay";
  52. };
  53. usb3-std-A-port3 {
  54. nvidia,lanes = "usb3-2";
  55. nvidia,port-cap = <TEGRA_PADCTL_PORT_HOST_ONLY>;
  56. status = "okay";
  57. };
  58. usb3-std-A-port4 {
  59. nvidia,lanes = "usb3-1";
  60. nvidia,port-cap = <TEGRA_PADCTL_PORT_HOST_ONLY>;
  61. status = "okay";
  62. };
  63. };
  64. };

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>;如下所示:

  1. pinctrl@3520000 {
  2. vbus-0-supply = <&vdd_usb0_5v>;
  3. vbus-1-supply = <&vdd_usb1_5v>;
  4. vbus-2-supply = <&battery_reg>;
  5. vbus-3-supply = <&battery_reg>;
  6. vddio-hsic-supply = <&battery_reg>;
  7. avdd_usb-supply = <&spmic_sd3>;
  8. vclamp_usb-supply = <&spmic_sd2>;
  9. avdd_pll_erefeut-supply = <&spmic_sd2>;
  10. };

修改完以上内容之后,重新编译内核和DTB,将生成的DTB文件烧写到TX2中,重新启动TX2,三个USB3.0口就可以完美运行了。

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/475397
推荐阅读
相关标签
  

闽ICP备14008679号