首页专栏详情
打赏
xavier平台lan7800的移植与调试方法
xavier平台lan7800的移植与调试方法
易百纳技术社区 来自远方 2022-07-14 16:07:55

1. 前言

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

2. 开启内核驱动支持

进入Linux_for_Tegra/sources/kernel/kernel-4.9

make ARCH=arm64 menuconfig

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

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

(1)连接硬件 如下: 使用lan7800 demo板【typec接口】 (插上平板上使用上网正常)

(2)加载驱动 insmod lan78xx.ko

驱动加载log如下:

发现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>;
            };
        };
    };

现在加载正常

(4)查看虚拟网卡

如下eth1是 lan7800对应的网卡

(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
973
收藏
点赞
打赏
共1人已赏
贫穷,流下没钱的泪水。。。
评论
0个
内容存在敏感词
相关专栏
易百纳技术社区
点击登录
-- 积分
-- EBC
专栏
收益
评论
我要创作
易百纳技术社区
打赏作者
易百纳技术社区
来自远方
您的支持将鼓励我继续创作!
打赏金额:
¥1 易百纳技术社区
¥5 易百纳技术社区
¥10 易百纳技术社区
¥50 易百纳技术社区
¥100 易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区 微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

审核成功

发布时间设置
发布时间:

审核失败

失败原因
备注
Loading...
易百纳技术社区
确定要删除此文章、专栏、评论吗?
确定
取消
易百纳技术社区
易百纳技术社区
在专栏模块发布专栏,可获得其他E友的打赏
易百纳技术社区
回答悬赏问答,被题主采纳后即可获得悬赏金
易百纳技术社区
在上传资料时,有价值的资料可设置为付费资源
易百纳技术社区
达到一定金额,收益即可提现~
收益也可用来充值ebc,下载资料、兑换礼品更容易
易百纳技术社区
活动规则
  • 1.周任务为周期性任务,每周周一00:00刷新,上周完成的任务不会累计到本周,本周需要从头开始任务,当前任务完成后才可以完成下一个任务
  • 2.发布的专栏与资料需要与平台的板块有相关性,禁止注水,专栏/资料任务以审核通过的篇数为准
  • 3.任务完成后,现金奖励直接打款到微信账户;EBC/收益将自动发放到个人账户,可前往“我的钱包”查看;其他奖励请联系客服兑换
  • 4.每周最后三个任务将会有以下奖品掉落:社区热卖开发板、小米音响、视频年度会员、京东卡、华为手机等等
易百纳技术社区
升级提醒
易百纳技术社区

恭喜您由入门

社区送出礼品一份

请填写您的收件地址,礼品将在3个工作日寄出

易百纳技术社区