设计说明
-
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
文件名称 |
用途 |
备注 |
---|---|---|
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");
驱动架构

-
Platform:驱动入口,进行驱动声明和注册,dts 解析
-
Core:驱动核心逻辑,调度其它模块
-
MAC:MAC 子模块处理,其中寄存器操作接口单独封装
-
DMA:DMA 相关逻辑处理,寄存器,Ring,Chain,Descriptor 单独封装
-
MDIO:MDIO 总线相关逻辑处理
-
PHY:PHY 模块相关逻辑处理
-
NAPI:NAPI 接口逻辑处理
-
ethtool:提供 ethtool 接口的逻辑
-
mac addr:和各种外设资源配合完成 mac 地址的逻辑
-
1588:对 IEEE1588(PTP)的逻辑封装

