ChibiOS/HAL 9.0.0
MII/RMII Header

MII/RMII Support Header. More...

Detailed Description

MII/RMII Support Header.

This header contains definitions and types related to MII/RMII.

Collaboration diagram for MII/RMII Header:

Generic MII registers

#define MII_BMCR   0x00
#define MII_BMSR   0x01
#define MII_PHYSID1   0x02
#define MII_PHYSID2   0x03
#define MII_ADVERTISE   0x04
#define MII_LPA   0x05
#define MII_EXPANSION   0x06
#define MII_ANNPTR   0x07
#define MII_CTRL1000   0x09
#define MII_STAT1000   0x0a
#define MII_ESTATUS   0x0f
#define MII_PHYSTS   0x10
#define MII_MICR   0x11
#define MII_DCOUNTER   0x12
#define MII_FCSCOUNTER   0x13
#define MII_NWAYTEST   0x14
#define MII_RERRCOUNTER   0x15
#define MII_SREVISION   0x16
#define MII_RESV1   0x17
#define MII_LBRERROR   0x18
#define MII_PHYADDR   0x19
#define MII_RESV2   0x1a
#define MII_TPISTATUS   0x1b
#define MII_NCONFIG   0x1c

Basic mode control register

#define BMCR_RESV   0x007f
#define BMCR_CTST   0x0080
#define BMCR_FULLDPLX   0x0100
#define BMCR_ANRESTART   0x0200
#define BMCR_ISOLATE   0x0400
#define BMCR_PDOWN   0x0800
#define BMCR_ANENABLE   0x1000
#define BMCR_SPEED100   0x2000
#define BMCR_LOOPBACK   0x4000
#define BMCR_RESET   0x8000

Basic mode status register

#define BMSR_ERCAP   0x0001
#define BMSR_JCD   0x0002
#define BMSR_LSTATUS   0x0004
#define BMSR_ANEGCAPABLE   0x0008
#define BMSR_RFAULT   0x0010
#define BMSR_ANEGCOMPLETE   0x0020
#define BMSR_MFPRESUPPCAP   0x0040
#define BMSR_RESV   0x0780
#define BMSR_10HALF   0x0800
#define BMSR_10FULL   0x1000
#define BMSR_100HALF   0x2000
#define BMSR_100FULL   0x4000
#define BMSR_100BASE4   0x8000

Advertisement control register

#define ADVERTISE_SLCT   0x001f
#define ADVERTISE_CSMA   0x0001
#define ADVERTISE_10HALF   0x0020
#define ADVERTISE_10FULL   0x0040
#define ADVERTISE_100HALF   0x0080
#define ADVERTISE_100FULL   0x0100
#define ADVERTISE_100BASE4   0x0200
#define ADVERTISE_PAUSE_CAP   0x0400
#define ADVERTISE_PAUSE_ASYM   0x0800
#define ADVERTISE_RESV   0x1000
#define ADVERTISE_RFAULT   0x2000
#define ADVERTISE_LPACK   0x4000
#define ADVERTISE_NPAGE   0x8000
#define ADVERTISE_FULL
#define ADVERTISE_ALL

Link partner ability register

#define LPA_SLCT   0x001f
#define LPA_10HALF   0x0020
#define LPA_10FULL   0x0040
#define LPA_100HALF   0x0080
#define LPA_100FULL   0x0100
#define LPA_100BASE4   0x0200
#define LPA_PAUSE_CAP   0x0400
#define LPA_PAUSE_ASYM   0x0800
#define LPA_RESV   0x1000
#define LPA_RFAULT   0x2000
#define LPA_LPACK   0x4000
#define LPA_NPAGE   0x8000
#define LPA_DUPLEX   (LPA_10FULL | LPA_100FULL)
#define LPA_100   (LPA_100FULL | LPA_100HALF | LPA_100BASE4)

Expansion register for auto-negotiation

