On Sun, 2013-11-17 at 18:04 +0000, Ben Hutchings wrote: > On Sun, 2013-11-17 at 14:27 +0000, Ian Campbell wrote: > > On Sun, 2013-11-17 at 13:16 +0000, Ben Hutchings wrote: > > > The number of ports is the last-but-one digit in the PHY model number so > > > we could remove everything with a 4 there. [...] > The model number, not the ID. So: > > MARVELL_PHY_ID_88E1145 > MARVELL_PHY_ID_88E1149R > MARVELL_PHY_ID_88E1240 > > (assuming the PHY IDs and masks are correct for those models).
FWIW I built a kernel based on svn r20728 (from before alioth went away) with the following patch and booted it on a dreamplug and a QNAP TS-419 (both kirkwood). In both cases marvell.ko was loaded and the network appeared fine. I'm not sure how to tell if marvell.ko is actually active though -- neither ethtool nor dmesg contain any indication. But then, I don't think either of these platforms was ever affected by the original issue so I don't think this really proves very much... Ian. diff --git a/linux/debian/changelog b/linux/debian/changelog index 3b8fea0..ecc7dc2 100644 --- a/linux/debian/changelog +++ b/linux/debian/changelog @@ -3,6 +3,7 @@ linux (3.11.5-2) UNRELEASED; urgency=low [ Ian Campbell ] * [armhf] Enable Xen and virtio for armmp and armmp-lpae as well as KVM for armmp-lpae only. + * [armel/kirkwood+orion] Reenable MARVELL_PHY (Closes #723177) -- Ian Campbell <i...@hellion.org.uk> Sat, 19 Oct 2013 10:34:53 +0100 diff --git a/linux/debian/config/armel/config.kirkwood b/linux/debian/config/armel/config.kirkwood index 708f009..ebde991 100644 --- a/linux/debian/config/armel/config.kirkwood +++ b/linux/debian/config/armel/config.kirkwood @@ -459,8 +459,7 @@ CONFIG_MVMDIO=m ## ## file: drivers/net/phy/Kconfig ## -#. Turned off because this causes networking on some Kirkwood machines to fail -# CONFIG_MARVELL_PHY is not set +CONFIG_MARVELL_PHY=m ## ## file: drivers/net/wireless/mwifiex/Kconfig diff --git a/linux/debian/config/armel/config.orion5x b/linux/debian/config/armel/config.orion5x index 6ff2614..923be47 100644 --- a/linux/debian/config/armel/config.orion5x +++ b/linux/debian/config/armel/config.orion5x @@ -413,8 +413,7 @@ CONFIG_MVMDIO=m ## ## file: drivers/net/phy/Kconfig ## -#. Turned off because this causes networking on some Orion machines to fail -# CONFIG_MARVELL_PHY is not set +CONFIG_MARVELL_PHY=m ## ## file: drivers/pcmcia/Kconfig diff --git a/linux/debian/patches/bugfix/all/disable-some-marvell-phys.patch b/linux/debian/patches/bugfix/all/disable-some-marvell-phys.patch new file mode 100644 index 0000000..c46f2d2 --- /dev/null +++ b/linux/debian/patches/bugfix/all/disable-some-marvell-phys.patch @@ -0,0 +1,60 @@ +From: Ian Campbell <i...@hellion.org.uk> +Subject: phy/marvell: disable 4-port phys +Date: Wed, 20 Nov 2013 08:30:14 +0000 +Forwarded: no + +See 723177 for more details. Briefly: + +The Marvell PHY was originally disabled because it can cause networking +failures on some systems. According to Lennert Buytenhek this is because some +of the variants added did not share the same register layout. Since the known +cases are all 4-ports disable those variants (indicated by a 4 in the +penultimate position of the model name) until they can be audited for +correctness. + +--- a/drivers/net/phy/marvell.c ++++ b/drivers/net/phy/marvell.c +@@ -963,6 +963,7 @@ + .set_wol = &m88e1318_set_wol, + .driver = { .owner = THIS_MODULE }, + }, ++#if 0 + { + .phy_id = MARVELL_PHY_ID_88E1145, + .phy_id_mask = MARVELL_PHY_ID_MASK, +@@ -976,6 +977,7 @@ + .config_intr = &marvell_config_intr, + .driver = { .owner = THIS_MODULE }, + }, ++#endif + { + .phy_id = MARVELL_PHY_ID_88E1149R, + .phy_id_mask = MARVELL_PHY_ID_MASK, +@@ -989,6 +991,7 @@ + .config_intr = &marvell_config_intr, + .driver = { .owner = THIS_MODULE }, + }, ++#if 0 + { + .phy_id = MARVELL_PHY_ID_88E1240, + .phy_id_mask = MARVELL_PHY_ID_MASK, +@@ -1002,6 +1005,7 @@ + .config_intr = &marvell_config_intr, + .driver = { .owner = THIS_MODULE }, + }, ++#endif + { + .phy_id = MARVELL_PHY_ID_88E1116R, + .phy_id_mask = MARVELL_PHY_ID_MASK, +@@ -1051,9 +1055,9 @@ + { MARVELL_PHY_ID_88E1111, MARVELL_PHY_ID_MASK }, + { MARVELL_PHY_ID_88E1118, MARVELL_PHY_ID_MASK }, + { MARVELL_PHY_ID_88E1121R, MARVELL_PHY_ID_MASK }, +- { MARVELL_PHY_ID_88E1145, MARVELL_PHY_ID_MASK }, ++/* { MARVELL_PHY_ID_88E1145, MARVELL_PHY_ID_MASK }, */ + { MARVELL_PHY_ID_88E1149R, MARVELL_PHY_ID_MASK }, +- { MARVELL_PHY_ID_88E1240, MARVELL_PHY_ID_MASK }, ++/* { MARVELL_PHY_ID_88E1240, MARVELL_PHY_ID_MASK }, */ + { MARVELL_PHY_ID_88E1318S, MARVELL_PHY_ID_MASK }, + { MARVELL_PHY_ID_88E1116R, MARVELL_PHY_ID_MASK }, + { MARVELL_PHY_ID_88E1510, MARVELL_PHY_ID_MASK }, diff --git a/linux/debian/patches/series b/linux/debian/patches/series index 387edfc..d4dd0b1 100644 --- a/linux/debian/patches/series +++ b/linux/debian/patches/series @@ -79,3 +79,4 @@ bugfix/m68k/atari-irqs.patch bugfix/all/compiler-gcc-4-add-quirk-for-asm-goto-miscompilation-bug.patch bugfix/all/crypto-ansi_cprng-Fix-off-by-one-error-in-non-block-.patch features/all/mvsas-Recognise-device-subsystem-9485-9485-as-88SE94.patch +bugfix/all/disable-some-marvell-phys.patch
signature.asc
Description: This is a digitally signed message part