[U-Boot] [PATCH] net: asix: don't pad odd-length TX packets

Simon Glass sjg at chromium.org
Thu Feb 27 21:38:48 CET 2014


Hi Stephen,

On 27 February 2014 13:27, Stephen Warren <swarren at wwwdotorg.org> wrote:

> From: Stephen Warren <swarren at nvidia.com>
>
> For Ethernet/USB RX packets, the ASIX HW pads odd-sized packets so that
> they have an even size. Currently, asix_recv() does remove this padding,
> and asic_send() adds equivalent padding in the TX path. However, the HW
> does not appear to need this packing for TX packets in practical testing
> with "ASIX Elec. Corp. AX88x72A 000001" Vendor: 0x0b95 Product 0x7720
> Version 0.1. The Linux kernel does no such padding for the TX path.
>
> Remove the padding from the TX path:
>
> * For consistency with the Linux kernel.
> * NVIDIA has a Tegra simulator which validates that the length of USB
>   packets sent to an ASIX device matches the packet length value inside
>   the packet data. Having U-Boot and the kernel do the same thing when
>   creating the TX packets simplifies the simulator's validation.
>
> Cc: Lucas Stach <dev at lynxeye.de>
> Cc: Marek Vasut <marex at denx.de>
> Cc: Simon Glass <sjg at chromium.org>
> Signed-off-by: Stephen Warren <swarren at nvidia.com>
>

My notes indicate I added this due to a problem I had at the time with
bootp. However, since you have tested it, perhaps the root cause was
somewhere else.

Acked-by: Simon Glass <sjg at chromium.org>


> ---
>  drivers/usb/eth/asix.c | 2 --
>  1 file changed, 2 deletions(-)
>
> diff --git a/drivers/usb/eth/asix.c b/drivers/usb/eth/asix.c
> index 659533a8d4e4..ce133f00698d 100644
> --- a/drivers/usb/eth/asix.c
> +++ b/drivers/usb/eth/asix.c
> @@ -468,8 +468,6 @@ static int asix_send(struct eth_device *eth, void
> *packet, int length)
>
>         memcpy(msg, &packet_len, sizeof(packet_len));
>         memcpy(msg + sizeof(packet_len), (void *)packet, length);
> -       if (length & 1)
> -               length++;
>
>         err = usb_bulk_msg(dev->pusb_dev,
>                                 usb_sndbulkpipe(dev->pusb_dev,
> dev->ep_out),
> --
> 1.8.1.5
>
>


More information about the U-Boot mailing list