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


