After the commit (SHA1: 7e9517375a14f44ee830ca1c3278076dd65fcc8f);
"net: dsa: mv88e6xxx: fix max_mtu of 1492 on 6165, 6191, 6220, 6250, 6290" the
error when mv88e6020 or mv88e6071 is used is not present anymore.
As a result patches for adding max frame size are not required to provide
working setup with aforementioned switches.
Lukasz Majewski (2):
dsa: marvell: Define .set_max_frame_size() function for mv88e6250 SoC
family
net: dsa: mv88e6xxx: add support for MV88E6071 switch
Matthias Schiffer (1):
net: dsa: mv88e6xxx: add support for MV88E6020 switch
drivers/net/dsa/mv88e6xxx/chip.c | 41 ++++++++++++++++++++++++++++++++
drivers/net/dsa/mv88e6xxx/chip.h | 2 ++
drivers/net/dsa/mv88e6xxx/port.h | 2 ++
3 files changed, 45 insertions(+)
--
2.20.1
A mv88e6250 family (i.e. "LinkStreet") switch with 5 internal PHYs,
2 RMIIs and no PTP support.
Signed-off-by: Lukasz Majewski <[email protected]>
---
Changes for v2:
- Update commit message
- Add information about max frame size
Changes for v3:
- None
Changes for v4:
- None
Changes for v5:
- None
Changes for v6:
- Reorder patches for better readiness
Changes for v7:
- Provide just support for this IC (remove the part with setting
max frame info as it is not needed anymore)
---
drivers/net/dsa/mv88e6xxx/chip.c | 20 ++++++++++++++++++++
drivers/net/dsa/mv88e6xxx/chip.h | 1 +
drivers/net/dsa/mv88e6xxx/port.h | 1 +
3 files changed, 22 insertions(+)
diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
index 9cb76a5b8ff5..8d4c1ab4c85d 100644
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -5663,6 +5663,26 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
.ops = &mv88e6250_ops,
},
+ [MV88E6071] = {
+ .prod_num = MV88E6XXX_PORT_SWITCH_ID_PROD_6071,
+ .family = MV88E6XXX_FAMILY_6250,
+ .name = "Marvell 88E6071",
+ .num_databases = 64,
+ .num_ports = 7,
+ .num_internal_phys = 5,
+ .max_vid = 4095,
+ .port_base_addr = 0x08,
+ .phy_base_addr = 0x00,
+ .global1_addr = 0x0f,
+ .global2_addr = 0x07,
+ .age_time_coeff = 15000,
+ .g1_irqs = 9,
+ .g2_irqs = 5,
+ .atu_move_port_mask = 0xf,
+ .dual_chip = true,
+ .ops = &mv88e6250_ops,
+ },
+
[MV88E6085] = {
.prod_num = MV88E6XXX_PORT_SWITCH_ID_PROD_6085,
.family = MV88E6XXX_FAMILY_6097,
diff --git a/drivers/net/dsa/mv88e6xxx/chip.h b/drivers/net/dsa/mv88e6xxx/chip.h
index 4cfb16375deb..128715df5772 100644
--- a/drivers/net/dsa/mv88e6xxx/chip.h
+++ b/drivers/net/dsa/mv88e6xxx/chip.h
@@ -55,6 +55,7 @@ enum mv88e6xxx_frame_mode {
/* List of supported models */
enum mv88e6xxx_model {
MV88E6020,
+ MV88E6071,
MV88E6085,
MV88E6095,
MV88E6097,
diff --git a/drivers/net/dsa/mv88e6xxx/port.h b/drivers/net/dsa/mv88e6xxx/port.h
index 56efba08abdc..e423ef13a827 100644
--- a/drivers/net/dsa/mv88e6xxx/port.h
+++ b/drivers/net/dsa/mv88e6xxx/port.h
@@ -112,6 +112,7 @@
#define MV88E6XXX_PORT_SWITCH_ID 0x03
#define MV88E6XXX_PORT_SWITCH_ID_PROD_MASK 0xfff0
#define MV88E6XXX_PORT_SWITCH_ID_PROD_6020 0x0200
+#define MV88E6XXX_PORT_SWITCH_ID_PROD_6071 0x0710
#define MV88E6XXX_PORT_SWITCH_ID_PROD_6085 0x04a0
#define MV88E6XXX_PORT_SWITCH_ID_PROD_6095 0x0950
#define MV88E6XXX_PORT_SWITCH_ID_PROD_6097 0x0990
--
2.20.1
From: Matthias Schiffer <[email protected]>
A mv88e6250 family (i.e. "LinkStreet") switch with 2 PHY and RMII
ports and no PTP support.
Signed-off-by: Matthias Schiffer <[email protected]>
Signed-off-by: Lukasz Majewski <[email protected]>
---
Changes for v2:
- Add S-o-B
- Update commit message
- Add information about max packet size (2048 B)
Changes for v3:
- None
Changes for v4:
- Update the num_ports and num_internal_phys to be in sync with
88e6020 documentation
Changes for v5:
- None
Changes for v6:
- Reorder patches for better readiness
Changes for v7:
- Provide just support for this IC (remove the part with setting
max frame info as it is not needed anymore)
---
drivers/net/dsa/mv88e6xxx/chip.c | 20 ++++++++++++++++++++
drivers/net/dsa/mv88e6xxx/chip.h | 1 +
drivers/net/dsa/mv88e6xxx/port.h | 1 +
3 files changed, 22 insertions(+)
diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
index b5e43dd40431..9cb76a5b8ff5 100644
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -5643,6 +5643,26 @@ static const struct mv88e6xxx_ops mv88e6393x_ops = {
};
static const struct mv88e6xxx_info mv88e6xxx_table[] = {
+ [MV88E6020] = {
+ .prod_num = MV88E6XXX_PORT_SWITCH_ID_PROD_6020,
+ .family = MV88E6XXX_FAMILY_6250,
+ .name = "Marvell 88E6020",
+ .num_databases = 64,
+ .num_ports = 4,
+ .num_internal_phys = 2,
+ .max_vid = 4095,
+ .port_base_addr = 0x8,
+ .phy_base_addr = 0x0,
+ .global1_addr = 0xf,
+ .global2_addr = 0x7,
+ .age_time_coeff = 15000,
+ .g1_irqs = 9,
+ .g2_irqs = 5,
+ .atu_move_port_mask = 0xf,
+ .dual_chip = true,
+ .ops = &mv88e6250_ops,
+ },
+
[MV88E6085] = {
.prod_num = MV88E6XXX_PORT_SWITCH_ID_PROD_6085,
.family = MV88E6XXX_FAMILY_6097,
diff --git a/drivers/net/dsa/mv88e6xxx/chip.h b/drivers/net/dsa/mv88e6xxx/chip.h
index da6e1339f809..4cfb16375deb 100644
--- a/drivers/net/dsa/mv88e6xxx/chip.h
+++ b/drivers/net/dsa/mv88e6xxx/chip.h
@@ -54,6 +54,7 @@ enum mv88e6xxx_frame_mode {
/* List of supported models */
enum mv88e6xxx_model {
+ MV88E6020,
MV88E6085,
MV88E6095,
MV88E6097,
diff --git a/drivers/net/dsa/mv88e6xxx/port.h b/drivers/net/dsa/mv88e6xxx/port.h
index d19b6303b91f..56efba08abdc 100644
--- a/drivers/net/dsa/mv88e6xxx/port.h
+++ b/drivers/net/dsa/mv88e6xxx/port.h
@@ -111,6 +111,7 @@
/* Offset 0x03: Switch Identifier Register */
#define MV88E6XXX_PORT_SWITCH_ID 0x03
#define MV88E6XXX_PORT_SWITCH_ID_PROD_MASK 0xfff0
+#define MV88E6XXX_PORT_SWITCH_ID_PROD_6020 0x0200
#define MV88E6XXX_PORT_SWITCH_ID_PROD_6085 0x04a0
#define MV88E6XXX_PORT_SWITCH_ID_PROD_6095 0x0950
#define MV88E6XXX_PORT_SWITCH_ID_PROD_6097 0x0990
--
2.20.1
On Tue, May 23, 2023 at 04:29:09PM +0200, Lukasz Majewski wrote:
> After the commit (SHA1: 7e9517375a14f44ee830ca1c3278076dd65fcc8f);
> "net: dsa: mv88e6xxx: fix max_mtu of 1492 on 6165, 6191, 6220, 6250, 6290" the
> error when mv88e6020 or mv88e6071 is used is not present anymore.
> dsa: marvell: Define .set_max_frame_size() function for mv88e6250 SoC
> family
Hi Lukasz
commit 7e9517375a14f44ee830ca1c3278076dd65fcc8f
Author: Vladimir Oltean <[email protected]>
Date: Tue Mar 14 20:24:05 2023 +0200
net: dsa: mv88e6xxx: fix max_mtu of 1492 on 6165, 6191, 6220, 6250, 6290
There are 3 classes of switch families that the driver is aware of, as
far as mv88e6xxx_change_mtu() is concerned:
- MTU configuration is available per port. Here, the
chip->info->ops->port_set_jumbo_size() method will be present.
- MTU configuration is global to the switch. Here, the
chip->info->ops->set_max_frame_size() method will be present.
- We don't know how to change the MTU. Here, none of the above methods
will be present.
Switch families MV88E6165, MV88E6191, MV88E6220, MV88E6250 and MV88E6290
fall in category 3.
Vladimir indicates here that it is not known how to change the max MTU
for the MV88E6250. Where did you get the information from to implement
it?
Andrew
On Tue, May 23, 2023 at 04:29:12PM +0200, Lukasz Majewski wrote:
> A mv88e6250 family (i.e. "LinkStreet") switch with 5 internal PHYs,
> 2 RMIIs and no PTP support.
chip.h says:
MV88E6XXX_FAMILY_6250, /* 6220 6250 */
Please update this comment.
I would also suggest you don't call the mv88e6250 family
"LinkStreet". All Marvell SoHo switches are LinkStreet, all switches
supported by the mv88e6xxx driver are "LinkStreet".
With these changes:
Reviewed-by: Andrew Lunn <[email protected]>
Andrew
---
pw-bot: cr
Hi Andrew,
> On Tue, May 23, 2023 at 04:29:09PM +0200, Lukasz Majewski wrote:
> > After the commit (SHA1: 7e9517375a14f44ee830ca1c3278076dd65fcc8f);
> > "net: dsa: mv88e6xxx: fix max_mtu of 1492 on 6165, 6191, 6220,
> > 6250, 6290" the error when mv88e6020 or mv88e6071 is used is not
> > present anymore.
>
> > dsa: marvell: Define .set_max_frame_size() function for mv88e6250
> > SoC family
>
> Hi Lukasz
>
> commit 7e9517375a14f44ee830ca1c3278076dd65fcc8f
> Author: Vladimir Oltean <[email protected]>
> Date: Tue Mar 14 20:24:05 2023 +0200
>
> net: dsa: mv88e6xxx: fix max_mtu of 1492 on 6165, 6191, 6220,
> 6250, 6290
> There are 3 classes of switch families that the driver is aware
> of, as far as mv88e6xxx_change_mtu() is concerned:
>
> - MTU configuration is available per port. Here, the
> chip->info->ops->port_set_jumbo_size() method will be present.
>
> - MTU configuration is global to the switch. Here, the
> chip->info->ops->set_max_frame_size() method will be present.
>
> - We don't know how to change the MTU. Here, none of the above
> methods will be present.
>
> Switch families MV88E6165, MV88E6191, MV88E6220, MV88E6250 and
> MV88E6290 fall in category 3.
>
>
> Vladimir indicates here that it is not known how to change the max MTU
> for the MV88E6250. Where did you get the information from to implement
> it?
Please refer to [1].
The mv88e6185_g1_set_max_frame_size() function can be reused (as
registers' offsets and bits are the same for mv88e60{71|20}).
After using Vladimir's patch there is no need to add max_frame size
field and related patches from v6 can be dropped.
>
> Andrew
Links:
[1] - https://www.spinics.net/lists/kernel/msg4798861.html
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Erika Unter
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: [email protected]
On Wed, May 24, 2023 at 02:17:43PM +0200, Lukasz Majewski wrote:
> Hi Andrew,
>
> > On Tue, May 23, 2023 at 04:29:09PM +0200, Lukasz Majewski wrote:
> > > After the commit (SHA1: 7e9517375a14f44ee830ca1c3278076dd65fcc8f);
> > > "net: dsa: mv88e6xxx: fix max_mtu of 1492 on 6165, 6191, 6220,
> > > 6250, 6290" the error when mv88e6020 or mv88e6071 is used is not
> > > present anymore.
> >
> > > dsa: marvell: Define .set_max_frame_size() function for mv88e6250
> > > SoC family
> >
> > Hi Lukasz
> >
> > commit 7e9517375a14f44ee830ca1c3278076dd65fcc8f
> > Author: Vladimir Oltean <[email protected]>
> > Date: Tue Mar 14 20:24:05 2023 +0200
> >
> > net: dsa: mv88e6xxx: fix max_mtu of 1492 on 6165, 6191, 6220,
> > 6250, 6290
> > There are 3 classes of switch families that the driver is aware
> > of, as far as mv88e6xxx_change_mtu() is concerned:
> >
> > - MTU configuration is available per port. Here, the
> > chip->info->ops->port_set_jumbo_size() method will be present.
> >
> > - MTU configuration is global to the switch. Here, the
> > chip->info->ops->set_max_frame_size() method will be present.
> >
> > - We don't know how to change the MTU. Here, none of the above
> > methods will be present.
> >
> > Switch families MV88E6165, MV88E6191, MV88E6220, MV88E6250 and
> > MV88E6290 fall in category 3.
> >
> >
> > Vladimir indicates here that it is not known how to change the max MTU
> > for the MV88E6250. Where did you get the information from to implement
> > it?
>
> Please refer to [1].
>
> The mv88e6185_g1_set_max_frame_size() function can be reused (as
> registers' offsets and bits are the same for mv88e60{71|20}).
>
> After using Vladimir's patch there is no need to add max_frame size
> field and related patches from v6 can be dropped.
However, you haven't responded to:
https://lore.kernel.org/all/[email protected]/
to explain why what you're doing (adding this function) is safe.
Thanks.
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
> > Vladimir indicates here that it is not known how to change the max MTU
> > for the MV88E6250. Where did you get the information from to implement
> > it?
>
> Please refer to [1].
>
> The mv88e6185_g1_set_max_frame_size() function can be reused (as
> registers' offsets and bits are the same for mv88e60{71|20}).
So you have the datasheet? You get the information to implement this
from the data sheet?
Andrew
Dear All,
> After the commit (SHA1: 7e9517375a14f44ee830ca1c3278076dd65fcc8f);
> "net: dsa: mv88e6xxx: fix max_mtu of 1492 on 6165, 6191, 6220, 6250,
> 6290" the error when mv88e6020 or mv88e6071 is used is not present
> anymore.
>
Are there any more comments for this patch set?
> As a result patches for adding max frame size are not required to
> provide working setup with aforementioned switches.
>
> Lukasz Majewski (2):
> dsa: marvell: Define .set_max_frame_size() function for mv88e6250
> SoC family
> net: dsa: mv88e6xxx: add support for MV88E6071 switch
>
> Matthias Schiffer (1):
> net: dsa: mv88e6xxx: add support for MV88E6020 switch
>
> drivers/net/dsa/mv88e6xxx/chip.c | 41
> ++++++++++++++++++++++++++++++++ drivers/net/dsa/mv88e6xxx/chip.h |
> 2 ++ drivers/net/dsa/mv88e6xxx/port.h | 2 ++
> 3 files changed, 45 insertions(+)
>
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Erika Unter
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: [email protected]
Hello Lukasz,
On Mon, May 29, 2023 at 11:02:22AM +0200, Lukasz Majewski wrote:
> Dear All,
>
> > After the commit (SHA1: 7e9517375a14f44ee830ca1c3278076dd65fcc8f);
> > "net: dsa: mv88e6xxx: fix max_mtu of 1492 on 6165, 6191, 6220, 6250,
> > 6290" the error when mv88e6020 or mv88e6071 is used is not present
> > anymore.
> >
>
> Are there any more comments for this patch set?
Has your email client eaten these comments too?
https://lore.kernel.org/netdev/[email protected]/
| On Wed, May 24, 2023 at 03:48:02PM +0200, Andrew Lunn wrote:
| > > > Vladimir indicates here that it is not known how to change the max MTU
| > > > for the MV88E6250. Where did you get the information from to implement
| > > > it?
| > >
| > > Please refer to [1].
| > >
| > > The mv88e6185_g1_set_max_frame_size() function can be reused (as
| > > registers' offsets and bits are the same for mv88e60{71|20}).
| >
| > So you have the datasheet? You get the information to implement this
| > from the data sheet?
| >
| > Andrew
https://lore.kernel.org/netdev/[email protected]/
| On Wed, May 24, 2023 at 01:37:15PM +0100, Russell King (Oracle) wrote:
| > On Wed, May 24, 2023 at 02:17:43PM +0200, Lukasz Majewski wrote:
| > > Please refer to [1].
| > >
| > > The mv88e6185_g1_set_max_frame_size() function can be reused (as
| > > registers' offsets and bits are the same for mv88e60{71|20}).
| > >
| > > After using Vladimir's patch there is no need to add max_frame size
| > > field and related patches from v6 can be dropped.
| >
| > However, you haven't responded to:
| >
| > https://lore.kernel.org/all/[email protected]/
| >
| > to explain why what you're doing (adding this function) is safe.
| >
| > Thanks.
| >
| > --
| > RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
| > FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
Hi Vladimir,
> Hello Lukasz,
>
> On Mon, May 29, 2023 at 11:02:22AM +0200, Lukasz Majewski wrote:
> > Dear All,
> >
> > > After the commit (SHA1: 7e9517375a14f44ee830ca1c3278076dd65fcc8f);
> > > "net: dsa: mv88e6xxx: fix max_mtu of 1492 on 6165, 6191, 6220,
> > > 6250, 6290" the error when mv88e6020 or mv88e6071 is used is not
> > > present anymore.
> > >
> >
> > Are there any more comments for this patch set?
>
> Has your email client eaten these comments too?
>
> https://lore.kernel.org/netdev/[email protected]/
> | On Wed, May 24, 2023 at 03:48:02PM +0200, Andrew Lunn wrote:
> | > > > Vladimir indicates here that it is not known how to change
> the max MTU | > > > for the MV88E6250. Where did you get the
> information from to implement | > > > it?
> | > >
> | > > Please refer to [1].
> | > >
> | > > The mv88e6185_g1_set_max_frame_size() function can be reused (as
> | > > registers' offsets and bits are the same for mv88e60{71|20}).
> | >
> | > So you have the datasheet? You get the information to implement
> this | > from the data sheet?
> | >
This I've replied to Andrew in a private mail.
> | > Andrew
>
> https://lore.kernel.org/netdev/[email protected]/
> | On Wed, May 24, 2023 at 01:37:15PM +0100, Russell King (Oracle)
> wrote: | > On Wed, May 24, 2023 at 02:17:43PM +0200, Lukasz Majewski
> wrote: | > > Please refer to [1].
> | > >
> | > > The mv88e6185_g1_set_max_frame_size() function can be reused (as
> | > > registers' offsets and bits are the same for mv88e60{71|20}).
> | > >
> | > > After using Vladimir's patch there is no need to add max_frame
> size | > > field and related patches from v6 can be dropped.
> | >
> | > However, you haven't responded to:
> | >
> | >
> https://lore.kernel.org/all/[email protected]/ |
> > | > to explain why what you're doing (adding this function) is safe.
> | >
> | > Thanks.
> | >
The above question has been replied:
https://lore.kernel.org/all/20230524145357.3928f261@wsk/
> | > --
> | > RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
> | > FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
Do you have any more comments?
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Erika Unter
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: [email protected]
On Mon, May 29, 2023 at 01:03:14PM +0200, Lukasz Majewski wrote:
> This I've replied to Andrew in a private mail.
Aha.
> The above question has been replied:
> https://lore.kernel.org/all/20230524145357.3928f261@wsk/
>
> Do you have any more comments?
I don't have any comments.
On Mon, May 29, 2023 at 02:23:34PM +0300, Vladimir Oltean wrote:
> On Mon, May 29, 2023 at 01:03:14PM +0200, Lukasz Majewski wrote:
> > This I've replied to Andrew in a private mail.
>
> Aha.
Yes, the appropriate checks have been made, the reuse of the functions
to set the MTU should be correct.
Andrew