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

SiF 高木 email@hidden
2012年 7月 20日 (金) 15:04:45 JST


高木です

> ・eth1、eth2 の順で ifup すると
>  ポート1で eth1、eth2 の両方が通信している。

この状況について下記の情報をもらえますか。

・ifupの実行のログ
・ifup実行後のifconfigコマンドの結果
・routeコマンドの結果

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

> 佐藤です。
> 
> 状況の追加報告です。
> 
> ・CS3にポート1、CS4にポート2を割り当て。
> ・起動時に、ポート1がeth1、ポート2がeth2で認識されている。
> ・eth1、eth2 の順で ifup すると
>  ポート1で eth1、eth2 の両方が通信している。
> ・ifdown eth1 をすると、ポート2 で eth2 の通信が
>  できるようになる。
> 
> 2ポート同時に使用するためにはどうすればよいか、
> 僅かな情報でもいただけると助かります。
> よろしくお願いします。
> 
> On Thu, 19 Jul 2012 19:29:10 +0900
> 佐藤 <email@hidden> wrote:
> 
>> 高木様
>>
>> ご指摘ありがとうございました。
>>
>> ハード担当に確認したところ
>> SA8信号の値で、ポートを判別しているとのことでした。
>>
>> 試しに、CS3にeth1、CS4にeth2を割り当てて見ましたが
>> 状況は変わりませんでした。
>>
>>
>> arch/arm/mach-mx25/armadillo460.c は下記のように
>> 変更しました。
>>
>> static struct resource ext_smsc9118_resources2[] = {
>> 	[0] = {
>> 		.start  = CS4_BASE_ADDR,
>> 		.end    = CS4_BASE_ADDR + 0xff,
>> 		.flags  = IORESOURCE_MEM,
>> 	},
>> 	[1] = {
>> 		.start  = MXC_EXT_INT_BASE + 4,
>> 		.end    = MXC_EXT_INT_BASE + 4,
>> 		.flags  = IORESOURCE_IRQ,
>> 	},
>> };
>>
>> On Wed, 18 Jul 2012 15:26:23 +0900
>> SiF 高木 <email@hidden> wrote:
>>
>>> 高木と申します。
>>>
>>> 460を使用したことはありませんが、
>>> 気が付いた点を
>>>
>>> 回路の結線はどうなっていますでしょうか。
>>>
>>>  eth1アドレス範囲 0x000 - 0x0FF
>>>  eth2アドレス範囲 0x100 - 0x1FF
>>>
>>> CSが同じであるためアドレス範囲でアクセスするデバイスを
>>> 選択するためにはSA8の信号線を利用しないと
>>> アクセスが衝突すると思います。
>>>
>>> 単純に考えてCS3にeth1、CS4にeth2を割り当ててはどうでしょうか。
>>> これであればCS以外は公開されている回路で
>>> eth1とeth2を接続するだけで良いと思います。
>>>
>>> 以上、よろしくお願いします。
>>>
>>>
>>>> 佐藤です。
>>>>
>>>> 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 mailing list
>>>> email@hidden
>>>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>>>>
>>>
>>> _______________________________________________
>>> armadillo mailing list
>>> email@hidden
>>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>>
>>
>> _______________________________________________
>> armadillo mailing list
>> email@hidden
>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> 
> 
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> 





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