#define EXPANSION_NWAY   0x0001
#define EXPANSION_LCWP   0x0002
#define EXPANSION_ENABLENPAGE   0x0004
#define EXPANSION_NPCAPABLE   0x0008
#define EXPANSION_MFAULTS   0x0010
#define EXPANSION_RESV   0xffe0

N-way test register

#define NWAYTEST_RESV1   0x00ff
#define NWAYTEST_LOOPBACK   0x0100
#define NWAYTEST_RESV2   0xfe00

PHY identifiers

#define MII_DM9161_ID   0x0181b8a0
#define MII_AM79C875_ID   0x00225540
#define MII_KSZ8081_ID   0x00221560
#define MII_KS8721_ID   0x00221610
#define MII_STE101P_ID   0x00061C50
#define MII_DP83848I_ID   0x20005C90
#define MII_LAN8710A_ID   0x0007C0F1
#define MII_LAN8720_ID   0x0007C0F0
#define MII_LAN8742A_ID   0x0007C130
#define MII_LAN8740A_ID   0x0007C110

Macro Definition Documentation

◆ MII_BMCR

#define MII_BMCR   0x00

Basic mode control register.

Definition at line 32 of file hal_mii.h.

◆ MII_BMSR

#define MII_BMSR   0x01

Basic mode status register.

Definition at line 33 of file hal_mii.h.

◆ MII_PHYSID1

#define MII_PHYSID1   0x02

PHYS ID 1.

Definition at line 34 of file hal_mii.h.

◆ MII_PHYSID2

#define MII_PHYSID2   0x03

PHYS ID 2.

Definition at line 35 of file hal_mii.h.

◆ MII_ADVERTISE

#define MII_ADVERTISE   0x04

Advertisement control reg.

Definition at line 36 of file hal_mii.h.

◆ MII_LPA

#define MII_LPA   0x05

Link partner ability reg.

Definition at line 37 of file hal_mii.h.

◆ MII_EXPANSION

#define MII_EXPANSION   0x06

Expansion register.

Definition at line 38 of file hal_mii.h.

◆ MII_ANNPTR

#define MII_ANNPTR   0x07

1000BASE-T control.

Definition at line 39 of file hal_mii.h.

◆ MII_CTRL1000

#define MII_CTRL1000   0x09

1000BASE-T control.

Definition at line 40 of file hal_mii.h.

◆ MII_STAT1000

#define MII_STAT1000   0x0a

1000BASE-T status.

Definition at line 41 of file hal_mii.h.

◆ MII_ESTATUS

#define MII_ESTATUS   0x0f

Extended Status.

Definition at line 42 of file hal_mii.h.

◆ MII_PHYSTS

#define MII_PHYSTS   0x10

PHY Status register.

Definition at line 43 of file hal_mii.h.

◆ MII_MICR

#define MII_MICR   0x11

MII Interrupt ctrl register.

Definition at line 44 of file hal_mii.h.

◆ MII_DCOUNTER

#define MII_DCOUNTER   0x12

Disconnect counter.

Definition at line 45 of file hal_mii.h.

◆ MII_FCSCOUNTER

#define MII_FCSCOUNTER   0x13

False carrier counter.

Definition at line 46 of file hal_mii.h.

◆ MII_NWAYTEST

#define MII_NWAYTEST   0x14

N-way auto-neg test reg.

Definition at line 47 of file hal_mii.h.

◆ MII_RERRCOUNTER

#define MII_RERRCOUNTER   0x15

Receive error counter.

Definition at line 48 of file hal_mii.h.

◆ MII_SREVISION

#define MII_SREVISION   0x16

Silicon revision.

Definition at line 49 of file hal_mii.h.

◆ MII_RESV1

#define MII_RESV1   0x17

Reserved.

Definition at line 50 of file hal_mii.h.

◆ MII_LBRERROR

#define MII_LBRERROR   0x18

Lpback, rx, bypass error.

Definition at line 51 of file hal_mii.h.

◆ MII_PHYADDR

#define MII_PHYADDR   0x19

PHY address.

Definition at line 52 of file hal_mii.h.

