* [PATCH] Disable mv643xx Ethernet port 0 on Pegasos
@ 2009-02-10 16:13 Gabriel Paubert
2009-02-10 22:02 ` Matt Sealey
0 siblings, 1 reply; 2+ messages in thread
From: Gabriel Paubert @ 2009-02-10 16:13 UTC (permalink / raw)
To: linuxppc-dev list
After the last changes, the mv643xx_eth driver now detects
a spurious interface on port 0. Since only port 1 is actually
connected to a PHY, remove its description.
Signed-off-by: Gabriel Paubert <paubert@iram.es>
---
Tested on the last batch of Pegasos produced. Caveat: do not enable
the Marvell PHY driver in your config, however the generic one works.
diff --git a/arch/powerpc/platforms/chrp/pegasos_eth.c b/arch/powerpc/platforms/chrp/pegasos_eth.c
index 130ff72..039fc8e 100644
--- a/arch/powerpc/platforms/chrp/pegasos_eth.c
+++ b/arch/powerpc/platforms/chrp/pegasos_eth.c
@@ -21,8 +21,8 @@
#define PEGASOS2_SRAM_BASE (0xf2000000)
#define PEGASOS2_SRAM_SIZE (256*1024)
-#define PEGASOS2_SRAM_BASE_ETH0 (PEGASOS2_SRAM_BASE)
-#define PEGASOS2_SRAM_BASE_ETH1 (PEGASOS2_SRAM_BASE_ETH0 + (PEGASOS2_SRAM_SIZE / 2) )
+#define PEGASOS2_SRAM_BASE_ETH_PORT0 (PEGASOS2_SRAM_BASE)
+#define PEGASOS2_SRAM_BASE_ETH_PORT1 (PEGASOS2_SRAM_BASE_ETH_PORT0 + (PEGASOS2_SRAM_SIZE / 2) )
#define PEGASOS2_SRAM_RXRING_SIZE (PEGASOS2_SRAM_SIZE/4)
@@ -47,75 +47,42 @@ static struct platform_device mv643xx_eth_shared_device = {
.resource = mv643xx_eth_shared_resources,
};
-static struct resource mv643xx_eth0_resources[] = {
+static struct resource mv643xx_eth_port1_resources[] = {
[0] = {
- .name = "eth0 irq",
+ .name = "eth port1 irq",
.start = 9,
.end = 9,
.flags = IORESOURCE_IRQ,
},
};
-
-static struct mv643xx_eth_platform_data eth0_pd = {
- .shared = &mv643xx_eth_shared_device,
- .port_number = 0,
-
- .tx_sram_addr = PEGASOS2_SRAM_BASE_ETH0,
- .tx_sram_size = PEGASOS2_SRAM_TXRING_SIZE,
- .tx_queue_size = PEGASOS2_SRAM_TXRING_SIZE/16,
-
- .rx_sram_addr = PEGASOS2_SRAM_BASE_ETH0 + PEGASOS2_SRAM_TXRING_SIZE,
- .rx_sram_size = PEGASOS2_SRAM_RXRING_SIZE,
- .rx_queue_size = PEGASOS2_SRAM_RXRING_SIZE/16,
-};
-
-static struct platform_device eth0_device = {
- .name = MV643XX_ETH_NAME,
- .id = 0,
- .num_resources = ARRAY_SIZE(mv643xx_eth0_resources),
- .resource = mv643xx_eth0_resources,
- .dev = {
- .platform_data = ð0_pd,
- },
-};
-
-static struct resource mv643xx_eth1_resources[] = {
- [0] = {
- .name = "eth1 irq",
- .start = 9,
- .end = 9,
- .flags = IORESOURCE_IRQ,
- },
-};
-
-static struct mv643xx_eth_platform_data eth1_pd = {
+static struct mv643xx_eth_platform_data eth_port1_pd = {
.shared = &mv643xx_eth_shared_device,
.port_number = 1,
+ .phy_addr = MV643XX_ETH_PHY_ADDR(7),
- .tx_sram_addr = PEGASOS2_SRAM_BASE_ETH1,
+ .tx_sram_addr = PEGASOS2_SRAM_BASE_ETH_PORT1,
.tx_sram_size = PEGASOS2_SRAM_TXRING_SIZE,
.tx_queue_size = PEGASOS2_SRAM_TXRING_SIZE/16,
- .rx_sram_addr = PEGASOS2_SRAM_BASE_ETH1 + PEGASOS2_SRAM_TXRING_SIZE,
+ .rx_sram_addr = PEGASOS2_SRAM_BASE_ETH_PORT1 + PEGASOS2_SRAM_TXRING_SIZE,
.rx_sram_size = PEGASOS2_SRAM_RXRING_SIZE,
.rx_queue_size = PEGASOS2_SRAM_RXRING_SIZE/16,
};
-static struct platform_device eth1_device = {
+static struct platform_device eth_port1_device = {
.name = MV643XX_ETH_NAME,
.id = 1,
- .num_resources = ARRAY_SIZE(mv643xx_eth1_resources),
- .resource = mv643xx_eth1_resources,
+ .num_resources = ARRAY_SIZE(mv643xx_eth_port1_resources),
+ .resource = mv643xx_eth_port1_resources,
.dev = {
- .platform_data = ð1_pd,
+ .platform_data = ð_port1_pd,
},
};
static struct platform_device *mv643xx_eth_pd_devs[] __initdata = {
&mv643xx_eth_shared_device,
- ð0_device,
- ð1_device,
+ ð_port1_device,
};
/***********/
@@ -191,15 +158,10 @@ static int __init mv643xx_eth_add_pds(void)
if ( Enable_SRAM() < 0)
{
- eth0_pd.tx_sram_addr = 0;
- eth0_pd.tx_sram_size = 0;
- eth0_pd.rx_sram_addr = 0;
- eth0_pd.rx_sram_size = 0;
-
- eth1_pd.tx_sram_addr = 0;
- eth1_pd.tx_sram_size = 0;
- eth1_pd.rx_sram_addr = 0;
- eth1_pd.rx_sram_size = 0;
+ eth_port1_pd.tx_sram_addr = 0;
+ eth_port1_pd.tx_sram_size = 0;
+ eth_port1_pd.rx_sram_addr = 0;
+ eth_port1_pd.rx_sram_size = 0;
#ifdef BE_VERBOSE
printk("Pegasos II/Marvell MV64361: Can't enable the "
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] Disable mv643xx Ethernet port 0 on Pegasos
2009-02-10 16:13 [PATCH] Disable mv643xx Ethernet port 0 on Pegasos Gabriel Paubert
@ 2009-02-10 22:02 ` Matt Sealey
0 siblings, 0 replies; 2+ messages in thread
From: Matt Sealey @ 2009-02-10 22:02 UTC (permalink / raw)
To: Gabriel Paubert; +Cc: linuxppc-dev list
Thanks Gabriel.
On Tue, Feb 10, 2009 at 10:13 AM, Gabriel Paubert <paubert@iram.es> wrote:
> After the last changes, the mv643xx_eth driver now detects
> a spurious interface on port 0. Since only port 1 is actually
> connected to a PHY, remove its description.
>
> Signed-off-by: Gabriel Paubert <paubert@iram.es>
>
> ---
>
> Tested on the last batch of Pegasos produced. Caveat: do not enable
> the Marvell PHY driver in your config, however the generic one works.
>
>
> diff --git a/arch/powerpc/platforms/chrp/pegasos_eth.c b/arch/powerpc/platforms/chrp/pegasos_eth.c
> index 130ff72..039fc8e 100644
> --- a/arch/powerpc/platforms/chrp/pegasos_eth.c
> +++ b/arch/powerpc/platforms/chrp/pegasos_eth.c
> @@ -21,8 +21,8 @@
> #define PEGASOS2_SRAM_BASE (0xf2000000)
> #define PEGASOS2_SRAM_SIZE (256*1024)
>
> -#define PEGASOS2_SRAM_BASE_ETH0 (PEGASOS2_SRAM_BASE)
> -#define PEGASOS2_SRAM_BASE_ETH1 (PEGASOS2_SRAM_BASE_ETH0 + (PEGASOS2_SRAM_SIZE / 2) )
> +#define PEGASOS2_SRAM_BASE_ETH_PORT0 (PEGASOS2_SRAM_BASE)
> +#define PEGASOS2_SRAM_BASE_ETH_PORT1 (PEGASOS2_SRAM_BASE_ETH_PORT0 + (PEGASOS2_SRAM_SIZE / 2) )
>
>
> #define PEGASOS2_SRAM_RXRING_SIZE (PEGASOS2_SRAM_SIZE/4)
> @@ -47,75 +47,42 @@ static struct platform_device mv643xx_eth_shared_device = {
> .resource = mv643xx_eth_shared_resources,
> };
>
> -static struct resource mv643xx_eth0_resources[] = {
> +static struct resource mv643xx_eth_port1_resources[] = {
> [0] = {
> - .name = "eth0 irq",
> + .name = "eth port1 irq",
> .start = 9,
> .end = 9,
> .flags = IORESOURCE_IRQ,
> },
> };
>
> -
> -static struct mv643xx_eth_platform_data eth0_pd = {
> - .shared = &mv643xx_eth_shared_device,
> - .port_number = 0,
> -
> - .tx_sram_addr = PEGASOS2_SRAM_BASE_ETH0,
> - .tx_sram_size = PEGASOS2_SRAM_TXRING_SIZE,
> - .tx_queue_size = PEGASOS2_SRAM_TXRING_SIZE/16,
> -
> - .rx_sram_addr = PEGASOS2_SRAM_BASE_ETH0 + PEGASOS2_SRAM_TXRING_SIZE,
> - .rx_sram_size = PEGASOS2_SRAM_RXRING_SIZE,
> - .rx_queue_size = PEGASOS2_SRAM_RXRING_SIZE/16,
> -};
> -
> -static struct platform_device eth0_device = {
> - .name = MV643XX_ETH_NAME,
> - .id = 0,
> - .num_resources = ARRAY_SIZE(mv643xx_eth0_resources),
> - .resource = mv643xx_eth0_resources,
> - .dev = {
> - .platform_data = ð0_pd,
> - },
> -};
> -
> -static struct resource mv643xx_eth1_resources[] = {
> - [0] = {
> - .name = "eth1 irq",
> - .start = 9,
> - .end = 9,
> - .flags = IORESOURCE_IRQ,
> - },
> -};
> -
> -static struct mv643xx_eth_platform_data eth1_pd = {
> +static struct mv643xx_eth_platform_data eth_port1_pd = {
> .shared = &mv643xx_eth_shared_device,
> .port_number = 1,
> + .phy_addr = MV643XX_ETH_PHY_ADDR(7),
>
> - .tx_sram_addr = PEGASOS2_SRAM_BASE_ETH1,
> + .tx_sram_addr = PEGASOS2_SRAM_BASE_ETH_PORT1,
> .tx_sram_size = PEGASOS2_SRAM_TXRING_SIZE,
> .tx_queue_size = PEGASOS2_SRAM_TXRING_SIZE/16,
>
> - .rx_sram_addr = PEGASOS2_SRAM_BASE_ETH1 + PEGASOS2_SRAM_TXRING_SIZE,
> + .rx_sram_addr = PEGASOS2_SRAM_BASE_ETH_PORT1 + PEGASOS2_SRAM_TXRING_SIZE,
> .rx_sram_size = PEGASOS2_SRAM_RXRING_SIZE,
> .rx_queue_size = PEGASOS2_SRAM_RXRING_SIZE/16,
> };
>
> -static struct platform_device eth1_device = {
> +static struct platform_device eth_port1_device = {
> .name = MV643XX_ETH_NAME,
> .id = 1,
> - .num_resources = ARRAY_SIZE(mv643xx_eth1_resources),
> - .resource = mv643xx_eth1_resources,
> + .num_resources = ARRAY_SIZE(mv643xx_eth_port1_resources),
> + .resource = mv643xx_eth_port1_resources,
> .dev = {
> - .platform_data = ð1_pd,
> + .platform_data = ð_port1_pd,
> },
> };
>
> static struct platform_device *mv643xx_eth_pd_devs[] __initdata = {
> &mv643xx_eth_shared_device,
> - ð0_device,
> - ð1_device,
> + ð_port1_device,
> };
>
> /***********/
> @@ -191,15 +158,10 @@ static int __init mv643xx_eth_add_pds(void)
>
> if ( Enable_SRAM() < 0)
> {
> - eth0_pd.tx_sram_addr = 0;
> - eth0_pd.tx_sram_size = 0;
> - eth0_pd.rx_sram_addr = 0;
> - eth0_pd.rx_sram_size = 0;
> -
> - eth1_pd.tx_sram_addr = 0;
> - eth1_pd.tx_sram_size = 0;
> - eth1_pd.rx_sram_addr = 0;
> - eth1_pd.rx_sram_size = 0;
> + eth_port1_pd.tx_sram_addr = 0;
> + eth_port1_pd.tx_sram_size = 0;
> + eth_port1_pd.rx_sram_addr = 0;
> + eth_port1_pd.rx_sram_size = 0;
>
> #ifdef BE_VERBOSE
> printk("Pegasos II/Marvell MV64361: Can't enable the "
>
--
Matt Sealey <matt@genesi-usa.com>
Genesi, Manager, Developer Relations
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2009-02-10 22:02 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-02-10 16:13 [PATCH] Disable mv643xx Ethernet port 0 on Pegasos Gabriel Paubert
2009-02-10 22:02 ` Matt Sealey
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).