sunxi: use random parts of SID to set ethaddr
authorJonathan Liu <net147@gmail.com>
Sat, 14 Jun 2014 06:59:09 +0000 (08:59 +0200)
committerIan Campbell <ijc@hellion.org.uk>
Fri, 18 Jul 2014 18:42:22 +0000 (19:42 +0100)
commitb41d7d05b7a7ab56d961c144ca93b15de0fc4308
tree49fb676b1de90bdbc530181beaba64486bc29705
parentae5de5a19df2d25ccf0e58bf59b74ebdb18612a2
sunxi: use random parts of SID to set ethaddr

Similar to the USB NIC found on OMAP5uEVM, PandaBoard and BeagleBoard-XM
boards, the sunxi SoCs have a NIC onboard without an embedded MAC address.

Just like the omap used on these boards, the sunxi SoCs do have a unique chip
id, in the form of the 128 bit SID register:
http://linux-sunxi.org/SID_Register_Guide

So mimick the BeagleBoard-XM board code (commit 548a64d8) and use the chip id
to generate a unique fixed MAC address.

We check for the SID not being all 0, since some early A20 batches
shipped without having there SID programmed.

Note we use specific parts of the 128 bits, since some parts indicate the
SoC family / revision, and thus are fixed. The algorithm for this was taken
from the linux-sunxi.org kernels.

Signed-off-by: Jonathan Liu <net147@gmail.com>
[hdegoede@redhat.com: Expanded the commit message with some more info]
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
board/sunxi/board.c
include/configs/sunxi-common.h