◆ MII_RESV2

#define MII_RESV2   0x1a

Reserved.

Definition at line 53 of file hal_mii.h.

◆ MII_TPISTATUS

#define MII_TPISTATUS   0x1b

TPI status for 10Mbps.

Definition at line 54 of file hal_mii.h.

◆ MII_NCONFIG

#define MII_NCONFIG   0x1c

Network interface config.

Definition at line 55 of file hal_mii.h.

◆ BMCR_RESV

#define BMCR_RESV   0x007f

Unused.

Definition at line 62 of file hal_mii.h.

◆ BMCR_CTST

#define BMCR_CTST   0x0080

Collision test.

Definition at line 63 of file hal_mii.h.

◆ BMCR_FULLDPLX

#define BMCR_FULLDPLX   0x0100

Full duplex.

Definition at line 64 of file hal_mii.h.

◆ BMCR_ANRESTART

#define BMCR_ANRESTART   0x0200

Auto negotiation restart.

Definition at line 65 of file hal_mii.h.

◆ BMCR_ISOLATE

#define BMCR_ISOLATE   0x0400

Disconnect DP83840 from MII.

Definition at line 66 of file hal_mii.h.

◆ BMCR_PDOWN

#define BMCR_PDOWN   0x0800

Powerdown.

Definition at line 67 of file hal_mii.h.

◆ BMCR_ANENABLE

#define BMCR_ANENABLE   0x1000

Enable auto negotiation.

Definition at line 68 of file hal_mii.h.

◆ BMCR_SPEED100

#define BMCR_SPEED100   0x2000

Select 100Mbps.

Definition at line 69 of file hal_mii.h.

◆ BMCR_LOOPBACK

#define BMCR_LOOPBACK   0x4000

TXD loopback bit.

Definition at line 70 of file hal_mii.h.

◆ BMCR_RESET

#define BMCR_RESET   0x8000

Reset.

Definition at line 71 of file hal_mii.h.

◆ BMSR_ERCAP

#define BMSR_ERCAP   0x0001

Ext-reg capability.

Definition at line 78 of file hal_mii.h.

◆ BMSR_JCD

#define BMSR_JCD   0x0002

Jabber detected.

Definition at line 79 of file hal_mii.h.

◆ BMSR_LSTATUS

#define BMSR_LSTATUS   0x0004

Link status.

Definition at line 80 of file hal_mii.h.

◆ BMSR_ANEGCAPABLE

#define BMSR_ANEGCAPABLE   0x0008

Able to do auto-negotiation.

Definition at line 81 of file hal_mii.h.

◆ BMSR_RFAULT

#define BMSR_RFAULT   0x0010

Remote fault detected.

Definition at line 82 of file hal_mii.h.

◆ BMSR_ANEGCOMPLETE

#define BMSR_ANEGCOMPLETE   0x0020

Auto-negotiation complete.

Definition at line 83 of file hal_mii.h.

◆ BMSR_MFPRESUPPCAP

#define BMSR_MFPRESUPPCAP   0x0040

Able to suppress preamble.

Definition at line 84 of file hal_mii.h.

◆ BMSR_RESV

#define BMSR_RESV   0x0780

Unused.

Definition at line 85 of file hal_mii.h.

◆ BMSR_10HALF

#define BMSR_10HALF   0x0800

Can do 10mbps, half-duplex.

Definition at line 86 of file hal_mii.h.

◆ BMSR_10FULL

#define BMSR_10FULL   0x1000

Can do 10mbps, full-duplex.

Definition at line 87 of file hal_mii.h.

◆ BMSR_100HALF

#define BMSR_100HALF   0x2000

Can do 100mbps, half-duplex.

Definition at line 88 of file hal_mii.h.

◆ BMSR_100FULL

#define BMSR_100FULL   0x4000

Can do 100mbps, full-duplex.

Definition at line 89 of file hal_mii.h.

◆ BMSR_100BASE4

#define BMSR_100BASE4   0x8000

