iPXE
Data Structures | Macros | Functions
mii.h File Reference

Media Independent Interface constants. More...

#include <ipxe/netdevice.h>

Go to the source code of this file.

Data Structures

struct  mii_if_info
 

Macros

#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 */
 
#define MII_ADVERTISE   0x04 /* Advertisement control reg */
 
#define MII_LPA   0x05 /* Link partner ability reg */
 
#define MII_EXPANSION   0x06 /* Expansion register */
 
#define MII_CTRL1000   0x09 /* 1000BASE-T control */
 
#define MII_STAT1000   0x0a /* 1000BASE-T status */
 
#define MII_ESTATUS   0x0f /* Extended Status */
 
#define MII_DCOUNTER   0x12 /* Disconnect counter */
 
#define MII_FCSCOUNTER   0x13 /* False carrier counter */
 
#define MII_NWAYTEST   0x14 /* N-way auto-neg test reg */
 
#define MII_RERRCOUNTER   0x15 /* Receive error counter */
 
#define MII_SREVISION   0x16 /* Silicon revision */
 
#define MII_RESV1   0x17 /* Reserved... */
 
#define MII_LBRERROR   0x18 /* Lpback, rx, bypass error */
 
#define MII_PHYADDR   0x19 /* PHY address */
 
#define MII_RESV2   0x1a /* Reserved... */
 
#define MII_TPISTATUS   0x1b /* TPI status for 10mbps */
 
#define MII_NCONFIG   0x1c /* Network interface config */
 
#define BMCR_RESV   0x003f /* Unused... */
 
#define BMCR_SPEED1000   0x0040 /* MSB of Speed (1000) */
 
#define BMCR_CTST   0x0080 /* Collision test */
 
#define BMCR_FULLDPLX   0x0100 /* Full duplex */
 
#define BMCR_ANRESTART   0x0200 /* Auto negotiation restart */
 
#define BMCR_ISOLATE   0x0400 /* Disconnect DP83840 from MII */
 
#define BMCR_PDOWN   0x0800 /* Powerdown the DP83840 */
 
#define BMCR_ANENABLE   0x1000 /* Enable auto negotiation */
 
#define BMCR_SPEED100   0x2000 /* Select 100Mbps */
 
#define BMCR_LOOPBACK   0x4000 /* TXD loopback bits */
 
#define BMCR_RESET   0x8000 /* Reset the DP83840 */
 
#define BMSR_ERCAP   0x0001 /* Ext-reg capability */
 
#define BMSR_JCD   0x0002 /* Jabber detected */
 
#define BMSR_LSTATUS   0x0004 /* Link status */
 
#define BMSR_ANEGCAPABLE   0x0008 /* Able to do auto-negotiation */
 
#define BMSR_RFAULT   0x0010 /* Remote fault detected */
 
#define BMSR_ANEGCOMPLETE   0x0020 /* Auto-negotiation complete */
 
#define BMSR_RESV   0x00c0 /* Unused... */
 
#define BMSR_ESTATEN   0x0100 /* Extended Status in R15 */
 
#define BMSR_100HALF2   0x0200 /* Can do 100BASE-T2 HDX */
 
#define BMSR_100FULL2   0x0400 /* Can do 100BASE-T2 FDX */
 
#define BMSR_10HALF   0x0800 /* Can do 10mbps, half-duplex */
 
#define BMSR_10FULL   0x1000 /* Can do 10mbps, full-duplex */
 
#define BMSR_100HALF   0x2000 /* Can do 100mbps, half-duplex */
 
#define BMSR_100FULL   0x4000 /* Can do 100mbps, full-duplex */
 
#define BMSR_100BASE4   0x8000 /* Can do 100mbps, 4k packets */
 
#define ADVERTISE_SLCT   0x001f /* Selector bits */
 
#define ADVERTISE_CSMA   0x0001 /* Only selector supported */
 
#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 */
 
#define ADVERTISE_1000XHALF   0x0040 /* Try for 1000BASE-X half-duplex */
 
