设计说明
-
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)的逻辑封装。