Can do 100mbps, 4k packets.

Definition at line 90 of file hal_mii.h.

◆ ADVERTISE_SLCT

#define ADVERTISE_SLCT   0x001f

Selector bits.

Definition at line 97 of file hal_mii.h.

◆ ADVERTISE_CSMA

#define ADVERTISE_CSMA   0x0001

Only selector supported.

Definition at line 98 of file hal_mii.h.

◆ ADVERTISE_10HALF

#define ADVERTISE_10HALF   0x0020

Try for 10mbps half-duplex.

Definition at line 99 of file hal_mii.h.

◆ ADVERTISE_10FULL

#define ADVERTISE_10FULL   0x0040

Try for 10mbps full-duplex.

Definition at line 100 of file hal_mii.h.

◆ ADVERTISE_100HALF

#define ADVERTISE_100HALF   0x0080

Try for 100mbps half-duplex.

Definition at line 101 of file hal_mii.h.

◆ ADVERTISE_100FULL

#define ADVERTISE_100FULL   0x0100

Try for 100mbps full-duplex.

Definition at line 102 of file hal_mii.h.

◆ ADVERTISE_100BASE4

#define ADVERTISE_100BASE4   0x0200

Try for 100mbps 4k packets.

Definition at line 103 of file hal_mii.h.

◆ ADVERTISE_PAUSE_CAP

#define ADVERTISE_PAUSE_CAP   0x0400

Try for pause.

Definition at line 104 of file hal_mii.h.

◆ ADVERTISE_PAUSE_ASYM

#define ADVERTISE_PAUSE_ASYM   0x0800

Try for asymetric pause.

Definition at line 105 of file hal_mii.h.

◆ ADVERTISE_RESV

#define ADVERTISE_RESV   0x1000

Unused.

Definition at line 106 of file hal_mii.h.

◆ ADVERTISE_RFAULT

#define ADVERTISE_RFAULT   0x2000

Say we can detect faults.

Definition at line 107 of file hal_mii.h.

◆ ADVERTISE_LPACK

#define ADVERTISE_LPACK   0x4000

Ack link partners response.

Definition at line 108 of file hal_mii.h.

◆ ADVERTISE_NPAGE

#define ADVERTISE_NPAGE   0x8000

Next page bit.

Definition at line 109 of file hal_mii.h.

◆ ADVERTISE_FULL

#define ADVERTISE_FULL
Value:
#define ADVERTISE_100FULL
Definition hal_mii.h:102
#define ADVERTISE_10FULL
Definition hal_mii.h:100
#define ADVERTISE_CSMA
Definition hal_mii.h:98

Definition at line 111 of file hal_mii.h.

◆ ADVERTISE_ALL

#define ADVERTISE_ALL
Value:
#define ADVERTISE_10HALF
Definition hal_mii.h:99
#define ADVERTISE_100HALF
Definition hal_mii.h:101

Definition at line 113 of file hal_mii.h.

◆ LPA_SLCT

#define LPA_SLCT   0x001f

Same as advertise selector.

Definition at line 121 of file hal_mii.h.

◆ LPA_10HALF

#define LPA_10HALF   0x0020

Can do 10mbps half-duplex.

Definition at line 122 of file hal_mii.h.

◆ LPA_10FULL

#define LPA_10FULL   0x0040

Can do 10mbps full-duplex.

Definition at line 123 of file hal_mii.h.

◆ LPA_100HALF

#define LPA_100HALF   0x0080

Can do 100mbps half-duplex.

Definition at line 124 of file hal_mii.h.

◆ LPA_100FULL

#define LPA_100FULL   0x0100

Can do 100mbps full-duplex.

Definition at line 125 of file hal_mii.h.

◆ LPA_100BASE4

#define LPA_100BASE4   0x0200

Can do 100mbps 4k packets.

Definition at line 126 of file hal_mii.h.

◆ LPA_PAUSE_CAP

#define LPA_PAUSE_CAP   0x0400

Can pause.

