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

Adrian Chadd adrian at FreeBSD.org
Sun Mar 2 05:47:06 UTC 2014


Author: adrian
Date: Sun Mar  2 05:47:05 2014
New Revision: 262680
URL: http://svnweb.freebsd.org/changeset/base/262680

Log:
  Add AR8216 era ATU management/configuration register definitions.
  
  Obtained from:	OpenWRT

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

Modified: head/sys/dev/etherswitch/arswitch/arswitchreg.h
==============================================================================
--- head/sys/dev/etherswitch/arswitch/arswitchreg.h	Sun Mar  2 03:34:06 2014	(r262679)
+++ head/sys/dev/etherswitch/arswitch/arswitchreg.h	Sun Mar  2 05:47:05 2014	(r262680)
@@ -38,6 +38,11 @@
 #define	SM(_v, _f)	(((_v) << _f##_S) & (_f))
 #define	MS(_v, _f)	(((_v) & (_f)) >> _f##_S)
 
+/* XXX Linux define compatibility stuff */
+#define	BIT(_m)				(1UL << (_m))
+#define	BITM(_count)			((1UL << (_count)) - 1)
+#define	BITS(_shift, _count)		(BITM(_count) << (_shift))
+
 /* Atheros specific MII registers */
 #define	MII_ATH_MMD_ADDR		0x0d
 #define	MII_ATH_MMD_DATA		0x0e
@@ -119,10 +124,34 @@
 #define		AR8X16_VLAN_MEMBER		0x0000003f
 #define		AR8X16_VLAN_VALID		(1 << 11)
 
-#define	AR8X16_REG_ARL_CTRL0		0x0050
-#define	AR8X16_REG_ARL_CTRL1		0x0054
+#define	AR8216_REG_ATU			0x0050
+#define		AR8216_ATU_OP		BITS(0, 3)
+#define		AR8216_ATU_OP_NOOP		0x0
+#define		AR8216_ATU_OP_FLUSH		0x1
+#define		AR8216_ATU_OP_LOAD		0x2
+#define		AR8216_ATU_OP_PURGE		0x3
+#define		AR8216_ATU_OP_FLUSH_LOCKED	0x4
+#define		AR8216_ATU_OP_FLUSH_UNICAST	0x5
+#define		AR8216_ATU_OP_GET_NEXT		0x6
+#define		AR8216_ATU_ACTIVE		BIT(3)
+#define		AR8216_ATU_PORT_NUM		BITS(8, 4)
+#define		AR8216_ATU_FULL_VIO		BIT(12)
+#define		AR8216_ATU_ADDR4		BITS(16, 8)
+#define		AR8216_ATU_ADDR5		BITS(24, 8)
+
+#define	AR8216_REG_ATU_DATA		0x0054
+#define		AR8216_ATU_ADDR3		BITS(0, 8)
+#define		AR8216_ATU_ADDR2		BITS(8, 8)
+#define		AR8216_ATU_ADDR1		BITS(16, 8)
+#define		AR8216_ATU_ADDR0		BITS(24, 8)
+
 #define	AR8X16_REG_ARL_CTRL2		0x0058
 
+#define	AR8216_REG_ATU_CTRL		0x005C
+#define		AR8216_ATU_CTRL_AGE_EN		BIT(17)
+#define		AR8216_ATU_CTRL_AGE_TIME	BITS(0, 16)
+#define		AR8216_ATU_CTRL_AGE_TIME_S	0
+
 #define	AR8X16_REG_AT_CTRL		0x005c
 #define		AR8X16_AT_CTRL_ARP_EN		(1 << 20)
 
@@ -295,10 +324,6 @@
  * AR9340 switch specific definitions.
  */
 
-/* XXX Linux define compatibility stuff */
-#define	BITM(_count)			((1UL << _count) - 1)
-#define	BITS(_shift, _count)		(BITM(_count) << _shift)
-
 #define	AR934X_REG_OPER_MODE0		0x04
 #define		AR934X_OPER_MODE0_MAC_GMII_EN	(1 << 6)
 #define		AR934X_OPER_MODE0_PHY_MII_EN	(1 << 10)


More information about the svn-src-head mailing list