Home | History | Annotate | Download | only in mii
History log of /src/sys/dev/mii/makphyreg.h
RevisionDateAuthorComments
 1.12  26-Feb-2024  andvar s/Transmi /Transmit / in comments.
 1.11  03-Aug-2020  msaitoh Rename PSSR_* to MAKPHY_PSSR_* and IGPHY_PSSR_* to avoid conflict.
No functional change.
 1.10  12-Dec-2019  msaitoh - Remove ESSR_FIBER_LINK bit check in makphyattach(). This bit is valid only
when the link is up, so it's not good to check in the attach function.
- There is an environment that both copper and fiber bits are set in EXTSR
but it support copper only. To resolve this problem, check the ESSR
register's HWCFG_MODE bit and drop unsupported bits.
- If the chip is in Fiber/Copper auto select mode, check which media is
selected. Currently, the code supports 88E1011, 88E1111 and 88E1112 only.
To support other chips documents are required.
 1.9  28-Dec-2018  msaitoh branches: 1.9.4; 1.9.6;
- Backout some changes done in rev. 1.44. OK'd by jdolecek@:
- Remove e1000phyreg.h and use makphyreg.h again.
- Remove Energy detect stuff. Leave it by default.
- Remove MDI crossover configuraton. Leave it by default. I think it's OK to
add new API to change the mode.
- PHY_RESET() is used to commit some changes, so I think it's not good to
always clear BMCR_AUTOEN before reset in makphy_reset().
- It's not required to read MII_100T2SR twice because this register has no
any bit which is latched.
- Use mii_phy_reset() instead of extracted code.
- Don't set PSCR_CRS_ON_TX on newer. Those chips have no this bit.
- Add some "XXX FIXME" comment. Non GMII mode uses different page except
very old chip. Some bits are at the same location but others are not.
- Remove obsolete comment.
- s/MII_MAKPHY_/MAKPHY_/

XXX rev. 1.44 changed the setting of mii_media_active when the interface is
set to other than auto. I suspect the intention of the change is to reflect
the link up/down status. But, it didn't work because non auto setting makes
PSSR_LINK bit alwasy set "without modifing some registers".
This commit won't fix the change and it'll be fixed in the next commit.
 1.8  25-Dec-2018  msaitoh Re-add makphyreg.h
 1.7  16-Jun-2018  jdolecek switch to using OpenBSD eehpy(4) code to drive maphy(4), synchronizing support
for several special PHY conditions, particularly:
- Properly re-initialise the PHY upon resume
- Store next page in the Link Partner Next Page register for compatibility
with 802.3ab on 88E3016 PHYs. Fixes some autonegotiation problems on msk(4)
- Make 88E3016 actually work
- Make sure page 0 is selected when we initialize the PHY. Fixes problems
with the eephy(4) that attaches to nfe(4) on machines like the Sun Ultra 40.
(we had condition for this, now the page 0 is selected for any PHY type)
- Disable fiber/copper auto-selection on the 88E1111 if it is in RGMII mode, to
work around the fact that the onboard PHYs attached to nfe(4) on the Sun
X4100 M2 have fiber/copper auto-selection enabled even though the interfaces
are clearly copper-only

make sure to also add appropriate licenses, since basically nothing
really significant remains out of previous code

use FreeBSD <dev/mii/e1000reg.h> for register definitions as a base instead
of OpenBSD <dev/mii/eephyreg.h>, since it has some extra definitions for some
3016 bits, but add the several extra bits from OpenBSD needed by the code;
removed no longed used <dev/mii/makphyreg.h>

tested with PHY 88E1111, there no particular change observed - the
link status works as it did before, just now it does media nego
even before the interface is up

should however fix 88E3016 support and hence PR kern/49270 and PR kern/53301
 1.6  13-May-2014  christos branches: 1.6.20; 1.6.26;
new register.
 1.5  19-Apr-2009  msaitoh branches: 1.5.22; 1.5.26; 1.5.36;
Oooops. Back out some of previous my commit.
 1.4  19-Apr-2009  msaitoh Some fixes and enhancements:

Both if_bge* and brgphy.[ch]:
Check the parent's MAC and use the quirk code for the bug like OpenBSD and
FreeBSD. Some bugs can't identify the PHY ID. For example, 5704 Ax has the
ADC bug, but 5704 A3 and 5704 B0 have the same PHY ID and revision. Add
BGE_PHY_CRC_BUG, BGE_PHY_ADC_BUG, BGE_PHY_5704_A0_BUG, BGE_PHY_JITTER_BUG,
BGE_PHY_ADJUST_TRIM and BGE_PHY_BER_BUG for this flag. Some of the DSP
patches are newly taken from OpenBSD and FreeBSD.

