[Armadillo:08141] Re: Armadillo-460 LANポート増設
SiF 高木
email@hidden
2012年 7月 18日 (水) 15:26:23 JST
高木と申します。
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 メーリングリストの案内