From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michal Simek Date: Tue, 01 Mar 2011 09:46:16 +0100 Subject: [U-Boot] [PATCH] net: axi_ethernet: Add driver to u-boot In-Reply-To: <201103010328.04680.vapier@gentoo.org> References: <1298886033-3350-1-git-send-email-monstr@monstr.eu> <201102281236.29967.vapier@gentoo.org> <4D6CAC00.1060501@monstr.eu> <201103010328.04680.vapier@gentoo.org> Message-ID: <4D6CB258.40308@monstr.eu> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Mike Frysinger wrote: > On Tuesday, March 01, 2011 03:19:12 Michal Simek wrote: >>>> +static void setup_mac(struct eth_device *dev) >>>> +{ >>>> + /* Set the MAC address */ >>>> + int val = ((dev->enetaddr[3] << 24) | (dev->enetaddr[2] << 16) | >>>> + (dev->enetaddr[1] << 8) | (dev->enetaddr[0])); >>>> + out_be32(dev->iobase + XAE_UAW0_OFFSET, val); >>>> + >>>> + val = (dev->enetaddr[5] << 8) | dev->enetaddr[4] ; >>>> + val |= in_be32(dev->iobase + XAE_UAW1_OFFSET) >>>> + & ~XAE_UAW1_UNICASTADDR_MASK; >>>> + out_be32(dev->iobase + XAE_UAW1_OFFSET, val); >>>> +} >>>> ... >>>> +static int axiemac_init(struct eth_device *dev, bd_t * bis) >>>> +{ >>>> ... >>>> + setup_mac(dev); >>> this should be moved to eth_device.write_hwaddr in the initialize >>> function. then the common layers will call setup_mac for you as needed. >> I am not going to use write_hwaddr function because axi emac needs some >> initialization before you can write a mac addr that's why I will keep it >> in the same location as is. > > please add explicit comments to the setup_mac() func then so someone else > doesnt go changing things without taking this into consideration first No problem to write it. I have experience with several network IPs but I think less amount than you. But anyway I think it is common that device must be in proper state to be able to setup mac for most of them. From my simple test I see that dev->write_hwaddr is called before dev->init which looks weird. Michal -- Michal Simek, Ing. (M.Eng) w: www.monstr.eu p: +42-0-721842854 Maintainer of Linux kernel 2.6 Microblaze Linux - http://www.monstr.eu/fdt/ Microblaze U-BOOT custodian