[U-Boot] [PATCH] rockchip: tinker: set ethaddr in late init
Eddie Cai
eddie.cai.linux at gmail.com
Tue Apr 18 14:53:27 UTC 2017
2017-04-18 12:01 GMT+08:00 Simon Glass <sjg at chromium.org>:
> Hi Jonas,
>
> On 17 April 2017 at 15:13, Jonas Karlman <jonas at kwiboo.se> wrote:
> > Set ethernet mac address in late init for Tinker Board,
> > prevents getting a random mac address each boot.
> >
> > Read mac address from eeprom, first 6 bytes from 0x50 on i2c2.
> > Same as /etc/init.d/rockchip.sh on Tinker OS.
> >
> > Signed-off-by: Jonas Karlman <jonas at kwiboo.se>
> > ---
> >
> > board/rockchip/tinker_rk3288/tinker-rk3288.c | 26
> ++++++++++++++++++++++++++
> > 1 file changed, 26 insertions(+)
> >
> > diff --git a/board/rockchip/tinker_rk3288/tinker-rk3288.c
> b/board/rockchip/tinker_rk3288/tinker-rk3288.c
> > index 79541a3939..48165b2545 100644
> > --- a/board/rockchip/tinker_rk3288/tinker-rk3288.c
> > +++ b/board/rockchip/tinker_rk3288/tinker-rk3288.c
> > @@ -5,3 +5,29 @@
> > */
> >
> > #include <common.h>
> > +#include <i2c.h>
> > +#include <netdev.h>
> > +
> > +int rk_board_late_init(void)
> > +{
> > + struct udevice *dev;
> > + int ret;
> > + u8 mac[6];
> > +
> > + ret = i2c_get_chip_for_busnum(2, 0x50, 1, &dev);
> > + if (ret) {
> > + debug("failed to get eeprom\n");
> > + return 0;
> > + }
>
> I'm sure this works, but really we should have this chip mentioned in the
> device tree under &i2c2. Then we should be able to use the i2c_eeprom
> driver. I cannot see this board supported in Linux to figure out how it
> does it there.
>
> I think tinker is the CHIP board, right? Are there instructions somewhere
> on how to load U-Boot onto it?
>
tinker board is made by Asus. it use sd card as its boot media. to build
U-Boot for tinker board
CROSS_COMPILE=arm-linux-gnueabihf- make tinker-rk3288_defconfig all -j4
tools/mkimage -n rk3288 -T rksd -d spl/u-boot-spl-dtb.bin out
cat u-boot-dtb.bin >> out
to flash u-boot, mount sd card to your host PC. use below command. (please
make sure /dev/sdb is the mount point of your sd card)
sudo dd if=out of=/dev/sdb seek=64 conv=notrunc
>
> > +
> > + ret = dm_i2c_read(dev, 0x0, mac, 6);
> > + if (ret) {
> > + debug("failed to read mac\n");
> > + return 0;
> > + }
> > +
> > + if (is_valid_ethaddr(mac))
> > + eth_setenv_enetaddr("ethaddr", mac);
> > +
> > + return 0;
> > +}
> > --
> > 2.11.0
> >
>
> Regards,
> Simon
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot
>
More information about the U-Boot
mailing list