专栏底层软件车载以太网驱动

车载以太网驱动

已解决
银耳452022-12-15
2657
24

用户您好,请详细描述您所遇到的问题。

1.硬件获取渠道:公司购买J3dvb

2.当前系统镜像版本:x3j3_lnx_db_20221008 debug

3.当前天工开物版本:horizon_xj3_open_explorer_v1.10.7_20220304

4.问题定位:不清楚网卡驱动开发

5.开发的demo/案例:我们后续开发使用车载网卡marvell,88Q1111

6.需要提供的解决方案:当前J3 SDK里面是否集成改网卡驱动,如果没有该如何修改代码?

底层软件
征程3
+3
评论5
0/1000
  • 费小财
    Lv.5

    您好,

    这个需要自己本地适配的,默认现在是不支持的

    可参考现有的实现进行适配,适配过程中的问题可以随便进行发帖沟通的

    2022-12-19
    0
    8
    • 银耳45回复费小财:

      我现在看8Q1111的datasheet,phy identifier文档只写3到24位,但代码里面PHY id用的是32位,这是怎样计算的?

      2022-12-20
      0
    • 费小财回复银耳45:

      代码在哪里,

      代码里应该会用掩码屏蔽下低几位的吧。 0-3估计是批次的差异预留的。

      2022-12-20
      0
    • 银耳45回复费小财:

      代码里面的phy id是32位,88Q1111里面写的phy id是24位,另外,mdio有没有接口读到phy id的?

      2022-12-20
      0
    • 银耳45回复银耳45:
      2022-12-20
      1
    • 疯狂星期6回复银耳45:

      您好:

      您附上的这个代码应该是J3代码里的88E1111的PHYID,您手册的截图应该是88Q1111的ID把。E系列和Q系列差异较大。单看88E的代码,其PHY_ID会和上方的ID_MASK相与,屏蔽掉低4位的差异。如下图是88E1510的PHY_ID低16位,其低4位也是保留的,和代码中的MASK一致:

      88Q1111的代码您应该要从PHY的供应商处拿到,然后集成进j3的内核里,直接使用J3现有的这个88E1111应该无法支持您点亮88Q1111。

      2022-12-20
      0
    • 疯狂星期6回复银耳45:

      Q:另外,mdio有没有接口读到phy id的?

      A:内核下可以尝试使用phytool进行phy寄存器的读写,参考格式如下:

      phytool read eth0/0:3/0x1 读取的是eth0,phy地址0,phy寄存器device是3,register是0x1;

      2022-12-20
      0
    • 银耳45回复疯狂星期6:
      现在完全没有识别到phy
      2022-12-20
      0
    • 银耳45回复疯狂星期6:

      phy供应商回应:88Q1111不需要软件配置,确保MDIO能读到phy id 以及 RGMII TX和RX clk满足125M就可正常工作

      2022-12-20
      0
  • 疯狂星期6
    Lv.1

    您好:

    当前读不到phy,看下您在内核下改的东西?您应该有改动dts把?

    确认下几点信息:

    1. 硬件接线时PHY接的SMI地址;

    2. 硬件接线时phy的复位引脚接到了J3的哪个GPIO。

    2022-12-20
    0
    5
    • 银耳45回复疯狂星期6:
      2022-12-20
      0
    • 银耳45回复银耳45:

      我们现在只做了底板,核心板从J3 dvb开发板拆下来的

      2022-12-20
      0
    • 疯狂星期6回复银耳45:

      有3点问题:

      1. 您phy-reset-gpios = 这个38指的是pin38吗? 还是GPIO 38? 需要确认,同时这样的书写形式可能有误。

      2. 88Q1111我猜测应该属于C45的mdio访问方式(88Q2112是C45),故您这边不应写成C22。这个您可从phy的手册中查找到。

      3.您确定您的phy地址是0xe吗?

      内核下dts的适配可参考下图:

      2022-12-20
      0
    • 银耳45回复疯狂星期6:

      改了一下mdio clause 45,能识别到phy,还有有某些地方初始化失败了

      2022-12-21
      0
    • 疯狂星期6回复银耳45:

      错误打印应该已经提示了,是phy的复位问题。请确认下phy的复位引脚是否正确,以及dts里的书写方法是否正确。

      2022-12-21
      0
  • 疯狂星期6
    Lv.1

    您好:

    J3 SDK中集成有网卡驱动。您提到的marvell 88Q1111,应该是一个phy。从J3的SDK看(kernel/drivers/net/phy/marvell.c),代码上应该已经支持了这个phy,你们可以试一下。

    关于如何新增phy驱动:phy厂商应该会提供对应的phy驱动代码,与J3的MAC做好适配即可。

    谢谢!

    2022-12-15
    0
    4
    • 银耳45回复疯狂星期6:
      我只看到有Marvell 88Q2212,和marvell 88Q1111是通用的吗?
      2022-12-15
      0
    • 疯狂星期6回复银耳45:

      不好意思看错了,marvell.c中的是88E1111。

      当前有的88Q2212和88Q1111的差异有多大暂不清楚,需要你们进行评估,但两者的phy_id大概率不一样,应该要进行一定程度的修改才能适配。

      在uboot中,可以使用dts适配方法:

      在新的项目dts中,直接引用hobot-xj3.dtsi中定义的gmac节点,然后添加对应的属性即可,例如:

      X3/J3支持增加PHY地址和PHY模式两种属性。
      支持在dts中指定reset gpio。
      支持fixed(接switch)模式(如果有需求,需要打开uboot下的配置“CONFIG_PHY_FIXED”,并修改dts)。
      phy-mode支持"rmii-id"和"rgmii-id"两种模式,不支持其他模式。

      内核下同理,也可直接引用hobot-xj3.dtsi中定义的gmac节点,然后添加对应的属性即可

      2022-12-15
      0
    • 银耳45回复疯狂星期6:

      好的,多谢,我试一下

      2022-12-15
      0
    • 疯狂星期6回复银耳45:

      OK,如果后面有问题的话,欢迎继续一起探讨。

      PS:J5不支持tx_clk/rx_clk的delay功能,需要外接phy支持delay的功能,故您需要在88Q1111设置clk的delay。

      2022-12-15
      0
  • Daitao
    Lv.1

    您好:

    J3 SDK中有集成88Q2112的驱动,可以尝试一下88Q2112的驱动是否可以直接使用。

    谢谢

    2022-12-15
    0
    2
    • 银耳45回复Daitao:

      这是需要修改dts文件,可以单独编译dts文件部署到板子上吗?还是修改dts,后编译整个系统

      2022-12-15
      0
    • 费小财回复银耳45:

      dts修改的话,需要编译整个系统的

      2022-12-15
      0
  • 新手村
    Lv.4

    您好:

    网卡驱动是否已经成功启动?

    2023-01-17
    0
    0