Home | History | Annotate | Download | only in mii
History log of /src/sys/dev/mii/rlphy.c
RevisionDateAuthorComments
 1.39  15-Mar-2020  thorpej Define and implement a locking protocol for the ifmedia / mii layers:
- MP-safe drivers provide a mutex to ifmedia that is used to serialize
access to media-related structures / hardware regsiters. Converted
drivers use the new ifmedia_init_with_lock() function for this. The
new name is provided to ease the transition.
- Un-converted drivers continue to call ifmedia_init(), which will supply
a compatibility lock to be used instead. Several media-related entry
points must be aware of this compatibility lock, and are able to acquire
it recursively a limited number of times, if needed. This is a SPIN
mutex with priority IPL_NET.
- This same lock is used to serialize access to PHY registers and other
MII-related data structures.

The PHY drivers are modified to acquire and release the lock, as needed,
and assert the lock is held as a diagnostic aid.

The "usbnet" framework has had an overhaul of its internal locking
protocols to fit in with the media / mii changes, and the drivers adapted.

USB wifi drivers have been changed to provide their own adaptive mutex
to the ifmedia later via a new ieee80211_media_init_with_lock() function.
This is required because the USB drivers need an adaptive mutex.

Besised "usbnet", a few other drivers are converted: vmx, wm, ixgbe / ixv.

mcx also now calls ifmedia_init_with_lock() because it needs to also use
an adaptive mutex. The mcx driver still needs to be fully converted to
NET_MPSAFE.
 1.38  27-Nov-2019  msaitoh - Simplify sc->mii_anegticks setting. Same as FreeBSD.

Don't set the default value not in the attach function. Instead, set the
default value (MII_ANEGTICKS) first in the beginning of the
mii_phy_add_media(). The function already has the code to change the value to
MII_ANEGTICKS_GIGE if it's gigabit capable.

- Remove extra pmf_device_register() call. It's done in mii_phy_add_media().
 1.37  19-Sep-2019  msaitoh - ICPLUS -> xxICPLUS
- Print model name if it's ICPLUS IP101 to avoid "Realtek internal PHY".
 1.36  25-Mar-2019  msaitoh branches: 1.36.4;
KNF. No functional change.
 1.35  08-Mar-2019  msaitoh Use static.
 1.34  24-Feb-2019  christos use a macro to tidy up the phydesc array initialization, from FreeBSD
 1.33  09-Feb-2019  rin Support RTL8152. Tested on ure(4) (RTL8152).
 1.32  22-Jan-2019  msaitoh Change MII PHY read/write API from:

int (*mii_readreg_t)(device_t, int, int);
void (*mii_writereg_t)(device_t, int, int, int);
to:

int (*mii_readreg_t)(device_t, int, int, uint16_t *);
int (*mii_writereg_t)(device_t, int, int, uint16_t);

Now we can test if a read/write operation failed or not by the return value.

In 802.3 spec says that the PHY shall not respond to read/write transaction
to the unimplemented register(22.2.4.3). Detecting timeout can be used to
check whether a register is implemented or not (if the register conforms to
the spec). ukphy(4) can be used this for MII_MMDACR and MII_MMDAADR.

Note that I noticed that the following code do infinite loop in the
read/wirte function. If it accesses unimplemented PHY register, it will hang.
It should be fixed:

arm/at91/at91emac.c
arm/ep93xx/epe.c
arm/omap/omapl1x_emac.c
mips/ralink/ralink_eth.c
arch/powerpc/booke/dev/pq3etsec.c(read)
dev/cadence/if_cemac.c <- hkenken
dev/ic/lan9118.c


Tested with the following device:

axe+ukphy
axe+rgephy
axen+rgephy (tested by Andrius V)
wm+atphy
wm+ukphy
wm+igphy
wm+ihphy
wm+makphy
sk+makphy
sk+brgphy
sk+gentbi
msk+makphy
sip+icsphy
sip+ukphy
re+rgephy
bge+brgphy
bnx+brgphy
gsip+gphyter
rtk+rlphy
fxp+inphy (tested by Andrius V)
tlp+acphy
ex+exphy
epic+qsphy
vge+ciphy (tested by Andrius V)
vr+ukphy (tested by Andrius V)
vte+ukphy (tested by Andrius V)

