Amlogic以太网调试(百兆-千兆)

发布时间:2025-12-10 11:19:45 浏览次数:5

文章目录

  • Amlogic以太网调试(百兆/千兆)
    • 一、参考网站-Khadas
    • 二、源码结构
    • 三、百兆以太网
      • 板级文件配置
      • 设备树
      • 驱动
      • 百兆调试
    • 四、千兆以太网
      • 板级文件配置
      • 设备树
      • 驱动
      • 调试
        • 报错:No phy found
        • 报错:引脚冲突
        • 报错:Failed to reset the dma
    • 五、小结

Amlogic以太网调试(百兆/千兆)

  • 使用的芯片是S905D3
  • Android 系统
  • 百兆使用的芯片内部的PHY
  • 千兆使用外部芯片是 RTL8211F
  • 系统源码相较Android官方源码部分路径上有些差异,找个文件不容易,需要一阵子熟悉;
  • 值得注意的是,无论是千兆或者百兆,在内核启动阶段,如果没有找到PHY芯片,那么系统就会起不来;

一、参考网站-Khadas

这个网站很全面,从部署到编译、烧写一应俱全;
Khadas

二、源码结构

  • Uboot:amlogic/bootloader/uboot
  • 内核 : amlogic/common

三、百兆以太网

板级文件配置

  • 文件:amlogic/bootloader/uboot/board/****/configs/am905.h/* Choose One of Ethernet Type */#define ETHERNET_INTERNAL_PHY

设备树

  • 文件:amlogic/common/arch/arm/boot/dts/amlogic/am905.dts

    &ethmac {status = "okay";// pinctrl-names = "external_eth_pins";// pinctrl-0 = <&external_eth_pins>;// rst_pin = <&gpio GPIOZ_15 0>;// mc_val = <0x1629>;// cali_val = <0x60000>;// rx_delay = <1>;// auto_cali_idx = <0>;// internal_phy=<0>;//conflict with isp i2cpinctrl-names = "internal_eth_pins";pinctrl-0 = <&internal_eth_pins>;mc_val = <0x4be04>;internal_phy=<1>;};

驱动

  • 文件:amlogic/common/drivers/amlogic/ethernet/phy

百兆调试

基本上只要板级文件配置好,设备树正确,内部的phy直接就可以跑起来了;

四、千兆以太网

板级文件配置

  • 文件:amlogic/bootloader/uboot/board/****/configs/am905.h#define CONFIG_PHY_REALTEK 1#define CONFIG_EXTRA_ENV_SETTINGS \"ext_ethernet=1\0"\/* Choose One of Ethernet Type */#define ETHERNET_EXTERNAL_PHY

设备树

  • 文件:amlogic/common/arch/arm/boot/dts/amlogic/am905.dts

    &ethmac {status = "okay";pinctrl-names = "external_eth_pins";pinctrl-0 = <&external_eth_pins>;rst_pin = <&gpio GPIOZ_15 0>;mc_val = <0x1629>;cali_val = <0x60000>;rx_delay = <1>;auto_cali_idx = <0>;internal_phy=<0>;};

驱动

  • 文件:amlogic/common/drivers/net/phy/realtek.c

调试

报错:No phy found

  • 此时系统就会起不来,报下面错误,不是其它原因,这是因为phy找不到才报错的;
  • 25M 晶振没有正常起振导致的这个问题,原因是phy的接地没有焊好;

报错:引脚冲突

  • 设备树中有与其他引脚冲突的,直接在设备树中 disabled 掉冲突的设备即可;

报错:Failed to reset the dma

  • 网上查找有很多原因,我们最终定位问题在于phy芯片引脚虚焊导致的;
  • 导致这个报错原因很多,需要多方排查;

五、小结

amlogic 第一次接触,不太熟悉其代码组织,还是费了点功夫;realtek驱动本身兼容很好,基本上不需要改动。

需要做网站?需要网络推广?欢迎咨询客户经理 13272073477