#define ADVERTISE_100HALF   0x0080 /* Try for 100mbps half-duplex */
 
#define ADVERTISE_1000XPAUSE   0x0080 /* Try for 1000BASE-X pause */
 
#define ADVERTISE_100FULL   0x0100 /* Try for 100mbps full-duplex */
 
#define ADVERTISE_1000XPSE_ASYM   0x0100 /* Try for 1000BASE-X asym pause */
 
#define ADVERTISE_100BASE4   0x0200 /* Try for 100mbps 4k packets */
 
#define ADVERTISE_PAUSE_CAP   0x0400 /* Try for pause */
 
#define ADVERTISE_PAUSE_ASYM   0x0800 /* Try for asymetric pause */
 
#define ADVERTISE_RESV   0x1000 /* Unused... */
 
#define ADVERTISE_RFAULT   0x2000 /* Say we can detect faults */
 
#define ADVERTISE_LPACK   0x4000 /* Ack link partners response */
 
#define ADVERTISE_NPAGE   0x8000 /* Next page bit */
 
#define ADVERTISE_FULL
 
#define ADVERTISE_ALL
 
#define LPA_SLCT   0x001f /* Same as advertise selector */
 
#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 */
 
#define LPA_1000XHALF   0x0040 /* Can do 1000BASE-X half-duplex */
 
#define LPA_100HALF   0x0080 /* Can do 100mbps half-duplex */
 
#define LPA_1000XPAUSE   0x0080 /* Can do 1000BASE-X pause */
 
#define LPA_100FULL   0x0100 /* Can do 100mbps full-duplex */
 
#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_PAUSE_ASYM   0x0800 /* Can pause asymetrically */
 
#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_DUPLEX   ( LPA_10FULL | LPA_100FULL )
 
#define LPA_100   ( LPA_100FULL | LPA_100HALF | LPA_100BASE4 )
 
#define EXPANSION_NWAY   0x0001 /* Can do N-way auto-nego */
 
#define EXPANSION_LCWP   0x0002 /* Got new RX page code word */
 
#define EXPANSION_ENABLENPAGE   0x0004 /* This enables npage words */
 
#define EXPANSION_NPCAPABLE   0x0008 /* Link partner supports npage */
 
#define EXPANSION_MFAULTS   0x0010 /* Multiple faults detected */
 
#define EXPANSION_RESV   0xffe0 /* Unused... */
 
#define ESTATUS_1000_TFULL   0x2000 /* Can do 1000BT Full */
 
#define ESTATUS_1000_THALF   0x1000 /* Can do 1000BT Half */
 
#define NWAYTEST_RESV1   0x00ff /* Unused... */
 
#define NWAYTEST_LOOPBACK   0x0100 /* Enable loopback for N-way */
 
#define NWAYTEST_RESV2   0xfe00 /* Unused... */
 
#define ADVERTISE_1000FULL   0x0200 /* Advertise 1000BASE-T full duplex */
 
#define ADVERTISE_1000HALF   0x0100 /* Advertise 1000BASE-T half duplex */
 
#define LPA_1000LOCALRXOK   0x2000 /* Partner local receiver status */
 
#define LPA_1000REMRXOK   0x1000 /* Partner remote receiver status */
 
#define LPA_1000FULL   0x0800 /* Partner 1000BASE-T full duplex */
 
#define LPA_1000HALF   0x0400 /* Partner 1000BASE-T half duplex */
 

Functions

 FILE_LICENCE (GPL2_ONLY)
 

Detailed Description

Media Independent Interface constants.

Extracted from Linux's include/linux/mii.h

Copyright (C) 1996, 1999, 2001 David S. Miller (davem.nosp@m.@red.nosp@m.hat.c.nosp@m.om)

Definition in file mii.h.

Macro Definition Documentation

◆ MII_BMCR

#define MII_BMCR   0x00 /* Basic mode control register */

Definition at line 17 of file mii.h.

◆ MII_BMSR

#define MII_BMSR   0x01 /* Basic mode status register */

Definition at line 18 of file mii.h.

◆ MII_PHYSID1