if_bge*:
Remove duplicated BGE_CHIPID_BCM5714_A0 entry in the known CHIPID table.
Fix obsolete comments.

brgphy.[ch]:
Add some PHY IDs.

TODO:
Add more three quirk code into bge and brgphy (the brgphy side's are
currently #if0'ed).
Add support for bnx into brgphy (currently #if0'ed)
 1.3  28-Apr-2008  martin branches: 1.3.8; 1.3.14;
Remove clause 3 and 4 from TNF licenses
 1.2  25-Dec-2006  wiz branches: 1.2.40; 1.2.42; 1.2.44;
Spell "threshold" correctly. From Zafer Aydogan.
 1.1  12-Jul-2001  thorpej branches: 1.1.2; 1.1.4; 1.1.40; 1.1.70;
Driver for the Marvell 88E1000 ``Alaska'' 10/100/1000 PHY.
 1.1.70.1  12-Jan-2007  ad Sync with head.
 1.1.40.1  30-Dec-2006  yamt sync with head.
 1.1.4.2  24-Aug-2001  nathanw Catch up with -current.
 1.1.4.1  12-Jul-2001  nathanw file makphyreg.h was added on branch nathanw_sa on 2001-08-24 00:09:58 +0000
 1.1.2.2  03-Aug-2001  lukem update to -current
 1.1.2.1  12-Jul-2001  lukem file makphyreg.h was added on branch kqueue on 2001-08-03 04:13:13 +0000
 1.2.44.1  16-May-2008  yamt sync with head.
 1.2.42.1  18-May-2008  yamt sync with head.
 1.2.40.1  02-Jun-2008  mjf Sync with HEAD.
 1.3.14.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.3.8.1  28-Apr-2009  skrll Sync with HEAD.
 1.5.36.1  10-Aug-2014  tls Rebase.
 1.5.26.1  18-May-2014  rmind sync with head
 1.5.22.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.6.26.3  18-Jan-2019  pgoyette Synch with HEAD
 1.6.26.2  26-Dec-2018  pgoyette Sync with HEAD, resolve a few conflicts
 1.6.26.1  25-Jun-2018  pgoyette Sync with HEAD
 1.6.20.3  05-Aug-2020  martin Pull up the following revisions, requested by msaitoh in ticket #1594:

sys/dev/pci/if_wm.c 1.655-1.658, 1.660,
1.662, 1.664-1.668,
1.671-1.674, 1.678,
1.680-1.685 via patch
sys/dev/pci/if_wmreg.c 1.118-1.119 via patch
sys/dev/pci/if_wmvar.c 1.45 via patch
sys/dev/mii/igphy.c 1.35-1.36 via patch
sys/dev/mii/igphyreg.h 1.12-1.13
sys/dev/mii/makphy.c 1.66 via patch
sys/dev/mii/makphyreg.h 1.11

- Add SFP support. Module insertion/removal is not supported yet.
Currently, SFP detection is only done in the driver's attach phase.
- Detect the Media Auto Sense feature. Not supported yet.
- Fix SFF_SFP_ETH_FLAGS_100FX. It's not 0x10 but 0x20.
- Add extra delay in wm_serdes_power_up_link_82575().
- Add Intel I219 LM10-LM15 and V10-V14.
- wm(4) can use workqueue as deferred Rx/Tx handler).
Set hw.wm*.txrx_workqueue=1 to use workqueue instead of softint.
The default value of hw.wm*.txrx_workqueue is 0 which use softint
as before.
- Unset RSS UDP flags like ixg(4) and other OSes. To handle IP
fragmented UDP, first packet and second packet should be processed
in the same Rx queue.
- It's useless to not to set PCI_PMCSR_PME_STS bit when writing because
the bit is W1C. Instead, always write PCI_PMCSR_PME_STS bit to clear
in case it's already set.
- Actually writing always the checksum offload context descriptor
makes the HW do extra processing, avoid doing that if possible.
- Fix a bug that the WMREG_EEARBC_I210 register is incorrectly set if
the system uses iNVM.
- "wmX: 0" on 82542 is difficult to understand, so don't print it.
- Explicitly cast from uint16_t to uint32_t before shifting 16bit left
when printing Image Unique ID to avoid undefined behavior.
- Set if_baudrate for non-MII device.
- Rename some macros and function.
- KNF. Add comment.
 1.6.20.2  28-Jan-2020  martin Pull up the following, requested by msaitoh in ticket #1493:

sys/dev/mii/makphy.c 1.61, 1.63-1.64 via patch
sys/dev/mii/makphyreg.h 1.10

- Remove ESSR_FIBER_LINK bit check in makphyattach(). This bit is
valid only when the link is up, so it's not good to check in the
attach function.
- There is an environment that both copper and fiber bits are set in
EXTSR but it support copper only. To resolve this problem, check the
ESSR register's HWCFG_MODE bit and drop unsupported bits.
- If the chip is in Fiber/Copper auto select mode, check which media is
selected. Currently, the code supports 88E1011, 88E1111 and 88E1112
only.
- Fix comment. KNF.
 1.6.20.1  17-Jan-2019  martin Pull up the following (requested by msaitoh in ticket #1164):

sys/dev/mii/miidevs 1.128, 1.132 (patch)
sys/dev/mii/makphy.c 1.43-1.51
sys/dev/mii/makphyreg.h 1.7-1.9

- miidevs: Add E1000 with model id 0x0006, it exists according to
OpenBSD rename E1000 model 0x0000 to E1000_0 for consistency.
- Match 88E1112, 88E1118, 88E1512, 88E3082 and G65G.
- Match 88E3016 and add some 88E3016 specific code. Fixes part of
PR kern/49270 and PR kern/53301.
- Make sure page 0 is selected when we initialize the PHY. Fixes
problems with the eephy(4) that attaches to nfe(4) on machines like
the Sun Ultra 40. (we had condition for this, now the page 0 is
selected for any PHY type)
- If autonegotiation is not enabled, we need a software reset for the
settings to take effect in makphy_service().
- Don't set PSCR_CRS_ON_TX on newer. Those chips have no this bit.
- Control BMCR_PDOWN for IFM_NONE. Some chips still don't work as
expected. It would be required to modify PSCR and/or other register.
- Set mii_media_active correctly on non-autonego mode.
- Remove obsolete comment.
- Whitespace fix.
 1.9.6.2  05-Aug-2020  martin Pull up following revision(s) (requested by msaitoh in ticket #1040):

sys/dev/mii/igphy.c: revision 1.35
sys/dev/mii/igphy.c: revision 1.36
sys/dev/mii/igphyreg.h: revision 1.12
sys/dev/mii/igphyreg.h: revision 1.13
sys/dev/mii/makphyreg.h: revision 1.11
sys/dev/pci/if_wm.c: revision 1.682
sys/dev/pci/if_wm.c: revision 1.683
sys/dev/pci/if_wm.c: revision 1.684
sys/dev/pci/if_wm.c: revision 1.685
sys/dev/mii/makphy.c: revision 1.66

s/MII_IGPHY_/IGPHY_/. No functional change.

Rename PSSR_* to MAKPHY_PSSR_* and IGPHY_PSSR_* to avoid conflict.
No functional change.

Setup PCS and SGMII for SFP correctly. It still doesn't support SFP
insertion/removal.

Copper:
wm2: SGMII(SFP)
wm2: 0x1043c440<SPI,IOH_VALID,PCIE,SGMII,NEWQUEUE,ASF_FIRM,EEE,SFP>
makphy0 at wm2 phy 6: Marvell 88E1111 Gigabit PHY, rev. 1

Fiber:
wm3: SERDES(SFP)
wm3: 0x10034440<SPI,IOH_VALID,PCIE,NEWQUEUE,ASF_FIRM,SFP>
wm3: 1000baseSX, 1000baseSX-FDX, auto

Explicitly cast from uint16_t to uint32_t before shifting 16bit left
when printing Image Unique ID. Found by kUBSan.

Set if_baudrate for non-MII device. Before this commit, it was 0.
 1.9.6.1  28-Jan-2020  martin Pull up the following, requested by msaitoh in ticket #663:

sys/dev/mii/makphy.c 1.61, 1.63-1.64 via patch
sys/dev/mii/makphyreg.h 1.10

- Remove ESSR_FIBER_LINK bit check in makphyattach(). This bit is
valid only when the link is up, so it's not good to check in the
attach function.
- There is an environment that both copper and fiber bits are set in
EXTSR but it support copper only. To resolve this problem, check the
ESSR register's HWCFG_MODE bit and drop unsupported bits.
- If the chip is in Fiber/Copper auto select mode, check which media is
selected. Currently, the code supports 88E1011, 88E1111 and 88E1112
only.
- Fix comment. KNF.
 1.9.4.3  08-Apr-2020  martin Merge changes from current as of 20200406
 1.9.4.2  10-Jun-2019  christos Sync with HEAD
 1.9.4.1  28-Dec-2018  christos file makphyreg.h was added on branch phil-wifi on 2019-06-10 22:07:14 +0000

RSS XML Feed