Not tested (MAC):
arm:at91emac
arm:cemac
arm:epe
arm:geminigmac
arm:enet
arm:cpsw
arm:emac(omac)
arm:emac(sunxi)
arm:npe
evbppc:temac
macppc:bm
macppc:gm
mips:aumac
mips:ae
mips:cnmac
mips:reth
mips:sbmac
playstation2:smap
powerpc:tsec
powerpc:emac(ibm4xx)
sgimips:mec
sparc:be
sf
ne(ax88190, dl10019)
awge
ep
gem
hme
smsh
mtd
sm
age
alc
ale
bce
cas
et
jme
lii
nfe
pcn
ste
stge
tl
xi
aue
mue
smsc
udav
url

Not tested (PHY):
amhphy
bmtphy
dmphy
etphy
glxtphy
ikphy
iophy
lxtphy
nsphyter
pnaphy
rdcphy
sqphy
tlphy
tqphy
urlphy
 1.31  07-Jan-2019  msaitoh Fix a bug that rlphy might ignore the link partner's advertised speed.
 1.30  07-Jul-2016  msaitoh branches: 1.30.10; 1.30.16; 1.30.18;
KNF. Remove extra spaces. No functional change.
 1.29  16-Jun-2014  msaitoh branches: 1.29.4;
IFM_FDX and IFM_HDX use different bit, so set IFM_HDX bit if it's not full
duplex. For many drivers, it recognize half duplex if IFM_FDX isn't set,
but not for others. Same as {Free|Open}BSD.
 1.28  16-Jun-2014  msaitoh No functional change:
- Fix typo.
- Remove trailing white spaces.
- Capitalize comments.
- Tabify.
- KNF.
 1.27  20-Jan-2011  pooka branches: 1.27.10; 1.27.14; 1.27.28;
Match only first instance of rlphy, following suite from Free/OpenBSD.

should fix PR kern/42950, variant of patch from "js" on irc
 1.26  14-Nov-2010  mlelstv branches: 1.26.2; 1.26.4;
rlphy fails to work without autonegotiation.

Reason is that ifm_data does not store BMCR data but a media index
that gets poked into the BMCR register.

Setting the BMCR and ANAR registers is correctly handled by the
generic function mii_phy_setmedia.
 1.25  16-Feb-2009  cegger branches: 1.25.4;
fix media priorities:

IEEE 802.3 Annex 28B.3 specifies the following relative
priorities of the technologies supported by
802.3 Selector Field value:

1000BASE-T full duplex
1000BASE-T
100BASE-T2 full duplex
100BASE-TX full duplex
100BASE-T2
100BASE-T4
100BASE-TX
10BASE-T full duplex
10BAST-T

Our drivers give 100BASE-T4 a higher priority than
100BASE-TX full duplex.
Fix this. This patch is based on changes in FreeBSD and OpenBSD.

Patch presented on tech-kern and tech-net:
http://mail-index.netbsd.org/tech-kern/2009/02/15/msg004397.html
http://mail-index.netbsd.org/tech-net/2009/02/15/msg001064.html

got no comments, no objections.
 1.24  16-Jan-2009  cegger branches: 1.24.2;
Use mii_anar(). No functional change.
 1.23  17-Nov-2008  dyoung Reduce code duplication: most PHY drivers call mii_phy_add_media()
when they attach to the device tree, so call pmf_device_register(9)
once there instead of once in more than twenty drivers.
 1.22  04-May-2008  xtraeme branches: 1.22.6; 1.22.8; 1.22.10; 1.22.14;
device_t/softc split for all mii(4) devices, and other related
cosmetic changes.
 1.21  08-Apr-2008  cegger branches: 1.21.2; 1.21.4;
use aprint_*_dev and device_xname
 1.20  29-Dec-2007  dyoung branches: 1.20.6;
Remove the device_is_active() check from each individual PHY's
service routine. Add a wrapper for PHY_SERVICE(), called phy_service(),
and check device_is_active() there. Make the mii_*() routines call
the PHY service routines thorugh phy_service() instead of PHY_SERVICE().