#define MII_PHYSID1   0x02 /* PHYS ID 1 */

Definition at line 19 of file mii.h.

◆ MII_PHYSID2

#define MII_PHYSID2   0x03 /* PHYS ID 2 */

Definition at line 20 of file mii.h.

◆ MII_ADVERTISE

#define MII_ADVERTISE   0x04 /* Advertisement control reg */

Definition at line 21 of file mii.h.

◆ MII_LPA

#define MII_LPA   0x05 /* Link partner ability reg */

Definition at line 22 of file mii.h.

◆ MII_EXPANSION

#define MII_EXPANSION   0x06 /* Expansion register */

Definition at line 23 of file mii.h.

◆ MII_CTRL1000

#define MII_CTRL1000   0x09 /* 1000BASE-T control */

Definition at line 24 of file mii.h.

◆ MII_STAT1000

#define MII_STAT1000   0x0a /* 1000BASE-T status */

Definition at line 25 of file mii.h.

◆ MII_ESTATUS

#define MII_ESTATUS   0x0f /* Extended Status */

Definition at line 26 of file mii.h.

◆ MII_DCOUNTER

#define MII_DCOUNTER   0x12 /* Disconnect counter */

Definition at line 27 of file mii.h.

◆ MII_FCSCOUNTER

#define MII_FCSCOUNTER   0x13 /* False carrier counter */

Definition at line 28 of file mii.h.

◆ MII_NWAYTEST

#define MII_NWAYTEST   0x14 /* N-way auto-neg test reg */

Definition at line 29 of file mii.h.

◆ MII_RERRCOUNTER

#define MII_RERRCOUNTER   0x15 /* Receive error counter */

Definition at line 30 of file mii.h.

◆ MII_SREVISION

#define MII_SREVISION   0x16 /* Silicon revision */

Definition at line 31 of file mii.h.

◆ MII_RESV1

#define MII_RESV1   0x17 /* Reserved... */

Definition at line 32 of file mii.h.

◆ MII_LBRERROR

#define MII_LBRERROR   0x18 /* Lpback, rx, bypass error */

Definition at line 33 of file mii.h.

◆ MII_PHYADDR

#define MII_PHYADDR   0x19 /* PHY address */

Definition at line 34 of file mii.h.

◆ MII_RESV2

#define MII_RESV2   0x1a /* Reserved... */

Definition at line 35 of file mii.h.

◆ MII_TPISTATUS

#define MII_TPISTATUS   0x1b /* TPI status for 10mbps */

Definition at line 36 of file mii.h.

◆ MII_NCONFIG

#define MII_NCONFIG   0x1c /* Network interface config */

Definition at line 37 of file mii.h.

◆ BMCR_RESV

#define BMCR_RESV   0x003f /* Unused... */

Definition at line 40 of file mii.h.

◆ BMCR_SPEED1000

#define BMCR_SPEED1000   0x0040 /* MSB of Speed (1000) */

Definition at line 41 of file mii.h.

◆ BMCR_CTST

#define BMCR_CTST   0x0080 /* Collision test */

Definition at line 42 of file mii.h.

◆ BMCR_FULLDPLX

#define BMCR_FULLDPLX   0x0100 /* Full duplex */

Definition at line 43 of file mii.h.

◆ BMCR_ANRESTART

#define BMCR_ANRESTART   0x0200 /* Auto negotiation restart */

Definition at line 44 of file mii.h.

◆ BMCR_ISOLATE

#define BMCR_ISOLATE   0x0400 /* Disconnect DP83840 from MII */

Definition at line 45 of file mii.h.

◆ BMCR_PDOWN

#define BMCR_PDOWN   0x0800 /* Powerdown the DP83840 */

Definition at line 46 of file mii.h.

◆ BMCR_ANENABLE

#define BMCR_ANENABLE   0x1000 /* Enable auto negotiation */

Definition at line 47 of file mii.h.

◆ BMCR_SPEED100

#define BMCR_SPEED100   0x2000 /* Select 100Mbps */

