[PATCH] Disable mv643xx Ethernet port 0 on Pegasos
Matt Sealey
matt at genesi-usa.com
Wed Feb 11 09:02:17 EST 2009
Thanks Gabriel.
On Tue, Feb 10, 2009 at 10:13 AM, Gabriel Paubert <paubert at 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 at 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 at genesi-usa.com>
Genesi, Manager, Developer Relations
More information about the Linuxppc-dev
mailing list