In mii_phy_resume(), restore a PHY's state after resetting it by
sending a MII_MEDIACHG command. This change makes bnx(4) resume
more reliably and more quickly; it should help other NICs to resume,
too, if they attach PHYs through MII.
 1.19  09-Dec-2007  jmcneill branches: 1.19.2;
Merge jmcneill-pm branch.
 1.18  06-Nov-2007  uwe branches: 1.18.2; 1.18.4;
Add missing aprint_naive("\n"); in rlphyattach.
 1.17  19-Oct-2007  ad branches: 1.17.2;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.16  13-Oct-2007  isaki branches: 1.16.2;
Correct indent.
 1.15  09-May-2007  tsutsui branches: 1.15.6; 1.15.8; 1.15.10;
Fix wrong softc size (missed in the previous).
 1.14  20-Mar-2007  tsutsui Prepare sc_rtl8201l flag in softc and use it in rlphy_status() so that
we don't have to check device names of device_parent(). From FreeBSD.
 1.13  19-Mar-2007  tsutsui Prepare rlphy_reset() and set BMCR_AUTOEN in it.
This makes autonegotiation on rlphy(4) at re(4)
on landisk (8139C+) select 100baseTX full-duplex
at boot time (before first ifconfig) properly,
and there is no bad side effect on rlphy(4) at nfe(4).

This may also fix PR kern/34109.
 1.12  16-Nov-2006  christos branches: 1.12.2; 1.12.4; 1.12.8; 1.12.10; 1.12.12; 1.12.14; 1.12.16;
__unused removal on arguments; approved by core.
 1.11  03-Nov-2006  tsutsui Make rlphy also match if parent MII is re(4) for RTL8139C+ case.
Tested by Brian A. Seklecki.
 1.10  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.9  29-Mar-2006  thorpej branches: 1.9.6; 1.9.10; 1.9.12;
Use device_private().
 1.8  25-Mar-2006  thorpej Use device_parent().
 1.7  14-Mar-2006  chs branches: 1.7.2;
add an rlphy clone from IC Plus. from openbsd.
 1.6  12-Mar-2006  chs fix match for RealTek 8201L.
 1.5  28-Feb-2006  kleink branches: 1.5.2; 1.5.4;
Reduce previous (!is(...) != 0) to (!is(...)).
 1.4  27-Feb-2006  thorpej Use device_is_a() more.
 1.3  27-Feb-2006  thorpej Use device_is_a().
 1.2  20-Feb-2006  thorpej Use device_is_active() rather than testing dv_flags for DVF_ACTIVE
directly.
 1.1  04-Jan-2006  xtraeme branches: 1.1.2; 1.1.4; 1.1.6;