Definition at line 48 of file mii.h.

◆ BMCR_LOOPBACK

#define BMCR_LOOPBACK   0x4000 /* TXD loopback bits */

Definition at line 49 of file mii.h.

◆ BMCR_RESET

#define BMCR_RESET   0x8000 /* Reset the DP83840 */

Definition at line 50 of file mii.h.

◆ BMSR_ERCAP

#define BMSR_ERCAP   0x0001 /* Ext-reg capability */

Definition at line 53 of file mii.h.

◆ BMSR_JCD

#define BMSR_JCD   0x0002 /* Jabber detected */

Definition at line 54 of file mii.h.

◆ BMSR_LSTATUS

#define BMSR_LSTATUS   0x0004 /* Link status */

Definition at line 55 of file mii.h.

◆ BMSR_ANEGCAPABLE

#define BMSR_ANEGCAPABLE   0x0008 /* Able to do auto-negotiation */

Definition at line 56 of file mii.h.

◆ BMSR_RFAULT

#define BMSR_RFAULT   0x0010 /* Remote fault detected */

Definition at line 57 of file mii.h.

◆ BMSR_ANEGCOMPLETE

#define BMSR_ANEGCOMPLETE   0x0020 /* Auto-negotiation complete */

Definition at line 58 of file mii.h.

◆ BMSR_RESV

#define BMSR_RESV   0x00c0 /* Unused... */

Definition at line 59 of file mii.h.

◆ BMSR_ESTATEN

#define BMSR_ESTATEN   0x0100 /* Extended Status in R15 */

Definition at line 60 of file mii.h.

◆ BMSR_100HALF2

#define BMSR_100HALF2   0x0200 /* Can do 100BASE-T2 HDX */

Definition at line 61 of file mii.h.

◆ BMSR_100FULL2

#define BMSR_100FULL2   0x0400 /* Can do 100BASE-T2 FDX */

Definition at line 62 of file mii.h.

◆ BMSR_10HALF

#define BMSR_10HALF   0x0800 /* Can do 10mbps, half-duplex */

Definition at line 63 of file mii.h.

◆ BMSR_10FULL

#define BMSR_10FULL   0x1000 /* Can do 10mbps, full-duplex */

Definition at line 64 of file mii.h.

◆ BMSR_100HALF

#define BMSR_100HALF   0x2000 /* Can do 100mbps, half-duplex */

Definition at line 65 of file mii.h.

◆ BMSR_100FULL

#define BMSR_100FULL   0x4000 /* Can do 100mbps, full-duplex */

Definition at line 66 of file mii.h.

◆ BMSR_100BASE4

#define BMSR_100BASE4   0x8000 /* Can do 100mbps, 4k packets */

Definition at line 67 of file mii.h.

◆ ADVERTISE_SLCT

#define ADVERTISE_SLCT   0x001f /* Selector bits */

Definition at line 70 of file mii.h.

◆ ADVERTISE_CSMA

#define ADVERTISE_CSMA   0x0001 /* Only selector supported */

Definition at line 71 of file mii.h.

◆ ADVERTISE_10HALF

#define ADVERTISE_10HALF   0x0020 /* Try for 10mbps half-duplex */

Definition at line 72 of file mii.h.

◆ ADVERTISE_1000XFULL

#define ADVERTISE_1000XFULL   0x0020 /* Try for 1000BASE-X full-duplex */

Definition at line 73 of file mii.h.

◆ ADVERTISE_10FULL

#define ADVERTISE_10FULL   0x0040 /* Try for 10mbps full-duplex */

Definition at line 74 of file mii.h.

◆ ADVERTISE_1000XHALF

#define ADVERTISE_1000XHALF   0x0040 /* Try for 1000BASE-X half-duplex */

Definition at line 75 of file mii.h.

◆ ADVERTISE_100HALF

#define ADVERTISE_100HALF   0x0080 /* Try for 100mbps half-duplex */

Definition at line 76 of file mii.h.

◆ ADVERTISE_1000XPAUSE

