diff options
author | Michael Brown <mcb30@ipxe.org> | 2021-06-22 14:48:10 +0100 |
---|---|---|
committer | Michael Brown <mcb30@ipxe.org> | 2021-06-24 12:36:46 +0100 |
commit | 5622575c5e4bffb07307f39903bb95caad7d172d (patch) | |
tree | 3bb74d96b17d6807ecfe4cdd8298fdf3a1149c20 /src/include/mii.h | |
parent | 0688114ea63fee21c39d94cc8df9e2a5003ac283 (diff) | |
download | ipxe-5622575c5e4bffb07307f39903bb95caad7d172d.zip ipxe-5622575c5e4bffb07307f39903bb95caad7d172d.tar.gz ipxe-5622575c5e4bffb07307f39903bb95caad7d172d.tar.bz2 |
[realtek] Work around hardware bug on RTL8211Brealtek_hack
The RTL8211B seems to have a bug that prevents the link from coming up
unless the MII_MMD_DATA register is cleared.
The Linux kernel driver applies this workaround (in rtl8211b_resume())
only to the specific RTL8211B PHY model, along with a matching
workaround to set bit 9 of MII_MMD_DATA when suspending the PHY.
Since we have no need to ever suspend the PHY, and since writing a
zero ought to be harmless, we just clear the register unconditionally.
Debugged-by: Nikolay Pertsev <nikolay.p@cos.flag.org>
Tested-by: Nikolay Pertsev <nikolay.p@cos.flag.org>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/include/mii.h')
-rw-r--r-- | src/include/mii.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/include/mii.h b/src/include/mii.h index e2afef8..515ba22 100644 --- a/src/include/mii.h +++ b/src/include/mii.h @@ -23,6 +23,8 @@ FILE_LICENCE ( GPL2_ONLY ); #define MII_EXPANSION 0x06 /* Expansion register */ #define MII_CTRL1000 0x09 /* 1000BASE-T control */ #define MII_STAT1000 0x0a /* 1000BASE-T status */ +#define MII_MMD_CTRL 0x0d /* MMD Access Control Register */ +#define MII_MMD_DATA 0x0e /* MMD Access Data Register */ #define MII_ESTATUS 0x0f /* Extended Status */ #define MII_DCOUNTER 0x12 /* Disconnect counter */ #define MII_FCSCOUNTER 0x13 /* False carrier counter */ |