| History log of /src/sys/dev/mii/makphyreg.h | 
    | Revision |  | Date | Author | Comments | 
| 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 
 |