#define ADVERTISE_1000XPAUSE   0x0080 /* Try for 1000BASE-X pause */

Definition at line 77 of file mii.h.

◆ ADVERTISE_100FULL

#define ADVERTISE_100FULL   0x0100 /* Try for 100mbps full-duplex */

Definition at line 78 of file mii.h.

◆ ADVERTISE_1000XPSE_ASYM

#define ADVERTISE_1000XPSE_ASYM   0x0100 /* Try for 1000BASE-X asym pause */

Definition at line 79 of file mii.h.

◆ ADVERTISE_100BASE4

#define ADVERTISE_100BASE4   0x0200 /* Try for 100mbps 4k packets */

Definition at line 80 of file mii.h.

◆ ADVERTISE_PAUSE_CAP

#define ADVERTISE_PAUSE_CAP   0x0400 /* Try for pause */

Definition at line 81 of file mii.h.

◆ ADVERTISE_PAUSE_ASYM

#define ADVERTISE_PAUSE_ASYM   0x0800 /* Try for asymetric pause */

Definition at line 82 of file mii.h.

◆ ADVERTISE_RESV

#define ADVERTISE_RESV   0x1000 /* Unused... */

Definition at line 83 of file mii.h.

◆ ADVERTISE_RFAULT

#define ADVERTISE_RFAULT   0x2000 /* Say we can detect faults */

Definition at line 84 of file mii.h.

◆ ADVERTISE_LPACK

#define ADVERTISE_LPACK   0x4000 /* Ack link partners response */

Definition at line 85 of file mii.h.

◆ ADVERTISE_NPAGE

#define ADVERTISE_NPAGE   0x8000 /* Next page bit */

Definition at line 86 of file mii.h.

◆ ADVERTISE_FULL

#define ADVERTISE_FULL
Value:
ADVERTISE_CSMA)
#define ADVERTISE_10FULL
Definition: mii.h:74
#define ADVERTISE_100FULL
Definition: mii.h:78

Definition at line 88 of file mii.h.

◆ ADVERTISE_ALL

#define ADVERTISE_ALL
Value:
ADVERTISE_100HALF | ADVERTISE_100FULL )
#define ADVERTISE_10FULL
Definition: mii.h:74
#define ADVERTISE_100FULL
Definition: mii.h:78
#define ADVERTISE_10HALF
Definition: mii.h:72

Definition at line 90 of file mii.h.

◆ LPA_SLCT

#define LPA_SLCT   0x001f /* Same as advertise selector */

Definition at line 94 of file mii.h.

◆ LPA_10HALF

#define LPA_10HALF   0x0020 /* Can do 10mbps half-duplex */

Definition at line 95 of file mii.h.

◆ LPA_1000XFULL

#define LPA_1000XFULL   0x0020 /* Can do 1000BASE-X full-duplex */

Definition at line 96 of file mii.h.

◆ LPA_10FULL

#define LPA_10FULL   0x0040 /* Can do 10mbps full-duplex */

Definition at line 97 of file mii.h.

◆ LPA_1000XHALF

#define LPA_1000XHALF   0x0040 /* Can do 1000BASE-X half-duplex */

Definition at line 98 of file mii.h.

◆ LPA_100HALF

#define LPA_100HALF   0x0080 /* Can do 100mbps half-duplex */

Definition at line 99 of file mii.h.

◆ LPA_1000XPAUSE

#define LPA_1000XPAUSE   0x0080 /* Can do 1000BASE-X pause */

Definition at line 100 of file mii.h.

◆ LPA_100FULL

#define LPA_100FULL   0x0100 /* Can do 100mbps full-duplex */

Definition at line 101 of file mii.h.

◆ LPA_1000XPAUSE_ASYM

#define LPA_1000XPAUSE_ASYM   0x0100 /* Can do 1000BASE-X pause asym*/

Definition at line 102 of file mii.h.

◆ LPA_100BASE4

#define LPA_100BASE4   0x0200 /* Can do 100mbps 4k packets */

Definition at line 103 of file mii.h.

◆ LPA_PAUSE_CAP