Add rlphy(4) (Realtek 8139/8201L PHY) from OpenBSD.
 1.1.6.1  22-Apr-2006  simonb Sync with head.
 1.1.4.1  09-Sep-2006  rpaulo sync with head
 1.1.2.3  01-Mar-2006  yamt sync with head.
 1.1.2.2  15-Jan-2006  yamt sync with head.
 1.1.2.1  04-Jan-2006  yamt file rlphy.c was added on branch yamt-uio_vmspace on 2006-01-15 10:02:48 +0000
 1.5.4.1  19-Apr-2006  elad sync with head.
 1.5.2.2  01-Apr-2006  yamt sync with head.
 1.5.2.1  13-Mar-2006  yamt sync with head.
 1.7.2.2  31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.7.2.1  28-Mar-2006  tron Merge 2006-03-28 NetBSD-current into the "peter-altq" branch.
 1.9.12.2  10-Dec-2006  yamt sync with head.
 1.9.12.1  22-Oct-2006  yamt sync with head
 1.9.10.1  18-Nov-2006  ad Sync with head.
 1.9.6.7  21-Jan-2008  yamt sync with head
 1.9.6.6  15-Nov-2007  yamt sync with head.
 1.9.6.5  27-Oct-2007  yamt sync with head.
 1.9.6.4  03-Sep-2007  yamt sync with head.
 1.9.6.3  30-Dec-2006  yamt sync with head.
 1.9.6.2  21-Jun-2006  yamt sync with head.
 1.9.6.1  29-Mar-2006  yamt file rlphy.c was added on branch yamt-lazymbuf on 2006-06-21 15:04:46 +0000
 1.12.16.1  03-Jun-2008  skrll Sync with netbsd-4.
 1.12.14.1  29-Mar-2007  reinoud Pullup to -current
 1.12.12.1  11-Jul-2007  mjf Sync with head.
 1.12.10.3  23-Oct-2007  ad Sync with head.
 1.12.10.2  27-May-2007  ad Sync with head.
 1.12.10.1  10-Apr-2007  ad Sync with head.
 1.12.8.2  03-Mar-2007  bouyer Pull up following revision(s) (requested by tsutsui in ticket #1673):
distrib/sets/lists/man/mi 1.844, 1.871
share/man/man4/Makefile 1.372, 1.379 via patch
share/man/man4/re.4 1.8, 1.9, 1.11, 1.12
share/man/man4/rgephy.4 1.1
share/man/man4/rlphy.4 1.1, 1.2
sys/arch/amd64/conf/GENERIC 1.79, 1.89
sys/arch/amd64/conf/INSTALL 1.45, 1.49
sys/arch/i386/conf/GENERIC 1.717, 1.747
sys/arch/i386/conf/GENERIC_LAPTOP 1.164
sys/arch/i386/conf/INSTALL 1.277, 1.283
sys/arch/i386/conf/INSTALL_LAPTOP 1.96, 1.98
sys/arch/i386/conf/XEN2_DOM0 1.22 via patch
sys/arch/macppc/conf/GENERIC 1.220, 1.246
sys/arch/macppc/conf/INSTALL 1.96, 1.100
sys/dev/cardbus/if_re_cardbus.c 1.10
sys/dev/cardbus/if_rtk_cardbus.c 1.29-1.31
sys/dev/ic/rtl8169.c 1.14, 1.20, 1.24, 1.25, 1.28-1.61, 1.63, 1.64-1.81 via patch
sys/dev/ic/rtl81x9.c 1.52, 1.54-1.63, 1.65, 1.67-1.70
sys/dev/ic/rtl81x9reg.h 1.15-1.26
sys/dev/ic/rtl81x9var.h 1.19, 1.21-1.37
sys/dev/mii/files.mii 1.38
sys/dev/mii/miidevs 1.62, 1.64
sys/dev/mii/rgephy.c 1.10, 1.13-1.16
sys/dev/mii/rlphy.c 1.1, 1.6, 1.7, 1.11 via patch
sys/dev/pci/if_re_pci.c 1.13, 1.15-1.17, 1.19-1.23
sys/dev/pci/if_rtk_pci.c 1.25, 1.28, 1.29, 1.31
sys/dev/pci/pcidevs 1.851, 1.852

on re(4):
- improve stability (I believe ;-)
- add a workaround for hardware ip4csum-tx bug
- support newer chips (8169SB/SC, PCIe based 8168 etc.)
- fix 8139C+ support
- enable hardware VLAN
- misc bus_dma(9) fix (which makes re(4) work on mips ports)

on rtk(4):
- fix kern/31348
- fix possible panic on dreamcast
 1.12.8.1  16-Nov-2006  bouyer file rlphy.c was added on branch netbsd-3 on 2007-03-03 23:30:25 +0000
 1.12.4.2  17-May-2007  yamt sync with head.
 1.12.4.1  24-Mar-2007  yamt sync with head.
 1.12.2.2  30-Mar-2008  jdc Pull up revisions 1.14-1.15 (requested by tsutsui in ticket #1111).

Prepare sc_rtl8201l flag in softc and use it in rlphy_status() so that
we don't have to check device names of device_parent(). From FreeBSD.

Fix wrong softc size (missed in the previous).
 1.12.2.1  09-Mar-2008  bouyer Pull up following revision(s) (requested by tsutsui in ticket #1098):
sys/dev/mii/rlphy.c: revision 1.13
Prepare rlphy_reset() and set BMCR_AUTOEN in it.
This makes autonegotiation on rlphy(4) at re(4)
on landisk (8139C+) select 100baseTX full-duplex
at boot time (before first ifconfig) properly,
and there is no bad side effect on rlphy(4) at nfe(4).
This may also fix PR kern/34109.
 1.15.10.1  14-Oct-2007  yamt sync with head.
 1.15.8.2  09-Jan-2008  matt sync with HEAD
 1.15.8.1  06-Nov-2007  matt sync with HEAD
 1.15.6.4  08-Dec-2007  jmcneill Rename pnp(9) -> pmf(9), as requested by many.
 1.15.6.3  27-Nov-2007  joerg Register MII PHY drives with the PM framework. Nothing to do on suspend,
just reset the PHY on resume.
 1.15.6.2  06-Nov-2007  joerg Sync with HEAD.
 1.15.6.1  26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.16.2.2  13-Nov-2007  bouyer Sync with HEAD
 1.16.2.1  25-Oct-2007  bouyer Sync with HEAD.
 1.17.2.3  18-Feb-2008  mjf Sync with HEAD.
 1.17.2.2  27-Dec-2007  mjf Sync with HEAD.
 1.17.2.1  19-Nov-2007  mjf Sync with HEAD.
 1.18.4.1  11-Dec-2007  yamt sync with head.
 1.18.2.1  26-Dec-2007  ad Sync with head.
 1.19.2.1  02-Jan-2008  bouyer Sync with HEAD
 1.20.6.2  17-Jan-2009  mjf Sync with HEAD.
 1.20.6.1  02-Jun-2008  mjf Sync with HEAD.
 1.21.4.2  04-May-2009  yamt sync with head.
 1.21.4.1  16-May-2008  yamt sync with head.
 1.21.2.1  18-May-2008  yamt sync with head.
 1.22.14.1  21-Apr-2010  matt sync to netbsd-5
 1.22.10.1  01-May-2009  snj Pull up following revision(s) (requested by cegger in ticket #474):
sys/dev/mii/inphy.c: revision 1.51
sys/dev/mii/iophy.c: revision 1.35
sys/dev/mii/nsphy.c: revision 1.56
sys/dev/mii/rlphy.c: revision 1.25
sys/dev/mii/ukphy_subr.c: revision 1.11
sys/dev/pci/if_txp.c: revision 1.28
fix media priorities:
IEEE 802.3 Annex 28B.3 specifies the following relative
priorities of the technologies supported by
802.3 Selector Field value:
1000BASE-T full duplex
1000BASE-T
100BASE-T2 full duplex
100BASE-TX full duplex
100BASE-T2
100BASE-T4
100BASE-TX
10BASE-T full duplex
10BAST-T
Our drivers give 100BASE-T4 a higher priority than
100BASE-TX full duplex.
Fix this. This patch is based on changes in FreeBSD and OpenBSD.
Patch presented on tech-kern and tech-net:
http://mail-index.netbsd.org/tech-kern/2009/02/15/msg004397.html
http://mail-index.netbsd.org/tech-net/2009/02/15/msg001064.html
got no comments, no objections.
 1.22.8.2  03-Mar-2009  skrll Sync with HEAD.
 1.22.8.1  19-Jan-2009  skrll Sync with HEAD.
 1.22.6.1  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.24.2.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.25.4.1  05-Mar-2011  rmind sync with head
 1.26.4.1  08-Feb-2011  bouyer Sync with HEAD
 1.26.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.27.28.1  10-Aug-2014  tls Rebase.
 1.27.14.2  03-Dec-2017  jdolecek update from HEAD
 1.27.14.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.27.10.1  09-Nov-2014  martin Pull up following revision(s) (requested by msaitoh in ticket #1189):
sys/dev/pci/if_wm.c: revision 1.270
sys/dev/mii/inphy.c: revision 1.53
sys/dev/mii/glxtphy.c: revision 1.24
sys/dev/mii/tlphy.c: revision 1.62
sys/dev/mii/iophy.c: revision 1.37
sys/dev/mii/brgphy.c: revision 1.70
sys/dev/mii/ihphy.c: revision 1.8
sys/dev/mii/bmtphy.c: revision 1.31
sys/dev/mii/urlphy.c: revision 1.30
sys/dev/mii/makphy.c: revision 1.40
sys/dev/mii/qsphy.c: revision 1.48
sys/dev/mii/igphy.c: revision 1.23
sys/dev/mii/nsphy.c: revision 1.58
sys/dev/mii/mvphy.c: revision 1.10
sys/dev/pci/if_txp.c: revision 1.41
sys/dev/mii/nsphy.c: revision 1.59
sys/dev/mii/rlphy.c: revision 1.28
sys/dev/mii/icsphy.c: revision 1.49
sys/dev/mii/rlphy.c: revision 1.29
sys/dev/mii/lxtphy.c: revision 1.49
sys/dev/mii/ciphyreg.h: revision 1.5
sys/dev/mii/nsphyter.c: revision 1.38
sys/dev/mii/sqphy.c: revision 1.50
sys/dev/mii/gentbi.c: revision 1.26
sys/dev/mii/gentbi.c: revision 1.27
sys/dev/mii/tqphy.c: revision 1.39
sys/dev/mii/ikphy.c: revision 1.10
sys/dev/mii/dmphy.c: revision 1.35
sys/dev/mii/amhphy.c: revision 1.20
sys/dev/mii/acphy.c: revision 1.24
sys/dev/mii/ciphy.c: revision 1.25
sys/dev/mii/brgphyreg.h: revision 1.8
sys/dev/mii/ukphy_subr.c: revision 1.12
sys/dev/ic/rtl80x9.c: revision 1.16
sys/arch/mips/adm5120/dev/if_admsw.c: revision 1.12
sys/dev/pci/if_kse.c: revision 1.28
sys/dev/mii/ukphy_subr.c: revision 1.13
sys/dev/mii/mii.h: revision 1.18
sys/dev/mii/gphyter.c: revision 1.29
No functional change:
- Fix typo.
- Remove trailing white spaces.
- Capitalize comments.
- Tabify.
- KNF.
IFM_FDX and IFM_HDX use different bit, so set IFM_HDX bit if it's not full
duplex. For many drivers, it recognize half duplex if IFM_FDX isn't set,
but not for others. Same as {Free|Open}BSD.
 1.29.4.1  09-Jul-2016  skrll Sync with HEAD
 1.30.18.3  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.30.18.2  08-Apr-2020  martin Merge changes from current as of 20200406
 1.30.18.1  10-Jun-2019  christos Sync with HEAD
 1.30.16.2  26-Jan-2019  pgoyette Sync with HEAD
 1.30.16.1  18-Jan-2019  pgoyette Synch with HEAD
 1.30.10.1  25-Nov-2019  martin Pull up the following revisions, requested by msaitoh in ticket #1457:

sys/dev/mii/miidevs 1.155-1.157, 1.159-1.160
sys/dev/mii/rlphy.c 1.37 via patch

- miidevs update:
- Add Teranetics, Aquantia and Renesas.
- Change ICPLUS(0x0090c3) to xxICPLUS(0x0009c3).
- Fix typo. from vezhlys.
- Rename JMICRON 0x0021 from JMC250 to JMP211
- Rename JMICRON 0x0022 from JMC260 to JMP202
- rlphy(4): Print model name if it's ICPLUS IP101 to avoid printing
"Realtek internal PHY".
 1.36.4.1  25-Nov-2019  martin Pull up following revision(s) (requested by msaitoh in ticket #473):

sys/dev/mii/rlphy.c: revision 1.37
sys/dev/mii/miidevs: revision 1.155
sys/dev/mii/miidevs: revision 1.156
sys/dev/mii/miidevs: revision 1.157
sys/dev/mii/miidevs: revision 1.159
sys/dev/mii/miidevs: revision 1.160

Add Teranetics, Aquantia and Renesas.

Use uppercase for vendor name.

Change ICPLUS(0x0090c3) to xxICPLUS(0x0009c3)
- ICPLUS -> xxICPLUS
- Print model name if it's ICPLUS IP101 to avoid "Realtek internal PHY".

Fix typo. from vezhlys
- Rename JMICRON 0x0021 from JMC250 to JMP211
- Rename JMICRON 0x0022 from JMC260 to JMP202

RSS XML Feed