Definition at line 127 of file hal_mii.h.

◆ LPA_PAUSE_ASYM

#define LPA_PAUSE_ASYM   0x0800

Can pause asymetrically.

Definition at line 128 of file hal_mii.h.

◆ LPA_RESV

#define LPA_RESV   0x1000

Unused.

Definition at line 129 of file hal_mii.h.

◆ LPA_RFAULT

#define LPA_RFAULT   0x2000

Link partner faulted.

Definition at line 130 of file hal_mii.h.

◆ LPA_LPACK

#define LPA_LPACK   0x4000

Link partner acked us.

Definition at line 131 of file hal_mii.h.

◆ LPA_NPAGE

#define LPA_NPAGE   0x8000

Next page bit.

Definition at line 132 of file hal_mii.h.

◆ LPA_DUPLEX

#define LPA_DUPLEX   (LPA_10FULL | LPA_100FULL)

Definition at line 134 of file hal_mii.h.

◆ LPA_100

#define LPA_100   (LPA_100FULL | LPA_100HALF | LPA_100BASE4)

Definition at line 135 of file hal_mii.h.

◆ EXPANSION_NWAY

#define EXPANSION_NWAY   0x0001

Can do N-way auto-nego.

Definition at line 142 of file hal_mii.h.

◆ EXPANSION_LCWP

#define EXPANSION_LCWP   0x0002

Got new RX page code word.

Definition at line 143 of file hal_mii.h.

◆ EXPANSION_ENABLENPAGE

#define EXPANSION_ENABLENPAGE   0x0004

This enables npage words.

Definition at line 144 of file hal_mii.h.

◆ EXPANSION_NPCAPABLE

#define EXPANSION_NPCAPABLE   0x0008

Link partner supports npage.

Definition at line 145 of file hal_mii.h.

◆ EXPANSION_MFAULTS

#define EXPANSION_MFAULTS   0x0010

Multiple faults detected.

Definition at line 146 of file hal_mii.h.

◆ EXPANSION_RESV

#define EXPANSION_RESV   0xffe0

Unused.

Definition at line 147 of file hal_mii.h.

◆ NWAYTEST_RESV1

#define NWAYTEST_RESV1   0x00ff

Unused.

Definition at line 154 of file hal_mii.h.

◆ NWAYTEST_LOOPBACK

#define NWAYTEST_LOOPBACK   0x0100

Enable loopback for N-way.

Definition at line 155 of file hal_mii.h.

◆ NWAYTEST_RESV2

#define NWAYTEST_RESV2   0xfe00

Unused.

Definition at line 156 of file hal_mii.h.

◆ MII_DM9161_ID

#define MII_DM9161_ID   0x0181b8a0

Definition at line 163 of file hal_mii.h.

◆ MII_AM79C875_ID

#define MII_AM79C875_ID   0x00225540

Definition at line 164 of file hal_mii.h.

◆ MII_KSZ8081_ID

#define MII_KSZ8081_ID   0x00221560

Definition at line 165 of file hal_mii.h.

◆ MII_KS8721_ID

#define MII_KS8721_ID   0x00221610

Definition at line 166 of file hal_mii.h.

◆ MII_STE101P_ID

#define MII_STE101P_ID   0x00061C50

Definition at line 167 of file hal_mii.h.

◆ MII_DP83848I_ID

#define MII_DP83848I_ID   0x20005C90

Definition at line 168 of file hal_mii.h.

◆ MII_LAN8710A_ID

#define MII_LAN8710A_ID   0x0007C0F1

Definition at line 169 of file hal_mii.h.

◆ MII_LAN8720_ID

#define MII_LAN8720_ID   0x0007C0F0

Definition at line 170 of file hal_mii.h.

◆ MII_LAN8742A_ID

#define MII_LAN8742A_ID   0x0007C130

Definition at line 171 of file hal_mii.h.

◆ MII_LAN8740A_ID

#define MII_LAN8740A_ID   0x0007C110

Definition at line 172 of file hal_mii.h.