首页 > 技术知识 > 正文

1. 前言

由于xavier平台有双网卡需求,所以需要额外增加一路USB 千兆网卡; 型号使用lan7800芯片;

2. 开启内核驱动支持

进入Linux_for_Tegra/sources/kernel/kernel-4.9

make ARCH=arm64 menuconfig

xavier平台lan7800的移植与调试方法-xavier agx

xavier平台lan7800的移植与调试方法-xavier agx1

xavier平台lan7800的移植与调试方法-xavier agx2

xavier平台lan7800的移植与调试方法-xavier agx3

如上是支持LAN78XX驱动的; 按照上面编译成ko模块即可。

3. 连接硬件&查看网络连接

(1)连接硬件 如下: 使用lan7800 demo板【typec接口】 (插上平板上使用上网正常) xavier平台lan7800的移植与调试方法-xavier agx4

(2)加载驱动 insmod lan78xx.ko

驱动加载log如下: xavier平台lan7800的移植与调试方法-xavier agx5

发现USB部分有报错问题

(3)解决USB报错问题

解决办法如下; 将USB部分的设备树dts全部恢复成官方配置

修改tegra194-p2888-0001-p2822-0000-common.dtsi

ports { usb2-0 { mode = “otg”; status = “okay”; }; usb2-1 { mode = “host”; status = “okay”; }; usb2-2 { mode = “host”; status = “okay”; }; usb2-3 { mode = “host”; status = “okay”; }; usb3-0 { nvidia,usb2-companion = <1>; status = “okay”; }; usb3-2 { nvidia,usb2-companion = <0>; status = “okay”; }; usb3-3 { nvidia,usb2-companion = <3>; nvidia,usb3-gen1-only= <1>; status = “okay”; }; }; }; tegra_xudc: xudc@3550000 { extcon-cables = <&typec_port0 0>; extcon-cable-names = “vbus”; #extcon-cells = <1>; #if TEGRA_XUSB_PADCONTROL_VERSION >= DT_VERSION_2 phys = <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-0}>, <&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-2}>; phy-names = “usb2”, “usb3”; nvidia,xusb-padctl = <&xusb_padctl>; #endif nvidia,boost_cpu_freq = <1200>; status = “okay”; }; tegra_xhci: xhci@3610000 { extcon-cables = <&typec_port0 1>; extcon-cable-names = “id”; #extcon-cells = <1>; #if TEGRA_XUSB_PADCONTROL_VERSION >= DT_VERSION_2 phys = <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-0}>, <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-1}>, <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-3}>, <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-2}>, <&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-2}>, <&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-0}>, <&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-3}>; phy-names = “usb2-0”, “usb2-1”, “usb2-3”, “usb2-2”, “usb3-2”, “usb3-0”, “usb3-3”; nvidia,xusb-padctl = <&xusb_padctl>; #endif status = “okay”; }; arm-pmu { status = “okay”; };
<

修改tegra194-power-tree-p2888-0001-p2822-1000.dtsi

xusb_padctl@3520000 { pex_dvdd-supply = <&p2888_spmic_sd0>; pex_hvdd-supply = <&p2888_spmic_sd1>; pex_pll_hvdd-supply = <&p2888_spmic_sd1>; vclamp_usb-supply = <&p2888_spmic_sd3>; avdd_usb-supply = <&p2888_spmic_ldo5>; avdd_pll_nvhs_eutmip-supply = <&p2888_spmic_sd1>; ports { usb2-0 { vbus-supply = <&battery_reg>; }; usb2-1 { vbus-supply = <&battery_reg>; }; usb2-2 { vbus-supply = <&battery_reg>; }; usb2-3 { vbus-supply = <&p2822_vdd_5v_sata>; }; }; };

现在加载正常 xavier平台lan7800的移植与调试方法-xavier agx6

(4)查看虚拟网卡

如下eth1是 lan7800对应的网卡 xavier平台lan7800的移植与调试方法-xavier agx7

(5)查看网络通路情况 a. 插上网线,无法上网

b. 配置静态ip地址,和主机PC直连ping 通路,也无法ping通

设置/etc/network/interfaces auto lo iface lo inet loopback auto eth1 iface eth1 inet static address 192.168.10.66 netmask 255.255.255.0 gateway 192.168.10.1 iface eth1 inet6 auto

猜你喜欢