#define LPA_PAUSE_CAP   0x0400 /* Can pause */

Definition at line 104 of file mii.h.

◆ LPA_PAUSE_ASYM

#define LPA_PAUSE_ASYM   0x0800 /* Can pause asymetrically */

Definition at line 105 of file mii.h.

◆ LPA_RESV

#define LPA_RESV   0x1000 /* Unused... */

Definition at line 106 of file mii.h.

◆ LPA_RFAULT

#define LPA_RFAULT   0x2000 /* Link partner faulted */

Definition at line 107 of file mii.h.

◆ LPA_LPACK

#define LPA_LPACK   0x4000 /* Link partner acked us */

Definition at line 108 of file mii.h.

◆ LPA_NPAGE

#define LPA_NPAGE   0x8000 /* Next page bit */

Definition at line 109 of file mii.h.

◆ LPA_DUPLEX

#define LPA_DUPLEX   ( LPA_10FULL | LPA_100FULL )

Definition at line 111 of file mii.h.

◆ LPA_100

#define LPA_100   ( LPA_100FULL | LPA_100HALF | LPA_100BASE4 )

Definition at line 112 of file mii.h.

◆ EXPANSION_NWAY

#define EXPANSION_NWAY   0x0001 /* Can do N-way auto-nego */

Definition at line 115 of file mii.h.

◆ EXPANSION_LCWP

#define EXPANSION_LCWP   0x0002 /* Got new RX page code word */

Definition at line 116 of file mii.h.

◆ EXPANSION_ENABLENPAGE

#define EXPANSION_ENABLENPAGE   0x0004 /* This enables npage words */

Definition at line 117 of file mii.h.

◆ EXPANSION_NPCAPABLE

#define EXPANSION_NPCAPABLE   0x0008 /* Link partner supports npage */

Definition at line 118 of file mii.h.

◆ EXPANSION_MFAULTS

#define EXPANSION_MFAULTS   0x0010 /* Multiple faults detected */

Definition at line 119 of file mii.h.

◆ EXPANSION_RESV

#define EXPANSION_RESV   0xffe0 /* Unused... */

Definition at line 120 of file mii.h.

◆ ESTATUS_1000_TFULL

#define ESTATUS_1000_TFULL   0x2000 /* Can do 1000BT Full */

Definition at line 122 of file mii.h.

◆ ESTATUS_1000_THALF

#define ESTATUS_1000_THALF   0x1000 /* Can do 1000BT Half */

Definition at line 123 of file mii.h.

◆ NWAYTEST_RESV1

#define NWAYTEST_RESV1   0x00ff /* Unused... */

Definition at line 126 of file mii.h.

◆ NWAYTEST_LOOPBACK

#define NWAYTEST_LOOPBACK   0x0100 /* Enable loopback for N-way */

Definition at line 127 of file mii.h.

◆ NWAYTEST_RESV2

#define NWAYTEST_RESV2   0xfe00 /* Unused... */

Definition at line 128 of file mii.h.

◆ ADVERTISE_1000FULL

#define ADVERTISE_1000FULL   0x0200 /* Advertise 1000BASE-T full duplex */

Definition at line 131 of file mii.h.

◆ ADVERTISE_1000HALF

#define ADVERTISE_1000HALF   0x0100 /* Advertise 1000BASE-T half duplex */

Definition at line 132 of file mii.h.

◆ LPA_1000LOCALRXOK

#define LPA_1000LOCALRXOK   0x2000 /* Partner local receiver status */

Definition at line 135 of file mii.h.

◆ LPA_1000REMRXOK

#define LPA_1000REMRXOK   0x1000 /* Partner remote receiver status */

Definition at line 136 of file mii.h.

◆ LPA_1000FULL

#define LPA_1000FULL   0x0800 /* Partner 1000BASE-T full duplex */

Definition at line 137 of file mii.h.

◆ LPA_1000HALF

#define LPA_1000HALF   0x0400 /* Partner 1000BASE-T half duplex */

Definition at line 138 of file mii.h.

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( GPL2_ONLY  )