mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	net: airoha: Introduce ethernet support for EN7581 SoC
Add airoha_eth driver in order to introduce ethernet support for
Airoha EN7581 SoC available on EN7581 development board (en7581-evb).
EN7581 mac controller is mainly composed by the Frame Engine (PSE+PPE)
and QoS-DMA (QDMA) modules. FE is used for traffic offloading (just
basic functionalities are currently supported) while QDMA is used for
DMA operations and QOS functionalities between the mac layer and the
external modules conncted to the FE GDM ports (e.g MT7530 DSA switch
or external phys).
A general overview of airoha_eth architecture is reported below:
               ┌───────┐                                     ┌───────┐
               │ QDMA2 │                                     │ QDMA1 │
               └───┬───┘                                     └───┬───┘
                   │                                             │
           ┌───────▼─────────────────────────────────────────────▼────────┐
           │                                                              │
           │       P5                                            P0       │
           │                                                              │
           │                                                              │
           │                                                              │    ┌──────┐
           │                                                           P3 ├────► GDM3 │
           │                                                              │    └──────┘
           │                                                              │
           │                                                              │
┌─────┐    │                                                              │
│ PPE ◄────┤ P4                          PSE                              │
└─────┘    │                                                              │
           │                                                              │
           │                                                              │
           │                                                              │    ┌──────┐
           │                                                           P9 ├────► GDM4 │
           │                                                              │    └──────┘
           │                                                              │
           │                                                              │
           │                                                              │
           │        P2                                           P1       │
           └─────────┬───────────────────────────────────────────┬────────┘
                     │                                           │
                 ┌───▼──┐                                     ┌──▼───┐
                 │ GDM2 │                                     │ GDM1 │
                 └──────┘                                     └──┬───┘
                                                                 │
                                                            ┌────▼─────┐
                                                            │  MT7530  │
                                                            └──────────┘
Currently only hw LAN features (QDMA1+GDM1) are available while hw WAN
(QDMA2+GDM{2,3,4}) ones will be added with subsequent patches introducing
traffic offloading support.
Tested-by: Benjamin Larsson <benjamin.larsson@genexis.eu>
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Link: https://patch.msgid.link/274945d2391c195098ab180a46d0617b18b9e42c.1720818878.git.lorenzo@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
			
			
This commit is contained in:
		
							parent
							
								
									6bc8719c9d
								
							
						
					
					
						commit
						23020f0493
					
				
					 4 changed files with 2749 additions and 1 deletions
				
			
		| 
						 | 
					@ -682,6 +682,15 @@ S:	Supported
 | 
				
			||||||
F:	fs/aio.c
 | 
					F:	fs/aio.c
 | 
				
			||||||
F:	include/linux/*aio*.h
 | 
					F:	include/linux/*aio*.h
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AIROHA ETHERNET DRIVER
 | 
				
			||||||
 | 
					M:	Lorenzo Bianconi <lorenzo@kernel.org>
 | 
				
			||||||
 | 
					L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 | 
				
			||||||
 | 
					L:	linux-mediatek@lists.infradead.org (moderated for non-subscribers)
 | 
				
			||||||
 | 
					L:	netdev@vger.kernel.org
 | 
				
			||||||
 | 
					S:	Maintained
 | 
				
			||||||
 | 
					F:	Documentation/devicetree/bindings/net/airoha,en7581-eth.yaml
 | 
				
			||||||
 | 
					F:	drivers/net/ethernet/mediatek/airoha_eth.c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
AIROHA SPI SNFI DRIVER
 | 
					AIROHA SPI SNFI DRIVER
 | 
				
			||||||
M:	Lorenzo Bianconi <lorenzo@kernel.org>
 | 
					M:	Lorenzo Bianconi <lorenzo@kernel.org>
 | 
				
			||||||
M:	Ray Liu <ray.liu@airoha.com>
 | 
					M:	Ray Liu <ray.liu@airoha.com>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,12 +1,20 @@
 | 
				
			||||||
# SPDX-License-Identifier: GPL-2.0-only
 | 
					# SPDX-License-Identifier: GPL-2.0-only
 | 
				
			||||||
config NET_VENDOR_MEDIATEK
 | 
					config NET_VENDOR_MEDIATEK
 | 
				
			||||||
	bool "MediaTek devices"
 | 
						bool "MediaTek devices"
 | 
				
			||||||
	depends on ARCH_MEDIATEK || SOC_MT7621 || SOC_MT7620 || COMPILE_TEST
 | 
						depends on ARCH_MEDIATEK || ARCH_AIROHA || SOC_MT7621 || SOC_MT7620 || COMPILE_TEST
 | 
				
			||||||
	help
 | 
						help
 | 
				
			||||||
	  If you have a Mediatek SoC with ethernet, say Y.
 | 
						  If you have a Mediatek SoC with ethernet, say Y.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if NET_VENDOR_MEDIATEK
 | 
					if NET_VENDOR_MEDIATEK
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					config NET_AIROHA
 | 
				
			||||||
 | 
						tristate "Airoha SoC Gigabit Ethernet support"
 | 
				
			||||||
 | 
						depends on NET_DSA || !NET_DSA
 | 
				
			||||||
 | 
						select PAGE_POOL
 | 
				
			||||||
 | 
						help
 | 
				
			||||||
 | 
						  This driver supports the gigabit ethernet MACs in the
 | 
				
			||||||
 | 
						  Airoha SoC family.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
config NET_MEDIATEK_SOC_WED
 | 
					config NET_MEDIATEK_SOC_WED
 | 
				
			||||||
	depends on ARCH_MEDIATEK || COMPILE_TEST
 | 
						depends on ARCH_MEDIATEK || COMPILE_TEST
 | 
				
			||||||
	def_bool NET_MEDIATEK_SOC != n
 | 
						def_bool NET_MEDIATEK_SOC != n
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -11,3 +11,4 @@ mtk_eth-$(CONFIG_NET_MEDIATEK_SOC_WED) += mtk_wed_debugfs.o
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
obj-$(CONFIG_NET_MEDIATEK_SOC_WED) += mtk_wed_ops.o
 | 
					obj-$(CONFIG_NET_MEDIATEK_SOC_WED) += mtk_wed_ops.o
 | 
				
			||||||
obj-$(CONFIG_NET_MEDIATEK_STAR_EMAC) += mtk_star_emac.o
 | 
					obj-$(CONFIG_NET_MEDIATEK_STAR_EMAC) += mtk_star_emac.o
 | 
				
			||||||
 | 
					obj-$(CONFIG_NET_AIROHA) += airoha_eth.o
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										2730
									
								
								drivers/net/ethernet/mediatek/airoha_eth.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2730
									
								
								drivers/net/ethernet/mediatek/airoha_eth.c
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
		Loading…
	
		Reference in a new issue