Re: Marvell 88E609x switch?

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Lennert Buytenhek
Date: Tuesday, March 10, 2009 - 6:36 am

On Tue, Mar 10, 2009 at 05:20:21AM -0600, Gary Thomas wrote:


It should be OK, but I'll test it to make sure.



Something a la the attached patch should be enough from the
data structure point of view, AFAICS.  And then you'd have:



Switch 1 can correspond to its own DSA platform device as it is now.

And for switch 2/3 you'd then have something a la:


struct dsa_switch_data switches[] = {
	{
		.mii_bus = &blah,
		.sw_addr = 2,
		.port_names[0] = "p9",
		.port_names[1] = "p10",
		.port_names[2] = "p11",
		.port_names[3] = "p12",
		.port_names[4] = "p13",
		.port_names[5] = "p14",
		.port_names[6] = "p15",
		.port_names[7] = "p16",
		.port_names[9] = "dsa",
		.port_names[10] = "cpu",
	}, {
		.mii_bus = &blah,
		.sw_addr = 3,
		.port_names[0] = "p17",
		.port_names[1] = "p18",
		.port_names[2] = "p19",
		.port_names[3] = "p20",
		.port_names[4] = "p21",
		.port_names[5] = "p22",
		.port_names[6] = "p23",
		.port_names[7] = "p24",
		.port_names[9] = "dsa",
	},
};

struct dsa_platform_data switch23 = {
	.netdev = &blah,
	.nr_switches = 2,
	.sw = switches,
	.rtable = {
		{ -1,  9 },
		{  9, -1 },
	},
};

Or something along those lines.

Thoughts?




