Thread (21 messages) 21 messages, 6 authors, 2019-12-19

Re: [RFC PATCH v2 1/8] mii: Add helpers for parsing SGMII auto-negotiation

From: Andrew Lunn <andrew@lunn.ch>
Date: 2019-12-19 09:10:39

quoted
diff --git a/include/uapi/linux/mii.h b/include/uapi/linux/mii.h
index 51b48e4be1f2..dc3b5d635beb 100644
--- a/include/uapi/linux/mii.h
+++ b/include/uapi/linux/mii.h
@@ -71,6 +71,7 @@
 /* Advertisement control register. */
 #define ADVERTISE_SLCT		0x001f	/* Selector bits               */
 #define ADVERTISE_CSMA		0x0001	/* Only selector supported     */
+#define ADVERTISE_SGMII		0x0001	/* Can do SGMII                */
 #define ADVERTISE_10HALF	0x0020	/* Try for 10mbps half-duplex  */
 #define ADVERTISE_1000XFULL	0x0020	/* Try for 1000BASE-X full-duplex */
 #define ADVERTISE_10FULL	0x0040	/* Try for 10mbps full-duplex  */
@@ -94,6 +95,7 @@
 
 /* Link partner ability register. */
 #define LPA_SLCT		0x001f	/* Same as advertise selector  */
+#define LPA_SGMII		0x0001	/* Can do SGMII                */
 #define LPA_10HALF		0x0020	/* Can do 10mbps half-duplex   */
 #define LPA_1000XFULL		0x0020	/* Can do 1000BASE-X full-duplex */
 #define LPA_10FULL		0x0040	/* Can do 10mbps full-duplex   */
@@ -104,11 +106,19 @@
 #define LPA_1000XPAUSE_ASYM	0x0100	/* Can do 1000BASE-X pause asym*/
 #define LPA_100BASE4		0x0200	/* Can do 100mbps 4k packets   */
 #define LPA_PAUSE_CAP		0x0400	/* Can pause                   */
+#define LPA_SGMII_DPX_SPD_MASK	0x1C00	/* SGMII duplex and speed bits */
+#define LPA_SGMII_10HALF	0x0000	/* Can do SGMII 10mbps half-duplex */
+#define LPA_SGMII_10FULL	0x1000	/* Can do SGMII 10mbps full-duplex */
+#define LPA_SGMII_100HALF	0x0400	/* Can do SGMII 100mbps half-duplex */
+#define LPA_SGMII_100FULL	0x1400	/* Can do SGMII 100mbps full-duplex */
 #define LPA_PAUSE_ASYM		0x0800	/* Can pause asymetrically     */
+#define LPA_SGMII_1000HALF	0x0800	/* Can do SGMII 1000mbps half-duplex */
+#define LPA_SGMII_1000FULL	0x1800	/* Can do SGMII 1000mbps full-duplex */
 #define LPA_RESV		0x1000	/* Unused...                   */
 #define LPA_RFAULT		0x2000	/* Link partner faulted        */
 #define LPA_LPACK		0x4000	/* Link partner acked us       */
 #define LPA_NPAGE		0x8000	/* Next page bit               */
+#define LPA_SGMII_LINK		0x8000	/* Link partner has link       */
I wonder whether mixing these definitions together is really such a
good idea, or whether separately grouping them would be better.
I think i prefer a seperate grouping.

  Andrew
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help