Edit online

设计说明

3 Mar 2025
Read time: 2 minute(s)
Ethernet 的源码涉及以下目录:
  • MAC 驱动:MAC 的主驱动代码
    drivers/net/ethernet/artinchip
  • PHY 驱动:使用到的 mdio,phy 等模块的驱动
    drivers/net/phy
  • SysConfig:系统时钟选择,delay 设置等
    drivers/misc/artinchip-syscfg.c

文件命名说明

aicmac_module_submodule.c
aicmac_module_submodule.h
1. 文件说明

文件名称

用途

备注

aicmac.h

priv 数据结构,宏入口

-

aicmac_core.c

驱动核心逻辑

-

aicmac_platform.c

平台相关,驱动注册,dts 配置处理

-

aicmac_platform.h

platform 数据结构,包含其它模块

-

aicmac_napi.c

napi 接口及相关逻辑

-

aicmac_mac.c

mac 相关逻辑代码

-

aicmac_gmac_reg.c

gmac registers

-

aicmac_dma.c

dma 相关逻辑代码

-

aicmac_dma_reg.c

dma registers

-

aicmac_dma_desc.c

dma descriptor

entended descriptor

aicmac_dma_ring.c

dma ring mode

推荐使用 ringmode

aicmac_dma_chain.c

dma chain mode

-

aicmac_mdio.c

mdio 相关逻辑代码

-

aicmac_phy.c

physic 相关逻辑代码

-

aicmac_ethtool.c

ethtool 相关逻辑代码

-

aicmac_macaddr.c

mac 地址各种生成逻辑

-

aicmac_util.c

公共函数

主要为信息格式化输出

aicmac_1588.c

IEEE1588/PTP 相关逻辑

-

aicmac_hwstamp.c

hardware stamp, 为 IEEE1588 服务

-

  • 函数命名说明:
    aicmac_module_method
  • C 文件格式
    // SPDX-License-Identifier: GPL-2.0-only
    /*
    * Copyright (C) 2021 ArtInChip Technology Co., Ltd.
    * Author: Keliang Liu <keliang.liu@artinchip.com>
    */
    
    #include <>
    
    #include “”
  • H 文件格式
    /* SPDX-License-Identifier: GPL-2.0-only */
    /*
    * Copyright (C) 2021 ArtInChip Technology Co., Ltd.
    * Author: Keliang Liu <keliang.liu@artinchip.com>
    */
    
    #ifndef _XXX_XXX_H_
    #define _XXX_XXX_H_
    
    
    #endif
  • Module Description
    MODULE_AUTHOR("Keliang Liu");
    MODULE_DESCRIPTION("ArtInChip GMAC Driver");
    MODULE_ALIAS("platform:" AICMAC_RESOURCE_NAME);
    MODULE_LICENSE("GPL");

驱动架构


mac-arch

1. 驱动架构图
驱动模块描述:
  • Platform:驱动入口,进行驱动声明和注册,dts 解析

  • Core:驱动核心逻辑,调度其它模块

  • MAC:MAC 子模块处理,其中寄存器操作接口单独封装

  • DMA:DMA 相关逻辑处理,寄存器,Ring,Chain,Descriptor 单独封装

  • MDIO:MDIO 总线相关逻辑处理

  • PHY:PHY 模块相关逻辑处理

  • NAPI:NAPI 接口逻辑处理

  • ethtool:提供 ethtool 接口的逻辑

  • mac addr:和各种外设资源配合完成 mac 地址的逻辑

  • 1588:对 IEEE1588(PTP)的逻辑封装


mac-para

2. 数据流程

mac-data

3. 数据流程