On Wednesday, September 10, 2014 at 12:00:29 PM, René Griessl wrote: > Am 09.09.2014 16:34, schrieb Marek Vasut: > > On Wednesday, September 03, 2014 at 04:31:20 PM, Rene Griessl wrote: > >> changes in v2: > >> -added usb_ether.h to change list > >> -added 2nd patch to enable driver for arndale board > >> > >> Signed-off-by: Rene Griessl <rgrie...@cit-ec.uni-bielefeld.de> > > > > I see that in Linux, there is asix_common.c stuff. Can this driver share > > any parts with drivers/net/ax88* ? > > The asix_common.c includes asix.h. There you see that the common driver > supports following devices: > AX88172 > AX88772 > AX88178 > but it is not supporting AX88179 and AX88178a, they have a separate > driver called ax88179_178a.c > These two have a different style in accessing MAC registers and PHY
I didn't look deep enough. The 88179 driver is a completely separate driver, not sharing any code what-so-ever with the other ASIX driver, yes ? [...] > >> + buf[0], buf[1], buf[2], buf[3], buf[4], buf[5]); > >> + } > >> + else { > >> + } > > > > Uh, this check needs some rework, right ? Also, you want to lint your > > patches with ./scripts/checkpatch.pl tool before resubmitting. > > was OK for ./scripts/checkpatch.pl > but I can change that This is rather surprising, but you're right. Please fix this up, the else can be dropped and the trailing } can be indented just under the if () clause. > >> + return ret; > >> +} > >> + > >> + > >> +static int asix_read_mac(struct eth_device *eth) > >> +{ > >> + struct ueth_data *dev = (struct ueth_data *)eth->priv; > >> + ALLOC_CACHE_ALIGN_BUFFER(unsigned char, buf, ETH_ALEN); > >> + > >> + if (dev->pusb_dev->descriptor.idProduct == 0x1790) { > >> + asix_read_cmd(dev, AX_ACCESS_MAC, 0x10, 6, 6, buf); > >> + debug("asix_read_mac() returning 0x%02x%02x%02x%02x%02x%02x\n", > >> + buf[0], buf[1], buf[2], buf[3], buf[4], buf[5]); > >> + memcpy(eth->enetaddr, buf, ETH_ALEN); > >> + } Same here. > >> + return 0; > >> +} > >> + > >> + > >> + > >> +static int asix_basic_reset(struct ueth_data *dev) > >> +{ > >> + ALLOC_CACHE_ALIGN_BUFFER(u8, buf, 6); > > > > Why does the buffer need to be aligned here ? It's just a buffer that is > > not used for DMA, no ? > > > >> + u16 *tmp16; > > > > Is it because you were getting unaligned accesses , since when the buffer > > itself was not aligned and you did cast it to u16, the CPU triggered > > unaligned access ? > > Thats right, if I do not align I get unaligned accesses during USB > communication. > Is there a smarter solution for that? Oh I see. The smart solution would be to add bounce buffer into the USB stack, but unless you want to dive into this, this solution would be OK here. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot