[Armadillo:08140] Re: Armadillo-460 LANポート増設

佐藤 email@hidden
2012年 7月 18日 (水) 14:33:54 JST


佐藤です。

1ポート毎は動作するようになりました。

2ポート同時に使用したいのですが、
どのようにすれば良いでしょうか?


arch/arm/mach-mx25/armadillo460.c を下記のように
変更しました。

結果は、
・起動時に認識されている。
  smsc911x: Driver version 2008-10-21.
  smsc911x-mdio: probed
  eth1: attached PHY driver [Generic PHY] (mii_bus:phy_addr=0:01, irq=-1)
  net eth1: MAC Address: 0a:79:c5:b6:60:fa
  smsc911x: Driver version 2008-10-21.
  smsc911x-mdio: probed
  eth2: attached PHY driver [Generic PHY] (mii_bus:phy_addr=1:01, irq=-1)
  net eth2: MAC Address: 62:11:ed:2c:73:04
・eth1、eth2 どちらか一方を ifup した場合は、動作OK。
・eth1、eth2 の両方を ifup すると、先に ifup した方のポートのみ動作。
 eth1、eth2 の順で ifup すると、eth1 のポートのみ有効で
 eth2 も eth1 のリソースを使用している感じです。

----- armadillo460.c -------------------------
#include <linux/platform_device.h>
#include <linux/smsc911x.h>

static struct resource ext_smsc9118_resources[] = {
	[0] = {
		.start  = CS3_BASE_ADDR,
		.end    = CS3_BASE_ADDR + 0xff,
		.flags  = IORESOURCE_MEM,
	},
	[1] = {
		.start  = MXC_EXT_INT_BASE + 3,
		.end    = MXC_EXT_INT_BASE + 3,
		.flags  = IORESOURCE_IRQ,
	},
};

static struct smsc911x_platform_config smsc9118_config = {
	.irq_polarity   = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
	.irq_type       = SMSC911X_IRQ_TYPE_PUSH_PULL,
	.flags          = SMSC911X_USE_16BIT,
};

static struct platform_device ext_smsc9118_device = {
	.name = "smsc911x",
	.id = 0,
	.dev = {
		.platform_data = &smsc9118_config,
	},
	.num_resources = ARRAY_SIZE(ext_smsc9118_resources),
	.resource = ext_smsc9118_resources,
};

static struct resource ext_smsc9118_resources2[] = {
	[0] = {
		.start  = CS3_BASE_ADDR + 0x100,
		.end    = CS3_BASE_ADDR + 0x1ff,
		.flags  = IORESOURCE_MEM,
	},
	[1] = {
		.start  = MXC_EXT_INT_BASE + 4,
		.end    = MXC_EXT_INT_BASE + 4,
		.flags  = IORESOURCE_IRQ,
	},
};

static struct smsc911x_platform_config smsc9118_config2 = {
	.irq_polarity   = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
	.irq_type       = SMSC911X_IRQ_TYPE_PUSH_PULL,
	.flags          = SMSC911X_USE_16BIT,
};

static struct platform_device ext_smsc9118_device2 = {
	.name = "smsc911x",
	.id = 1,
	.dev = {
		.platform_data = &smsc9118_config2,
	},
	.num_resources = ARRAY_SIZE(ext_smsc9118_resources2),
	.resource = ext_smsc9118_resources2,
};

static int __init armadillo460_with_smsc9118_init(void)
{
	platform_device_register(&ext_smsc9118_device);
	platform_device_register(&ext_smsc9118_device2);
	return 0;
}
arch_initcall(armadillo460_with_smsc9118_init);
----- armadillo460.c -------------------------

以上、よろしくお願いします。

On Tue, 17 Jul 2012 20:19:33 +0900
佐藤 <email@hidden> wrote:

> お世話になっております。佐藤と申します。
> 
> Armadillo-460にLANポートを2ポート増設することは可能でしょうか?
> 
> Howto http://armadillo.atmark-techno.com/howto/a460-lan9118 を参考に、
> 1ポート増設することはできました。
> 
> 以上、よろしくお願いします。
> 
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo





armadillo メーリングリストの案内