diff --git a/include/net/dsa.h b/include/net/dsa.h
index 52e97bf..8bbf5ba 100644
--- a/include/net/dsa.h
+++ b/include/net/dsa.h
@@ -1,6 +1,6 @@
 /*
  * include/net/dsa.h - Driver for Distributed Switch Architecture switch chips
- * Copyright (c) 2008 Marvell Semiconductor
+ * Copyright (c) 2008-2009 Marvell Semiconductor
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -13,21 +13,44 @@
 
 #define DSA_MAX_PORTS	12
 
+struct dsa_switch_data {
+	/*
+	 * How to access the switch configuration registers.
+	 */
+	struct device	*mii_bus;
+	int		sw_addr;
+
+	/*
+	 * The names of the switch's ports.  Use "cpu" to
+	 * designate the switch port that the cpu is connected to,
+	 * "dsa" to indicate that this port is a DSA link to
+	 * another switch, NULL to indicate the port is unused,
+	 * or any other string to indicate this is a physical port.
+	 */
+	char		*port_names[DSA_MAX_PORTS];
+};
+
 struct dsa_platform_data {
 	/*
 	 * Reference to a Linux network interface that connects
-	 * to the switch chip.
+	 * to one of the switch chips in the tree.
 	 */
 	struct device	*netdev;
 
 	/*
-	 * How to access the switch configuration registers, and
-	 * the names of the switch ports (use "cpu" to designate
-	 * the switch port that the cpu is connected to).
+	 * Info structs describing each of the switch chips
+	 * connected via this network interface.
 	 */
-	struct device	*mii_bus;
-	int		sw_addr;
-	char		*port_names[DSA_MAX_PORTS];
+	int		nr_switches;
+	struct dsa_switch_data *sw;
+
+	/*
+	 * A nr_switches * nr_switches array where element [a][b]
+	 * indicates which port on switch a should be used to send
+	 * packets to that are destined for switch b.  Can be NULL
+	 * if there is only one switch chip.
+	 */
+	u8		**rtable;
 };
 
 extern bool dsa_uses_dsa_tags(void *dsa_ptr);
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Marvell 88E609x switch?, Gary Thomas, (Tue Feb 24, 6:16 pm)
Re: Marvell 88E609x switch?, Jesper Dangaard Brouer, (Tue Feb 24, 11:31 pm)
Re: Marvell 88E609x switch?, Lennert Buytenhek, (Wed Feb 25, 6:15 am)
Re: Marvell 88E609x switch?, Gary Thomas, (Wed Feb 25, 2:30 pm)
Re: Marvell 88E609x switch?, Lennert Buytenhek, (Thu Feb 26, 8:11 am)
Re: Marvell 88E609x switch?, Gary Thomas, (Thu Feb 26, 8:47 am)
Re: Marvell 88E609x switch?, Lennert Buytenhek, (Thu Feb 26, 8:57 am)
Re: Marvell 88E609x switch?, Gary Thomas, (Thu Feb 26, 6:12 pm)
Re: Marvell 88E609x switch?, Lennert Buytenhek, (Thu Feb 26, 6:19 pm)
Re: Marvell 88E609x switch?, Gary Thomas, (Fri Feb 27, 5:25 am)
Re: Marvell 88E609x switch?, Gary Thomas, (Fri Feb 27, 5:42 am)
Re: Marvell 88E609x switch?, Lennert Buytenhek, (Fri Feb 27, 5:52 am)
Re: Marvell 88E609x switch?, Lennert Buytenhek, (Fri Feb 27, 5:53 am)
Re: Marvell 88E609x switch?, Gary Thomas, (Fri Feb 27, 6:19 am)
Re: Marvell 88E609x switch?, Gary Thomas, (Fri Feb 27, 6:22 am)
Re: Marvell 88E609x switch?, Lennert Buytenhek, (Fri Feb 27, 6:23 am)
Re: Marvell 88E609x switch?, Gary Thomas, (Fri Feb 27, 6:27 am)
Re: Marvell 88E609x switch?, Lennert Buytenhek, (Fri Feb 27, 7:25 am)
Re: Marvell 88E609x switch?, Lennert Buytenhek, (Fri Feb 27, 7:27 am)
Re: Marvell 88E609x switch?, Gary Thomas, (Fri Feb 27, 7:36 am)
Re: Marvell 88E609x switch?, Lennert Buytenhek, (Fri Feb 27, 7:40 am)
Re: Marvell 88E609x switch?, Gary Thomas, (Fri Feb 27, 7:55 am)
Re: Marvell 88E609x switch?, Lennert Buytenhek, (Fri Feb 27, 7:57 am)
Re: Marvell 88E609x switch?, Gary Thomas, (Fri Feb 27, 8:08 am)
Re: Marvell 88E609x switch?, Lennert Buytenhek, (Fri Feb 27, 8:14 am)
Re: Marvell 88E609x switch?, Anton Vorontsov, (Fri Feb 27, 8:18 am)
Re: Marvell 88E609x switch?, Gary Thomas, (Fri Feb 27, 8:25 am)
Re: Marvell 88E609x switch?, Lennert Buytenhek, (Fri Feb 27, 8:27 am)
Re: Marvell 88E609x switch?, Gary Thomas, (Fri Feb 27, 8:29 am)
Re: Marvell 88E609x switch?, Lennert Buytenhek, (Fri Feb 27, 8:31 am)
Re: Marvell 88E609x switch?, Gary Thomas, (Fri Feb 27, 8:44 am)
Re: Marvell 88E609x switch?, Lennert Buytenhek, (Fri Feb 27, 8:52 am)
Re: Marvell 88E609x switch?, Jesper Dangaard Brouer, (Fri Feb 27, 2:12 pm)
Re: Marvell 88E609x switch?, Lennert Buytenhek, (Fri Feb 27, 3:28 pm)
Re: Marvell 88E609x switch?, Gary Thomas, (Sat Feb 28, 10:37 am)
Re: Marvell 88E609x switch?, Jesper Dangaard Brouer, (Sat Feb 28, 12:10 pm)
Re: Marvell 88E609x switch?, Gary Thomas, (Sat Feb 28, 12:31 pm)
Re: Marvell 88E609x switch?, Jesper Dangaard Brouer, (Mon Mar 2, 3:14 am)
Re: Marvell 88E609x switch?, Jesper Dangaard Brouer, (Mon Mar 2, 3:56 am)
Re: Marvell 88E609x switch?, Jesper Dangaard Brouer, (Mon Mar 2, 4:05 am)
Re: Marvell 88E609x switch?, Gary Thomas, (Mon Mar 2, 8:14 am)
Re: Marvell 88E609x switch?, Gary Thomas, (Mon Mar 2, 8:22 am)
Re: Marvell 88E609x switch?, Jesper Dangaard Brouer, (Mon Mar 2, 3:05 pm)
Re: Marvell 88E609x switch?, Gary Thomas, (Mon Mar 2, 3:32 pm)
Re: Marvell 88E609x switch?, Jesper Dangaard Brouer, (Tue Mar 3, 1:52 am)
Re: Marvell 88E609x switch?, Jesper Dangaard Brouer, (Tue Mar 3, 2:04 am)
Re: Marvell 88E609x switch?, Gary Thomas, (Tue Mar 3, 5:02 am)
Re: Marvell 88E609x switch?, Gary Thomas, (Tue Mar 3, 5:03 am)
Re: Marvell 88E609x switch?, Jesper Dangaard Brouer, (Tue Mar 3, 5:32 am)
Re: Marvell 88E609x switch?, Gary Thomas, (Tue Mar 3, 6:25 am)
Re: Marvell 88E609x switch?, Gary Thomas, (Tue Mar 3, 6:30 am)
Re: Marvell 88E609x switch?, Gary Thomas, (Tue Mar 3, 2:52 pm)
Re: Marvell 88E609x switch?, Gary Thomas, (Fri Mar 6, 8:49 am)
Re: Marvell 88E609x switch?, Jesper Dangaard Brouer, (Sat Mar 7, 8:53 am)
Re: Marvell 88E609x switch?, Lennert Buytenhek, (Tue Mar 10, 2:34 am)
Re: Marvell 88E609x switch?, Lennert Buytenhek, (Tue Mar 10, 2:39 am)
Re: Marvell 88E609x switch?, Lennert Buytenhek, (Tue Mar 10, 2:43 am)
Re: Marvell 88E609x switch?, Lennert Buytenhek, (Tue Mar 10, 2:56 am)
Re: Marvell 88E609x switch?, Lennert Buytenhek, (Tue Mar 10, 3:28 am)
Re: Marvell 88E609x switch?, Gary Thomas, (Tue Mar 10, 4:20 am)
Re: Marvell 88E609x switch?, Gary Thomas, (Tue Mar 10, 4:20 am)
Re: Marvell 88E609x switch?, Lennert Buytenhek, (Tue Mar 10, 6:36 am)
Re: Marvell 88E609x switch?, Gary Thomas, (Tue Mar 10, 8:11 am)
Re: Marvell 88E609x switch?, Lennert Buytenhek, (Wed Mar 11, 8:12 am)
Re: Marvell 88E609x switch?, Lennert Buytenhek, (Wed Mar 11, 2:28 pm)