mii_and_mdio

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
mii_and_mdio [2018/10/06 18:07] – [Links] rpjdaymii_and_mdio [2018/10/09 11:06] (current) – [Files] rpjday
Line 5: Line 5:
 ===== Links ===== ===== Links =====
  
-  * [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include|include]] +  * [[https://www.electronicdesign.com/microcontrollers/use-mdio-bus-interrogate-complex-devices|Use The MDIO Bus To Interrogate Complex Devices]] 
-    * [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi|uapi]] +  * [[https://www.totalphase.com/support/articles/200349206-MDIO-Background|MDIO Background]] 
-      * [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux|linux]]+  * [[http://www.ieee802.org/3/efm/public/nov02/oam/pannell_oam_1_1102.pdf|Clause 22 Access to 
 +Clause 45 Registers]] 
 +  * [[https://www.intel.com/content/www/us/en/programmable/documentation/sfo1400787952932/iga1401395383139/iga1401395383732/iga1401395384075.html|Intel MDIO Clause 45]] 
 + 
 +===== Files ===== 
 + 
 +  * [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include|include/]] 
 +    * [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi|uapi/]] 
 +      * [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux|linux/]]
         * [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/mii.h|mii.h]]         * [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/mii.h|mii.h]]
         * [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/mdio.h|mdio.h]]         * [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/mdio.h|mdio.h]]
-    * [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux|linux]]+    * [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux|linux/]]
       * [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux/mii.h|mii.h]]       * [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux/mii.h|mii.h]]
       * [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux/mdio.h|mdio.h]]       * [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux/mdio.h|mdio.h]]
-  * [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation|Documentation]] +      * [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux/of_mdio.h|of_mdio.h]] 
- +      * [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux/phy.h|phy.h]] 
- +  * [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers|drivers/]] 
-===== Files ===== +    [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net|net/]] 
- +      * [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/mii.c|mii.c]] 
-==== include/uapi/linux/mii.h ==== +      * [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/mdio.c|mdio.c]] 
- +    [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/of|of/]] 
-<code> +      * [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/of/of_mdio.c|of_mdio.c]]
-#include <linux/types.h> +
-#include <linux/ethtool.h> +
- +
-/* Generic MII registers*/ +
-#define MII_BMCR                0x00    /* Basic mode control register */ +
-#define MII_BMSR                0x01    /* Basic mode status register  */ +
-#define MII_PHYSID1             0x02    /* PHYS ID 1                   */ +
-#define MII_PHYSID2             0x03    /* PHYS ID 2                   */ +
-</code> +
- +
-==== include/uapi/linux/mdio.h ==== +
- +
-=== DEVADs === +
- +
-<code> +
-#include <linux/types.h> +
-#include <linux/mii.h> +
- +
-/* MDIO Manageable Devices (MMDs)*/ +
-#define MDIO_MMD_PMAPMD               /* Physical Medium Attachment/ +
-                                         * Physical Medium Dependent */ +
-#define MDIO_MMD_WIS            2       /* WAN Interface Sublayer */ +
-#define MDIO_MMD_PCS            3       /* Physical Coding Sublayer */ +
-#define MDIO_MMD_PHYXS          4       /* PHY Extender Sublayer *+
-#define MDIO_MMD_DTEXS          5       /* DTE Extender Sublayer */ +
-#define MDIO_MMD_TC                   /* Transmission Convergence */ +
-#define MDIO_MMD_AN                   /* Auto-Negotiation */ +
-#define MDIO_MMD_C22EXT         29      /* Clause 22 extension */ +
-#define MDIO_MMD_VEND1          30      /* Vendor specific 1 */ +
-#define MDIO_MMD_VEND2          31      /* Vendor specific 2 */ +
-</code> +
- +
-=== DEVAD = 1 (PMA/PMD) === +
- +
-<code> +
-/* Generic MDIO registers*/ +
-#define MDIO_CTRL1              MII_BMCR +
-#define MDIO_STAT1              MII_BMSR +
-#define MDIO_DEVID1             MII_PHYSID1 +
-#define MDIO_DEVID2             MII_PHYSID2 +
-#define MDIO_SPEED              4       /* Speed ability */ +
-#define MDIO_DEVS1              5       /* Devices in package */ +
-#define MDIO_DEVS2              6 +
-#define MDIO_CTRL2              7       /* 10G control 2 */ +
-#define MDIO_STAT2              8       /* 10G status 2 */ +
-#define MDIO_PMA_TXDIS          9       /* 10G PMA/PMD transmit disable *+
-#define MDIO_PMA_RXDET          10      /10G PMA/PMD receive signal detect */ +
-#define MDIO_PMA_EXTABLE        11      /* 10G PMA/PMD extended ability */ +
-#define MDIO_PKGID1             14      /* Package identifier */ +
-#define MDIO_PKGID2             15 +
-</code> +
- +
-=== DEVAD = 7 (AN) === +
- +
-<code> +
-#define MDIO_AN_ADVERTISE       16      /* AN advertising (base page) */ +
-#define MDIO_AN_LPA             19      /* AN LP abilities (base page) */ +
-</code> +
- +
-=== DEVAD = 3 (PCS) === +
- +
-<code> +
-#define MDIO_PCS_EEE_ABLE       20      /* EEE Capability register */ +
-#define MDIO_PCS_EEE_WK_ERR     22      /* EEE wake error counter */ +
-</code> +
- +
-=== Don't know === +
- +
-<code> +
-#define MDIO_PHYXS_LNSTAT       24      /* PHY XGXS lane state */ +
-</code> +
- +
-=== DEVAD = 7 (AN) === +
- +
-What's with 61? Not in data sheet. +
- +
-<code> +
-#define MDIO_AN_EEE_ADV         60      /* EEE advertisement *+
-#define MDIO_AN_EEE_LPABLE      61      /* EEE link partner ability */ +
-</code> +
- +
-=== DEVAD = 1 (PMA) === +
- +
-<code> +
-/* Media-dependent registers*/ +
-#define MDIO_PMA_10GBT_SWAPPOL  130     /* 10GBASE-T pair swap & polarity */ +
-#define MDIO_PMA_10GBT_TXPWR    131     /* 10GBASE-T TX power control */ +
-#define MDIO_PMA_10GBT_SNR      133     /* 10GBASE-T SNR margin, lane A. +
-                                         * Lanes B-D are numbered 134-136. */ +
-                                         * </code> +
- +
-=== Don't know === +
- +
-<code> +
-#define MDIO_PMA_10GBR_FECABLE  170     /* 10GBASE-R FEC ability */ +
-</code> +
- +
-=== Don't know ===+
  
-<code> +===== MII =====
-#define MDIO_PCS_10GBX_STAT1    24      /* 10GBASE-X PCS status 1 */ +
-#define MDIO_PCS_10GBRT_STAT1   32      /* 10GBASE-R/-T PCS status 1 */ +
-#define MDIO_PCS_10GBRT_STAT2   33      /* 10GBASE-R/-T PCS status 2 */ +
-</code>+
  
-=== DEVAD = 7 (AN) === 
  
-<code> 
-#define MDIO_AN_10GBT_CTRL      32      /* 10GBASE-T auto-negotiation control */ 
-#define MDIO_AN_10GBT_STAT      33      /* 10GBASE-T auto-negotiation status */ 
-</code> 
  • mii_and_mdio.1538849239.txt.gz
  • Last modified: 2018/10/06 18:07
  • by rpjday