Re: [PATCH 1/4] arcnet: com20020: Add com20020 io mapped version

From: Andrea Greco
Date: Tue May 22 2018 - 09:50:42 EST


On 05/18/2018 07:51 PM, David Miller wrote:
From: Andrea Greco <andrea.greco.gapmilano@xxxxxxxxx>
Date: Fri, 18 May 2018 14:18:41 +0200

In com20020.c found this:
/* FIXME: do this some other way! */
if (!dev->dev_addr[0])
dev->dev_addr[0] = arcnet_inb(ioaddr, 8);

NODE-ID, must be univoque, for all arcnet network.
My previews idea was take random value but, this could create a
collision over network.

A possible solution is:
In case of collision com20020 set a bit in status register.
Then peak a new NODE-ID and repeat this while correct NODE-ID is found.

Other ideas is pass it via DTS.
But suppose have 2 same product in same network, same address same problem.
For this reason i prefer left standard driver behavior.

Other ideas for solve this ?

Is there no way to obtain a unique value from the device?

If having a unique ID to talk on the ARCNET is so critical, there must
be some way to properly allocation and use a unique ID.

Device can rise interrupt in case of Duplicate ID over the network.

I guess this must be a general problem with this driver already.
I think arcnet network and relative NODE-ID designed during project phase, and address is always fixed.

In fact:
Other version of this dirver: PCI, ISA friends.
Simple work as module, and Node-ID is param of modules.

My opinion is that:
Before run `ifconfig arc0 up`, user has to setup hardware address with `ip link set dev arc0 address D2`.

All this is like a IP network with static address. If your IP address is duplicated, is not IP problem.

You still need to address the issue of 'dev' being leaked on probe
error paths.
For solve this,i think all considered a random address could be a good solution.

Regards, Andrea