svn commit: r328872 - head/sys/dev/etherswitch/arswitch

Adrian Chadd adrian at FreeBSD.org
Mon Feb 5 07:03:46 UTC 2018


Author: adrian
Date: Mon Feb  5 07:03:45 2018
New Revision: 328872
URL: https://svnweb.freebsd.org/changeset/base/328872

Log:
  [arswitch] fix mac address field definition.
  
  Whilst here, add some further fields for future experimenting.
  
  Tested:
  
  * AR9340 switch
  * AR9330 switch
  * AR7240 switch

Modified:
  head/sys/dev/etherswitch/arswitch/arswitchreg.h

Modified: head/sys/dev/etherswitch/arswitch/arswitchreg.h
==============================================================================
--- head/sys/dev/etherswitch/arswitch/arswitchreg.h	Mon Feb  5 05:51:37 2018	(r328871)
+++ head/sys/dev/etherswitch/arswitch/arswitchreg.h	Mon Feb  5 07:03:45 2018	(r328872)
@@ -139,10 +139,10 @@
 #define		AR8216_ATU_PORT_NUM		BITS(8, 4)
 #define		AR8216_ATU_PORT_NUM_S		8
 #define		AR8216_ATU_FULL_VIO		BIT(12)
-#define		AR8216_ATU_ADDR4		BITS(16, 8)
-#define		AR8216_ATU_ADDR4_S		16
-#define		AR8216_ATU_ADDR5		BITS(24, 8)
-#define		AR8216_ATU_ADDR5_S		24
+#define		AR8216_ATU_ADDR5		BITS(16, 8)
+#define		AR8216_ATU_ADDR5_S		16
+#define		AR8216_ATU_ADDR4		BITS(24, 8)
+#define		AR8216_ATU_ADDR4_S		24
 
 #define	AR8216_REG_ATU_DATA		0x0054
 #define		AR8216_ATU_ADDR3		BITS(0, 8)
@@ -157,13 +157,26 @@
 #define	AR8216_REG_ATU_CTRL2		0x0058
 #define		AR8216_ATU_CTRL2_DESPORT	BITS(0, 5)
 #define		AR8216_ATU_CTRL2_DESPORT_S	0
+#define		AR934X_ATU_CROSS_STATE_PORT_EN	BIT(8)
+#define		AR934X_ATU_HASH_HIGH_ADDR	BIT(9)	/* Used for CPU_FUNC (get_next_valid) */
 #define		AR8216_ATU_CTRL2_AT_PRIORITY	BITS(10, 2)
 #define		AR8216_ATU_CTRL2_AT_PRIORITY_EN	BIT(12)
 #define		AR8216_ATU_CTRL2_MIRROR_EN	BIT(13)
 #define		AR8216_ATU_CTRL2_SA_DROP_EN	BIT(14)
+#define		AR934X_ATU_CTRL2_MAC_CLONE	BIT(15)
 #define		AR8216_ATU_CTRL2_AT_STATUS	BITS(16, 4)
 #define		AR8216_ATU_CTRL2_AT_STATUS_S	16
+/*
+ * For at least the AR9340 -
+ * 0: empty
+ * 1-7: dynamic, valid
+ * 15: static, won't be aged
+ */
 #define		AR8216_ATU_CTRL2_VLAN_LEAKY_EN	BIT(24)
+/*
+ * This defines whether this MAC will leak between VLANs;
+ * controlled by ARL_UNI_LEAKY_EN and ARL_MULTI_LEAKY_EN.
+ */
 #define		AR8216_ATU_CTRL2_REDIRECT2CPU	BIT(25)
 #define		AR8216_ATU_CTRL2_COPY2CPU	BIT(26)
 
@@ -351,6 +364,7 @@
 #define		AR934X_REG_OPER_MODE1_PHY4_MII_EN	(1 << 28)
 
 #define	AR934X_REG_FLOOD_MASK		0x2c
+#define		AR934X_FLOOD_MASK_MC_DP(_p)	(1 << (0 + (_p)))
 #define		AR934X_FLOOD_MASK_MC_DP(_p)	(1 << (16 + (_p)))
 #define		AR934X_FLOOD_MASK_BC_DP(_p)	(1 << (25 + (_p)))
 


More information about the svn-src-head mailing list